You can click on the header for a specific week to expand or collapse the materials for that week.
| NA | Day 1 (21-Jan) | Day 2 (23-Jan) | |
|---|---|---|---|
| Videos | NA | Course intro Linux, ugrad accounts |
Hello world program in C C basics |
| Slides | NA | Course intro Linux, ugrad accounts |
Hello world program in C C basics |
| Recap Questions |
NA | Day 1 | Day 2 |
| Exercise | NA | Exercise 1 | Exercise 2 |
| Additional Resources |
NA | NOTES: Unix Unix/Linux Tutorial Unix/Linux Reference Card JSLinux |
NOTES: C Basics NOTES: I/O in C Online C compiler |
| Day 3 (26-Jan) | Day 4 (28-Jan) | Day 5 (30-Jan) | |
|---|---|---|---|
| Videos | Editors (emacs) Git Submission workflow |
Logical operators, control flow | Arrays, ASCII C strings |
| Slides | Editors (emacs) Git Submission workflow |
Logical operators, control flow | Arrays C strings |
| Recap Questions |
Day 3 | Day 4 | Day 5 |
| Exercise | Exercise 3-A Exercise 3-B |
Exercise 4 | Exercise 5 |
| Additional Resources |
Emacs reference card Interactive Vim tutorial Git cheatsheet Setting Up VS Code GitHub Token & SSH key setup |
NOTES: C Basics NOTES: Control Structures |
NOTES: C Arrays NOTES: C Strings |
| Day 9 (9-Feb) | Day 10 (11-Feb) | Day 11 (13-Feb) | |
|---|---|---|---|
| Videos | Multidimensional arrays, gdb | Pointers | Dynamic Memory Allocation Valgrind |
| Slides | Multidimensional arrays, gdb | Pointers | Dynamic Memory Allocation Valgrind |
| Recap Questions |
Day 9 | Day 10 | Day 11 |
| Exercise | Exercise 9 | Exercise 10 | Exercise 11 |
| Additional Resources |
GDB Cheat Sheet NOTES: Storage classes (including gdb) |
Binky the Pointer (Video) NOTES: Pointers & Dynamic Memory Allocation (including valgrind) |
Prof. Martin: Writing Robust C Code Prof. Martin: Debugging Like a Scientist |
| Day 12 (16-Feb) | Day 13 (18-Feb) | Day 14 (20-Feb) | |
|---|---|---|---|
| Videos | Pointer Arithmetic Dynamic 2-D Arrays, Pointers and Const | Lifetime/Scope Structs Random number generation |
Binary file I/O Bitwise operations |
| Slides | Pointer Arithmetic Dynamic 2-D Arrays, Pointers and Const |
Lifetime/Scope Structs Random number generation |
Binary file I/O Bitwise operations |
| Recap Questions |
Day 12 | Day 13 | Day 14 |
| Exercise | Exercise 12 | Exercise 13 | Exercise 14 |
| Additional Resources |
NOTES: Pointers & Dynamic Memory Allocation (includes valgrind) | NOTES: Storage Classes NOTES: Struct Definitions NOTES: Functions (includes rand()) |
NOTES: C I/O (includes binary files) NOTES: C Basics (includes bitwise ops) |
| Day 15 (23-Feb) | Day 16 (25-Feb) | Day 17 (27-Feb) | |
|---|---|---|---|
| Videos | Number representation, type conversion/casting |
Linked lists | |
| Slides | Number representation, type conversion/casting |
Linked lists | |
| Recap Questions |
Day 15 | Day 16 | |
| Exercise | Exercise 15 | Exercise 16 | Midterm Project |
| Additional Resources |
NOTES: C Basics (includes typecasting) |
| Day 18 (2-March) | Day 19 (4-March) | Day 20 (6-March) | |
|---|---|---|---|
| Videos | More Linked lists | N/A | N/A |
| Slides | More Linked lists | N/A | N/A |
| Recap Questions |
Day 18 | N/A | N/A |
| Exercise | Exercise 18 | Work on midterm project | Work on midterm project |
| Additional Resources |
Midterm Review Questions Fall 2019 Midterm Questions |
Midterm Review Solutions Fall 2019 Midterm Solutions |
| Day 21 (9-March) | Day 22 (11-March) | Day 23 (13-March) | |
|---|---|---|---|
| Videos | Midterm Exam | Introduction to C++ C++ Strings |
Introduction to STL and templates |
| Slides | Midterm Exam | Introduction to C++ C++ Strings |
Introduction to STL and templates |
| Recap Questions |
N/A | Day 22 | Day 23 |
| Exercise | N/A | Midterm Project | Exercise 23 |
| Additional Resources |
NOTES: C++ Basics, NOTES: I/O in C++, NOTES: C++ string class | NOTES: STL |
| Day 24 (23-March) | Day 25 (25-March) | Day 26 (27-March) | |
|---|---|---|---|
| Videos | STL Containers - map, pair, and tuple STL Algorithms |
C++ I/O stream and stringstream Intro to Object Oriented Programming |
C++ Reference C++ Dynamic Memory Allocation |
| Slides | STL Containers - map, pair, and tuple STL Algorithms |
C++ I/O stream and stringstream Intro to Object Oriented Programming |
References Dynamic Memory Allocation |
| Recap Questions |
Day 24 | Day 25 | Day 26 |
| Exercise | Exercise 24 | Exercise 25 | Exercise 26 |
| Additional Resources |
NOTES: STL | NOTES: C++ I/O, NOTES: string class | NOTES: C++ Basics NOTES: C++ Dynamic Memory |
| Day 27 (30-March) | Day 28 (1-April) | Day 29 (3-April) | |
|---|---|---|---|
| Videos | C++ Classes Default Constructors |
Constructors and default arguments Destructors |
Function overloading Operator overloading (newer version) Operator overloading (older version also covering copy constructors) |
| Slides | C++ Classes Default Constructors |
Constructors and default arguments Destructors |
Function overloading Operator overloading |
| Recap Questions |
Day 27 | Day 28 | Day 29 |
| Exercise | Exercise 27 | Exercise 28 | Exercise 29 |
| Additional Resources |
NOTES: C++ classes | NOTES: C++ classes | NOTES: Overloading |
| Day 30 (6-April) | Day 31 (8-April) | Day 32 (10-April) | |
|---|---|---|---|
| Videos | Initialization and assignment Rule of 3 |
Template functions Template classes |
Inheritance Polymorphism |
| Slides | Initialization and assignment Rule of 3 |
Template functions Template classes |
Inheritance Polymorphism |
| Recap Questions |
Day 30 | Day 31 | Day 32 |
| Exercise | Exercise 30 | Exercise 31 | Exercise 32 |
| Additional Resources |
Final Project Team Declaration/Team Placement Request Form | NOTES: Function & Class Templates | NOTES: Inheritance & Polymorphism |
| Day 33 (13-April) | Day 34 (15-April) | Day 35 (17-April) | |
|---|---|---|---|
| Videos | Dynamic dispatch Function hiding & abstract classes Virtual destructors |
OO Design & UML Diagrams | Enumerated Types Exceptions Customized Exceptions |
| Slides | Dynamic dispatch Function hiding & abstract classes Virtual destructors |
OO Design & UML Diagrams | Enumerated Types Exceptions Customized Exceptions |
| Recap Questions |
Day 33 | Day 34 | Day 35 |
| Exercise | Exercise 33 | Work on final project | Exercise 35 |
| Additional Resources |
NOTES: Inheritance & Polymorphism | NOTES: Object Oriented Design | NOTES: Error & Exception Handling |
| Day 36 (20-April) | Day 37 (22-April) | Day 38 (24-April) | |
|---|---|---|---|
| Videos | N/A | Iterators | Lambdas |
| Slides | N/A | Iterators | Lambdas |
| Recap Questions |
N/A | Day 37 | Day 38 |
| Exercise | Work on final project | Exercise 37 | Work on final project |
| Additional Resources |
Lambdas & Miscellany |
| Day 39 (27-April) | |
|---|---|
| Videos | N/A |
| Slides | N/A |
| Recap Questions |
N/A |
| Exercise | Work on final project |
| Additional Resources |
Final Exam Review Questions Final Exam Review Solutions |