CS16 Winter 2020
All announcements will be posted on Piazza at this link.
Link to code written in lecture Section A and Section B
Information
Lecture Notes and Slides
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) |
Labs
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 |
Homework
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 |
Exams
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 |