CS16 Winter 2020

All announcements will be posted on Piazza at this link.

Link to code written in lecture Section A and Section B

num date description
Lecture 1 Tue 01/07 Course overview, a gentle intro to C++ - Standard I/O (slides) (annotated slides)
Lecture 2 Thu 01/09 Git, Basic I/O, Variable Types and Scope, Boolean Expressions, Control Flow (slides) (annotated slides)
Lecture 3 Tue 01/14 Git, Functions, Loops (slides) (annotated slides)
Lecture 4 Thu 01/16 Functions, Loops (contd) (slides) (annotated slides)
Lecture 5 Tue 01/21 File IO (slides) (annotated slides)
Lecture 6 Thu 01/23 Test Driven Development + lab02 practice (slides)
Lecture 7 Tue 01/28 Data Representation (slides) (annotated slides)
Lecture 8 Tue 02/04 References and Pointers, Call by value, address and reference (slides) (annotated slides)
Lecture 9 Thu 02/06 Arrays and Pointers (slides) (annotated slides)
Lecture 10 Tue 02/11 Defining custom types with structs, intro to lab05 (slides) (annotated slides)
Lecture 11 Thu 02/13 Makefiles, C++ Memory model - heap vs. stack (slides) (annotated slides)
Lecture 12 Tue 02/18 Linked Lists - intro  (slides) (annotated slides)
Lecture 13 Tue 02/25 Linked Lists (slides) (annotated slides)
Lecture 14 Thu 02/27 Double-Linked Lists and Memory Errors (slides) (annotated slides)
Lecture 15 Tue 03/03 Recursion (slides) (annotated slides)
Lecture 16 Thu 03/05 Recursion pitfalls, and more practice (slides) (annotated slides)
Lecture 17 Tue 03/10 Wrap up and final review (slides) (annotated slides)

num ready? description assigned due
lab00 true Getting started Wed 01/08 09:00AM Mon 01/13 11:59PM
lab01 true Crunching numbers: Loops and functions Fri 01/10 09:00AM Tue 01/21 11:59PM
lab02 true ASCII Art: Logical operators, integrating github into your workflow (Revised!) Sun 01/19 09:00AM Mon 01/27 11:59PM
lab03 true Counting ducks: File I/O and flow control Wed 01/29 09:00AM Tue 02/04 11:59PM
lab04 true Odds and primes: Fun with arrays and makefiles Mon 02/03 09:00AM Tue 02/18 11:59PM
lab05 true Fun with shapes: Pointers Mon 02/10 09:00AM Tue 02/18 11:59PM
lab06 true Advanced array lists and dynamic arrays Mon 02/24 09:00AM Tue 03/03 11:59PM
lab07 true Linked lists Sun 02/23 09:00AM Tue 03/03 11:59PM
lab08 true Recursion Mon 03/02 09:00AM Thu 03/12 11:59PM

num ready? description assigned due
h01 true Chapter 1: Computer systems, introduction to C++ (pdf) Wed 01/08 09:00AM Wed 01/15 11:59PM
h02 true Chapter 2: Variables and assignments, Input/output, Data types and expressions, Simple flow control (pdf) Wed 01/08 09:00AM Wed 01/15 11:59PM
h03 true Chapter 3: Boolean expressions, multiway branches, more loops (pdf) Wed 01/15 09:00AM Wed 01/22 11:59PM
h04 true Chapter 4: Predefined and programmer defined functions, Chapter 6: File IO Wed 01/22 09:00AM Wed 01/29 11:59PM
h05 true Chapter 5: Call by value and call by reference  (pdf) Wed 01/29 09:00AM Wed 02/05 11:59PM
h06 true Chapter 7 and 10: Pointers (pdf) Wed 02/05 09:00AM Wed 02/12 11:59PM
h07 true Chapter 6: File IO, Chapter 9: Dynamic memory allocation (pdf) Wed 02/12 09:00AM Wed 02/26 11:59PM

num ready? description exam date
e01 true Midterm 1 Thu 01/30 12:00AM
e02 true Midterm 2 Thu 02/20 12:00AM
e03 true Final Exam Tue 03/17 04:00PM