CS 8 Introduction to Computer Science

CS 8 Introduction to Computer Science

Summer B 2018 - EnrlCd 02709
Department of Computer Science
University of California Santa Barbara

Course Information

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

  • Class Schedule: Tuesday, Wednesday, Thursday 2:00-3:20pm
  • Class Room: TD-W (Theater/Dance West) 1701
  • Koç Office Hours: Thursdays 4:00-6:00pm
  • Koç Office: HFH 1119

  • Teaching Assistants:
    Yi Ding (yding@ucsb.edu)
    Yanju Chen (yanju@cs.ucsb.edu)
    Boyuan Feng (boyuan@cs.ucsb.edu)
    Chandler Forrest (chandlerforrest@ucsb.edu)

  • Lab: Phelps 3525
  • Lab Schedule and TAs:
    Monday 9:30-10:50am, EnrlCd: 02717 -- TAs: Yanju and Chandler
    Monday 11:00am-12:20pm, EnrlCd: 02725 -- TAs: Yanju and Chandler
    Monday 12:30-1:50pm, EnrlCd: 02733 -- TAs: Boyuan and Yanju
    Monday 2:00-3:20pm, EnrlCd: 02741 -- TAs: Yi and Boyuan
    Monday 3:30pm-4:50pm, EnrlCd: 16527 -- TAs: Yi and Boyuan

  • TA Office: Trailer 936 Room 104
  • TA Office Hours:
    Tuesday 9:00-11:00am   Yanju
    Thursday 10:00am-12:00pm   Chandler (at CSIL)
    Friday 10:00am-12:00pm   Boyuan
    Friday 12:00-2:00pm   Yi

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

  • Slides and other course information are in the folder docx  
  • Homework and Programming Assignments are in the folder hwpa  
  • IDLE transcripts and Python programs created during lectures are in the folder idle  

  • The grades: cs8.htm
    (The Code is your PERMNumber mod 98773; in Python: Code = PERMNumber % 98773)

Final Exam

The Final Exam is on Thursday, September 13 at 02:00pm-03:20pm.  
2-pages of notes (both sides) are alllowed during the Exam.
No makeup exam can be given under any circumstances.

Homework Assignments

We will have one homework assignment every week. The homework assignments are due before 5:00pm on Fridays via Dropbox (a link will be available for every hw). You can write your homework assignment in TextEdit, MS Word, MacOS Pages, or any other editor, however only Text or PDF should be submitted. You could scan/pdf your handwritten work, and submit the resulting PDF file. Low-resolution or unreadable files are not accepted. Late hw is not accepted.
  • Homework Assignment 1:   hw1.html - due 5pm Fri Aug 10
  • Homework Assignment 2:   hw2.html - due 5pm Mon Aug 20
  • Homework Assignment 3:   hw3.pdf - due 5pm Mon Aug 27
  • Homework Assignment 4:   hw4.pdf - due 5pm Tue Sep 4
  • Homework Assignment 5:   hw5.pdf - due 5pm Tue Sep 11
    Note: Only questions 1, 3, 5, 7 will be graded

Programming Assignments

We will have one programming assignment every week. The programming assignments are due before 10:00pm on Tuesdays via Dropbox (a link will be available for every pa). Detailed information about Python's native programming environment (called IDLE) and the creation and submission of programming assignments is found here: idle.pdf. Programming Assignments are submitted only as Python files (with py suffix), such as pa1.py. Late submission is not accepted.
  • Programming Assignment 1:   pa1.html - due 10pm Tuesday Aug 14
  • Programming Assignment 2:   pa2.html - due 10pm Tuesday Aug 21
  • Programming Assignment 3:   pa3.html - due 10pm Tuesday Aug 28
  • Programming Assignment 4:   pa4.html - due 10pm Wednesday Sep 5
  • Programming Assignment 5:   pa5.html - due 10pm Wednesday Sep 12

Challenge Programming Assignment: Write a turtle program that will run on a loop and create the following moving image CrazyCircle.mp4 as closely as possible. This will give you 10% extra point on your total percentage. You can ask me questions (by posting on Piazza) as you write your code.
Deadline: 5pm Monday Sep 10

Weekly Course Plan

  • Week1: Problems and Abstraction; Algorithms and Programs; Efficient Algorithms; Arithmetic; Using Functions; Binary Arithmetic; (Chapters 1 and 2)

  • Week2: Data Abstraction; Visualization with Turtles; Functional Abstraction; Programming in Style; A Return to Functions; Scope and Namespaces; (Chapter 3)

  • Week3: Discrete Models; Visualizing Population Changes; Conditional Iteration; Continuous Models; Numerical Analysis; Summing Up; (Chapter 4)

  • Week4: Random Walks; Pseudorandom Number Generators; Simulating Probability Distributions; Back to Booleans; A Guessing Game; (Chapter 5)

  • Week5: Counting words; Text Documents; Encoding Strings; Lineartime Algorithms; Analyzing Text; Comparing Texts; Genomics; Summarizing Data; Creating and Modifying Lists; Frequencies, Modes, and Histograms; Reading Tabular Data; (Chapters 6 and 8)

  • Week6: Two-Dimensional Data; The Game of Life; Digital Images; Fractals; Recursion and Iteration; The Mythical Tower of Hanoi; Recursive Linear Search; Divide and Conquer; (Chapters 9 and 10)

Course Related Links


  • J. Havill. Discovering Computer Science, CRC Press, 2015.   URL

Grading Rules

  • Programming Assignments: 30 %
  • Homework Assignments: 30 %
  • Final Exam: 40 %

Catalog Specification

Introduction to computer program development for students with little to no programming experience. Basic programming concepts, variables and expressions, data and control structures, algorithms, debugging, program design, and documentation.

Prerequisite Rules

Not open for credit to students who have completed Computer Science 16 or Engineering 3.
CS 8 is a legal repeat for CMPSC 5AA-ZZ.

Academic Integrity at UCSB  

Dr. Çetin Kaya Koç