CS16 Fall 2019

All announcements will be posted on Piazza at this link.

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)

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

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

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