cs 4 Computer Science Bootcamp

cs 4 Computer Science Bootcamp

Winter Term 2019
Department of Computer Science
University of California Santa Barbara
http://koclab.cs.ucsb.edu/teaching/cs4

Course Information

  • Instructor: Professor Çetin Kaya Koç         → Koç is pronounced as "Coach"  

  • Class Schedule: Monday, Wednesday 3:30pm-4:45pm
  • Classroom: Webb 1100
  • Instructor's Office Hours: Tuesday 4:00-6:00pm
  • Instructor's Office: HFH 1119

  • Lab Schedule:
    Friday 09:00am-09:50am, TAs: All
    Friday 10:00am-10:50am, TAs: All
    Friday 11:00am-11:50am, TAs: All
  • Lab: PHELPS 3525

  • Teaching Assistants:
    Chani Jindal (chanijindal@cs.ucsb.edu)
    Chris Zhang (zhizhouzhang@ucsb.edu)
    Yanju Chen (yanju@cs.ucsb.edu)
  • TA Office Hours:
    Yanju: Monday 12:30pm-2:30pm
    Chris: Tuesday 9:00am-11:00am
    Chani: Thursday 1:30p-3:30pm
  • Trailer Location: Trailer 936 Room 104

  • Please join the Piazza page for class discussions  
  • Check the class website and the Piazza page once a day

  • Slides and course notes are in the folder docx
  • Homework and Lab documents are in the folder hwlab

  • The grades: cs4.htm   (The Code is your PERM number mod 98773)  

Announcements and Weekly Course Material

  • The Midterm Exam will be in class during class time on Wednesday, Feb 20  
  • The Final Exam will be in class at 12:00-3:00pm on Friday, Mar 22  
  • 2-pages of notes (both sides) are allowed during the Exams.
  • No makeup exam can be given under any circumstances.

  • We will have 5 Lab and 5 Homework Assignments
  • Lab Reports are due 5pm on Fridays
  • Homework Assignments are due 5pm on Thursdays
  • Either, upload an electronic copy to a Dropbox folder (to be provided), or deliver a paper copy to the HW Box in HFH 2108. Electronic copy of your homework or lab report can be in Text, PDF or MS Word. You could also scan/pdf your handwritten work, however, do not submit small and/or low-resolution phone-camera images.

  • You may need a College of Engineering accounts in order to use the computers in the Lab
    Open your browser and click on this link: https://accounts.engr.ucsb.edu/create
    Enter your UCSBNetId and Password, then follow the steps to request your account

  • Lab Assignment 1: lab1.pdf - Lab days: Friday January 11 and 18
    This lab does not require a report. A demo to the TA is sufficient.

  • Lab Assignment 2: lab2.pdf - Lab day: Friday January 25
    This lab does not require a report. A demo to the TA is sufficient.

  • Homework Assignment 1: hw1.pdf - Due date: 5pm Thursday Jan 17

  • Homework Assignment 2: hw2.pdf - Due date: 5pm Thursday Jan 24
    Dropbox Link for hw2

Catalog Specification

An introduction to computational thinking, computing, data management, and problem solving using computers, for non-majors ONLY. Topics include coding basics, representing code and data using a computer, and applications of computing that are important to society.

Weekly Course Plan

  • Lecture 01: Data Representation
    What is information? How do we represent information? What is data? Analog versus digital.
  • Lecture 02: Number Representation, Computation, and Storing
    History of number representation and calculation. Binary, decimal, and hexadecimal number systems. History of calculation and computers. Memory technologies.
  • Lecture 03: Representation of Text
    Representation of simple text and structured text. Text encoding standards: 7-bit and 8-bit ASCII, Unicode, and UTF-8.
  • Lecture 04: Iteration
    Iterative computations of sums and products. Computing sums of products and or products of sums. Computation of constants such pi or e.
  • Lecture 05: Recursion
    Fibonacci numbers. Recursive algorithmic paradigms. Fractals.
  • Lecture 06: Representation of Images
    Color, intensity, and pixels. Tradeoffs in representation. Image formats: headers, compression algorithms, Huffman coding. Image watermarking.
  • Lecture 07: Representation of Sound and Music
    Analog sound and digital sound. Sampling and quantization. Digitized music and distortion. Sound compression and decompression.
  • Lecture 08: Hiding Information and Cryptography
    Securing private information using encryption. How to determine with whom we are talking on the Internet. Proving identity and digital signatures.

Weekly Lab Plan

  • Lab 01: Text Representation
    Students get CSIL accounts or use their own laptops. Illustrate how a simple text is a collection of bits. Similar illustrations of text in other languages (Latin, Arabic, Chinese, and Japanese). Illustrate structured text (such as MS Word documents) representation.
  • Lab 02: Computing Using Python
    Introduction to Python programming language. Basic data types. Iterative computation. Computing Pi.
  • Lab 03: Recursive Computing and Fractals
    Install and use Python and turtle module to illustrate recursive algorithms and programs. Koch curves and Hilbert Curves.
  • Lab 04: Computing with Images
    Illustrate how a simple image is represented using cImage (Python). Color schemes and RGB. Simple image processing: Grayscaling, resizing, edge detection. Image compression and watermarking.
  • Lab 05: Scientific Computing Tools
    Illustrate Matlab and Mathematica. Infinite precision computation. Solving equations. Plotting. Algebraic operations, symbolic computation, factoring, simplification.
  • Lab 06: Simple Encryption using Python
    Illustrate shift, affine, and Hill ciphers. Vigenère encryption and one-time pad. Diffie-Hellman and RSA algorithms.

Links


Grading Rules

  • Lab Participation and Reports: 25 %
  • Homework Assignments: 25 %
  • Midterm Exam: 20 %
  • Final Exam: 30 %

Academic Integrity at UCSB  


Dr. Çetin Kaya Koç