CS16 Fall 2019
All announcements will be posted on Piazza at this link.
Information
Lecture Notes and Slides
 
    
  | num | 
  date | 
  description | 
  | Lecture 1 | 
  
  Thu 09/26 | 
  
  Course overview, a gentle intro to C++ - Standard I/O (slides) (annotated slides) | 
  | Lecture 2 | 
  
  Tue 10/01 | 
  
  Basic I/O, Variable Types, Boolean Expressions, Control Flow and git (slides) (annotated slides) | 
  | Lecture 3 | 
  
  Thu 10/03 | 
  
  Variables and types, expressions, control structures (if-else), input/output (slides) (annotated slides) | 
  | Lecture 4 | 
  
  Tue 10/08 | 
  
  Repetition with loops (slides) (annotated slides) | 
  | Lecture 5 | 
  
  Thu 10/11 | 
  
  Functions, C++ Memory Model (slides) (annotated slides) | 
  | Lecture 6 | 
  
  Tue 10/15 | 
  
  TDD, Automating compilation with Makefiles  (slides) (annotated slides) | 
  | Lecture 7 | 
  
  Thu 10/17 | 
  
  Data Representation  (slides) (annotated slides) | 
  | Lecture 8 | 
  
  Tue 10/22 | 
  
  File IO, Midterm Review (slides) (annotated slides) | 
  | Lecture 9 | 
  
  Tue 10/29 | 
  
  Arrays and Pointers (slides) (annotated slides) | 
  | Lecture 10 | 
  
  Wed 10/31 | 
  
  References and Pointers, Call by value, address and reference (slides) (annotated slides) | 
  | Lecture 11 | 
  
  Tue 11/05 | 
  
  Defining custom types with structs, intro to lab05  (slides) (annotated slides) | 
  | Lecture 12 | 
  
  Wed 11/07 | 
  
  C++ Memory Model: Heap vs. Stack  (slides) (annotated slides) | 
  | Lecture 13 | 
  
  Tue 11/12 | 
  
  Linked Lists (slides) (annotated slides) | 
  | Lecture 14 | 
  
  Thu 11/14 | 
  
  Double-Linked Lists and Memory Errors (slides) (annotated slides) | 
  | Lecture 15 | 
  
  Tue 11/19 | 
  
  Recursion (slides) (annotated slides) | 
  | Lecture 16 | 
  
  Tue 12/03 | 
  
  Recursion pitfalls, and more practice (slides) (annotated slides) | 
  | Lecture 17 | 
  
  Thu 12/05 | 
  
  Wrap up and final review (slides) (annotated slides) | 
   
 
Labs
 
  
  
  | num | 
  ready? | 
  description | 
  assigned | 
  due | 
  
     
     
  | lab00 | 
  true | 
  Getting started | 
  Tue 10/01 12:00AM |  
  Mon 10/07 11:59PM | 
    
  
    
  
    
  
     
     
  | lab01 | 
  true | 
  Crunching numbers: Loops and functions  | 
  Tue 10/08 09:00AM |  
  Tue 10/15 11:59PM | 
    
  
     
     
  | lab02 | 
  true | 
  ASCII Art: Logical operators, integrating github into your workflow | 
  Tue 10/15 12:00AM |  
  Tue 10/22 11:59PM | 
    
  
     
     
  | lab03 | 
  true | 
  Counting ducks: File I/O and flow control | 
  Tue 10/29 09:00AM |  
  Tue 11/05 11:59PM | 
    
  
     
     
  | lab04 | 
  true | 
  Odds and primes: Fun with arrays and makefiles | 
  Tue 11/05 09:00AM |  
  Tue 11/12 11:59PM | 
    
  
     
     
  | lab05 | 
  true | 
  Fun with shapes: Pointers | 
  Tue 11/12 09:00AM |  
  Mon 11/18 11:59PM | 
    
  
     
     
  | lab06 | 
  true | 
  Advanced array lists and dynamic arrays | 
  Tue 11/12 09:00AM |  
  Tue 11/19 11:59PM | 
    
  
     
     
  | lab07 | 
  true | 
  Linked lists | 
  Tue 11/19 09:00AM |  
  Mon 11/26 11:59PM | 
    
  
     
     
  | lab08 | 
  true | 
  Anagrams, palindromes: Strings and recursion | 
  Tue 11/26 09:00AM |  
  Thu 12/05 11:59PM | 
    
  
  
 
Homework
 
  
  | num | 
  ready? | 
  description | 
  assigned | 
  due | 
  
    
  | h01 | 
  true | 
  Chapter 1: Computer systems, introduction to C++ (pdf) | 
  Thu 09/26 12:30PM |  
  Thu 10/10 12:30PM | 
  
  
    
  | h02 | 
  true | 
  Chapter 2: Variables and assignments, Input/output, Data types and expressions,
Simple flow control (pdf) | 
  Thu 09/26 12:30PM |  
  Thu 10/10 12:30PM | 
  
  
    
  | h03 | 
  true | 
  Chapter 3: Boolean expressions, multiway branches, more loops (pdf) | 
  Thu 10/10 09:00AM |  
  Thu 10/17 12:30PM | 
  
  
    
  | h04 | 
  true | 
  Chapter 4: Predefined and programmer defined functions  (pdf) | 
  Thu 10/10 09:00AM |  
  Thu 10/17 12:30PM | 
  
  
    
  | h05 | 
  true | 
  Chapter 5: Call by value and call by reference  (pdf) | 
  Thu 10/31 09:00AM |  
  Thu 11/07 11:59PM | 
  
  
    
  | h06 | 
  true | 
  Chapter 7 and 10: Pointers (pdf) | 
  Thu 10/31 09:00AM |  
  Thu 11/07 11:59PM | 
  
  
    
  | h07 | 
  true | 
  Chapter 6: File IO, Chapter 9: Dynamic memory allocation (pdf) | 
  Mon 11/11 11:00AM |  
  Sat 11/16 11:59PM | 
  
  
    
  | h08 | 
  true | 
  Chapter 13 Linked lists (pdf) | 
  Mon 11/11 11:00AM |  
  Thu 11/21 11:59PM | 
  
  
    
  | h09 | 
  true | 
  Chapter 13 More Linked lists (pdf) | 
  Sat 11/16 11:00AM |  
  Thu 11/21 11:59PM | 
  
  
    
  | h10 | 
  true | 
  Chapter 14: Recursion (pdf) | 
  Mon 11/25 12:30PM |  
  Thu 12/05 11:59PM | 
  
  
 
Exams
 
  
  | num | 
  ready? | 
  description | 
  exam date | 
 
   
  | e01 | 
  true | 
  Midterm 1 | 
  Thu 10/24 12:30PM |  
 
 
   
  | e02 | 
  true | 
  Midterm 2 | 
  Thu 11/21 12:30PM |  
 
 
   
  | e03 | 
  true | 
  Final Exam | 
  Mon 12/09 12:00PM |