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 |