CS 16: Problem Solving with Computers -I , Spring 18

Lecture Notes and Slides:

lecture date notes ready? description pdf
2018-09-27 lect01 true Course overview, a gentle intro to C++ - Standard I/O pdf
2018-10-02 lect02 true Hello World! + unix, vim and git pdf
2018-10-04 lect03 true Variables and types, expressions, control structures (if-else), input/output pdf
2018-10-09 lect04 true Repetition with loops pdf
2018-10-11 lect05 true C++ Memory Model pdf
2018-10-16 lect06 true TDD, Automating compilation with Makefiles pdf
2018-10-18 lect07 true File IO, Data Representation, Intro to lab03 pdf
2018-10-30 lect08 true Arrays and C-Strings, intro to lab04 pdf
2018-11-01 lect09 true References and Pointers, Call by value, address and reference pdf
2018-11-06 lect10 true Defining custom types with structs, intro to lab05 pdf
2018-11-08 lect11 true Dynamic memory allocation (Heap), Heap vs Stack, Intro to linked lists pdf
2018-11-13 lect12 true Dynamic arrays, tools to debug problems involving dynamic memory: gdb, valgrind, and intro to lab06 pdf
2018-11-20 lect13 true Double Linked lists, more memory management pdf
2018-11-27 lect14 true Recursion pdf
2018-11-29 lect15 true Recursion pitfalls, and more practice pdf
2018-12-04 lect16 true Using the C++ STL: array, vector list pdf
2018-12-06 lect17 true Wrap up and final review pdf

Homework and quizzes:

num ready? description assigned due
h01 true Chapter 1: Computer systems, introduction to C++ Thu 09/27 12:30PM Wed 10/03 12:30PM
h02 true Chapter 2: Variables and assignments, Input/output, Data types and expressions, Simple flow control Thu 10/04 12:30PM Wed 10/10 12:30PM
h03 true Chapter 3: Boolean expressions, multiway branches, more loops Thu 10/11 12:30PM Wed 10/17 12:30PM
h04 true Chapter 4: Predefined and programmer defined functions Thu 10/18 12:30PM Wed 10/24 12:30PM
h05 true Chapter 7 and 10:Arrays and Pointers Thu 11/08 12:30PM Wed 11/14 12:30PM
h06 true Chapter 5: Call by value and call by reference Thu 11/08 12:30PM Wed 11/14 12:30PM
h07 true Chapter 9: Dynamic memory allocation Tue 11/20 12:30PM Wed 11/28 12:30PM
h08 true Chapter 13 Linked lists Tue 11/20 12:30PM Wed 11/28 12:30PM
h09 true Chapter 14: Recursion Thu 11/29 12:30PM Wed 12/05 12:30PM
h10 true Chapter 8: Strings Thu 11/29 12:30PM Wed 12/05 12:30PM
ic00 true Pair Partner Picking Planning Tue 10/02 12:30PM Wed 10/03 12:30PM

Labs:

num ready? description assigned due
lab00 true Getting started Wed 10/03 09:00AM Tue 10/09 11:59PM
lab01 true Crunching numbers: Loops and functions Wed 10/10 09:00AM Tue 10/16 11:59PM
lab02 true ASCII Art: Logical operators, integrating github into your workflow Wed 10/17 09:00AM Tue 10/23 11:59PM
lab03 true Counting ducks: File I/O and flow control Wed 10/24 09:00AM Tue 10/30 11:59PM
lab04 true Odds and primes: Fun with arrays and makefiles Wed 10/31 09:00AM Tue 11/06 11:59PM
lab05 true Fun with shapes: Pointers Wed 11/07 09:00AM Tue 11/13 11:59PM
lab06 true Advanced array lists and dynamic arrays Wed 11/14 09:00AM Tue 11/20 11:59PM
lab07 true Linked lists Wed 11/28 09:00AM Tue 12/04 11:59PM
lab08 true Anagrams, palindromes: Strings and recursion Wed 12/05 09:00AM Fri 12/07 11:59PM

Exams

num ready? description exam date
e01 true Midterm exam - I Thu 10/25 12:30PM
e02 true Midterm exam - II Thu 11/15 12:30PM
e03 (noon - 3p) true Final Exam Mon 12/10 11:59AM