You can click on the header for a specific week to expand or collapse the materials for that week.
| Day 1 (25-Aug) | Day 2 (27-Aug) | Day 3 (29-Aug) | |
|---|---|---|---|
| Videos | Course intro Linux, ugrad accounts |
Hello world program in C C basics |
Editors (emacs) Git Submission workflow |
| Slides | Course intro Linux, ugrad accounts |
Hello world program in C C basics |
Editors (emacs) Git Submission workflow |
| Recap Questions |
Day 1 | Day 2 | Day 3 |
| Exercise | Exercise 1 | Exercise 2 | Exercise 3-A Exercise 3-B |
| Additional Resources |
NOTES: Unix Unix/Linux Tutorial Unix/Linux Reference Card JSLinux |
NOTES: C Basics NOTES: I/O in C Online C compiler |
Emacs reference card Interactive Vim tutorial Git cheatsheet Setting Up VS Code GitHub Token & SSH key setup |
| Labor Day (1-Sep) | Day 4 (3-Sep) | Day 5 (5-Sep) | |
|---|---|---|---|
| Videos | NA | Logical operators, control flow | Arrays, ASCII C strings |
| Slides | NA | Logical operators, control flow | Arrays C strings |
| Recap Questions |
NA | Day 4 | Day 5 |
| Exercise | NA | Exercise 4 | Exercise 5 |
| Additional Resources |
NA | NOTES: C Basics NOTES: Control Structures |
NOTES: C Arrays NOTES: C Strings |
| Day 9 (15-Sep) | Day 10 (17-Sep) | Day 11 (19-Sep) | |
|---|---|---|---|
| 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) |
valgrind --leak-check=full --show-leak-kinds=all |
| Day 12 (22-Sep) | Day 13 (24-Sep) | Day 14 (26-Sep) | |
|---|---|---|---|
| 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 (30-Sep) | Day 16 (2-Oct) | Day 17 (4-Oct) | |
|---|---|---|---|
| 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 (7-Oct) | Day 19 (9-Oct) | Day 20 (11-Oct) | |
|---|---|---|---|
| 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 | Midterm Project | Midterm Project |
| Additional Resources |
Midterm Review Questions Fall 2019 Midterm Questions |
Midterm Review Solutions Fall 2019 Midterm Solutions |
| Day 21 (14-Oct) | Day 22 (16-Oct) | Fall Break (18-Oct) | |
|---|---|---|---|
| Videos | Midterm Exam | Introduction to C++ C++ Strings |
Fall Break (no class)! |
| Slides | Midterm Exam | Introduction to C++ C++ Strings |
N/A |
| Recap Questions |
N/A | Day 22 | N/A |
| Exercise | N/A | Midterm Project | N/A |
| Additional Resources |
NOTES: C++ Basics, NOTES: I/O in C++, NOTES: C++ string class |
| Day 23 (21-Oct) | Day 24 (23-Oct) | Day 25 (25-Oct) | |
|---|---|---|---|
| Videos | Introduction to STL and templates | STL Containers - map, pair, and tuple STL Algorithms |
C++ I/O stream and stringstream Intro to Object Oriented Programming |
| Slides | Introduction to STL and templates | STL Containers - map, pair, and tuple STL Algorithms |
C++ I/O stream and stringstream Intro to Object Oriented Programming |
| Recap Questions |
Day 23 | Day 24 | Day 25 |
| Exercise | Exercise 23 | Exercise 24 | Exercise 25 |
| Additional Resources |
NOTES: STL | NOTES: STL | NOTES: C++ I/O, NOTES: string class |
| Day 26 (27-Oct) | Day 27 (29-Oct) | Day 28 (31-Oct) | |
|---|---|---|---|
| Videos | C++ Reference C++ Dynamic Memory Allocation |
C++ Classes Default Constructors |
Constructors and default arguments Destructors |
| Slides | References Dynamic Memory Allocation |
C++ Classes Default Constructors |
Constructors and default arguments Destructors |
| Recap Questions |
Day 26 | Day 27 | Day 28 |
| Exercise | Exercise 26 | Exercise 27 | Exercise 28 |
| Additional Resources |
NOTES: C++ Basics NOTES: C++ Dynamic Memory |
NOTES: C++ classes | NOTES: C++ classes |
| Day 29 (3-Nov) | Day 30 (5-Nov) | Day 31 (7-Nov) | |
|---|---|---|---|
| Videos | Function overloading Operator overloading |
Initialization and assignment Rule of 3 |
Template functions Template classes |
| Slides | Function overloading Operator overloading |
Initialization and assignment Rule of 3 |
Template functions Template classes |
| Recap Questions |
Day 29 | Day 30 | Day 31 |
| Exercise | Exercise 29 | Exercise 30 | Exercise 31 |
| Additional Resources |
NOTES: Overloading | NOTES: Function & Class Templates |
| Day 32 (10-Nov) | Day 33 (12-Nov) | Day 34 (14-Nov) | |
|---|---|---|---|
| Videos | Inheritance Polymorphism |
Dynamic dispatch Function hiding & abstract classes Virtual destructors |
OO Design & UML Diagrams |
| Slides | Inheritance Polymorphism |
Dynamic dispatch Function hiding & abstract classes Virtual destructors |
OO Design & UML Diagrams |
| Recap Questions |
Day 32 | Day 33 | Day 34 |
| Exercise | Exercise 32 | Exercise 33 | Work on final project |
| Additional Resources |
NOTES: Inheritance & Polymorphism | NOTES: Inheritance & Polymorphism | NOTES: Object Oriented Design |
| Day 35 (17-Nov) | Day 36 (19-Nov) | Day 37 (21-Nov) | |
|---|---|---|---|
| Videos | Enumerated Types Exceptions Customized Exceptions |
N/A | Iterators |
| Slides | Enumerated Types Exceptions Customized Exceptions |
N/A | Iterators |
| Recap Questions |
Day 35 | N/A | Day 37 |
| Exercise | Exercise 35 | Work on final project | Exercise 37 |
| Additional Resources |
NOTES: Error & Exception Handling |
| Day 38 (1-Dec) | Day 39 (3-Dec) | Day 40 (5-Dec) | |
|---|---|---|---|
| Videos | Lambdas | N/A | N/A |
| Slides | Lambdas | N/A | N/A |
| Recap Questions |
Day 38 | N/A | N/A |
| Exercise | Work on final project | Work on final project | Work on final project |
| Additional Resources |
Lambdas & Miscellany | Final Exam Review Questions | Final Exam Review Solutions |