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 |