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