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 |