cs 4 Computer Science Bootcamp
Summer B 2018  EnrollCd 02675
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: Tue, Wed, Thursday 11:00am12:20pm
 Classroom: Phelps 1260
 Instructor's Office Hours: Wednesdays 4:006:00pm
 Instructor's Office: HFH 1119
 Lab Schedule:
Tuesday 12:30pm1:50pm, TAs: All
Tuesday 2:00pm3:20pm, TAs: All
Tuesday 3:30pm4: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:00am1:00pm Sam
Wednesday 1:303: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:00am12:20pm. ←
2pages 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
lowresolution phonecamera 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 nonmajors 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: 7bit and 8bit ASCII, Unicode, and UTF8.
 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 onetime pad.
DiffieHellman and RSA algorithms.
Links
Grading Rules
 Lab Participation and Reports: 30 %
 Homework Assignments: 30 %
 Final Exam: 40 %
Academic
Integrity at UCSB ←
Dr. Çetin Kaya Koç
