cs 4 Computer Science Bootcamp

cs 4 Computer Science Bootcamp

Summer B 2018 - EnrollCd 02675
Department of Computer Science
University of California Santa Barbara

Course Information

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

  • Class Schedule: Tue, Wed, Thursday 11:00am-12:20pm
  • Classroom: Phelps 1260
  • Instructor's Office Hours: Wednesdays 4:00-6:00pm
  • Instructor's Office: HFH 1119

  • Lab Schedule:
    Tuesday 12:30pm-1:50pm, TAs: All
    Tuesday 2:00pm-3:20pm, TAs: All
    Tuesday 3:30pm-4:50pm, TAs: All
  • Lab: PHELPS 3525

  • Teaching Assistants:
    Sam Green (sam.green@cs.ucsb.edu)
    Ryan Su (pinwensu@cs.ucsb.edu)
  • TA Office Hours:
    Monday 11:00am-1:00pm   Sam
    Wednesday 1:30-3:30pm   Ryan
  • 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 Final Exam is on Thursday, September 13 at 11:00am-12:20pm. ← 2-pages of notes (both sides) are alllowed during the Exam. No makeup exam can be given under any circumstances.

  • We will have 5 Lab and 5 Homework Assignments
  • Lab Reports are due Wednesdays 5pm
  • Homework Assignments are due Fridays 5pm
  • 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 0: lab0.pdf - Lab day: Tuesday August 14
    This lab does not require a report. A demo to the TA is sufficient.
  • Lab Assignment 1: lab1.pdf - Lab day: Tuesday August 14
    This lab does not require a report. A demo to the TA is sufficient.
  • Lab Assignment 2: lab2.html - Lab day: Tuesday August 21
    This lab does not require a report. A demo to the TA is sufficient.
  • Lab Assignment 3: lab3.html - Lab day: Tuesday August 28
    This lab requires a report. The lab report is due 5pm Friday Aug 31
  • Lab Assignment 4: lab4.html - Lab day: Tuesday September 4
    This lab does not require a report. A demo to the TA is sufficient.
  • Lab Assignment 5: lab5.html - Lab day: Tuesday September 11
    This lab does not require a report. A demo to the TA is sufficient.

  • Homework Assignment 1: hw1.pdf - due 5pm Friday Aug 10
  • Homework Assignment 2: hw2.pdf - due 5pm Friday Aug 17
  • Homework Assignment 3: hw3.pdf - due 5pm Friday Aug 24
  • Homework Assignment 4: hw4.pdf - due 5pm Friday Aug 31
  • Homework Assignment 5: hw5.pdf - due 5pm Wednesday Sep 12

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.


Grading Rules

  • Lab Participation and Reports: 30 %
  • Homework Assignments: 30 %
  • Final Exam: 40 %

Academic Integrity at UCSB  

Dr. Çetin Kaya Koç