Course Schedule of Topics and Due Dates
-
Course schedule is subject to change as the semester progresses.
-
All work should be submitted by 11:59PM (in Richmond, VA) on the date due.
Week | Lecture (Tue) | Lecture (Thr) | Lab (Fri) |
---|---|---|---|
1 | Jan 14: Read Text: Chapter 2 Read Unix Tutorial: Intro, T1, T2, T3 Slides: Introduction Complete the VSCode and SSH Guide (Due Thr Jan 16) |
Jan 16: Slides: C++ Basics Module 1: Hello C++ (Due Thu Jan 23) Read Unix Tutorial: T4, T5, T6 |
Jan 17: Lab 1: Linux Basics (Due Thr Jan 23) |
2 | Jan 21: Read Text: Chapter 3 Slides: Strings and Functions Module 2: Functions, Strings, and Command-Line Arguments (Due Tue Jan 28) |
Jan 23: Slides: Collections and File I/O Module 3: Arrays, Vectors, and File I/O (Due Thr Jan 30) |
Jan 24: Lab 2: File I/O (Due Thr Jan 30) |
3 | Jan 28: Read Text: Chapter 17 Slides: Pointers and Memory Module 4: Introduction to Pointers (Due Tue Feb 4) |
Jan 30: Slides: References and Heap |
Jan 31: Lab 3: Pointers and References (Due Thr Feb 6) |
4 | Feb 4: Read Text: Chapter 5 Slides: Debugging Quiz Review |
Feb 6: Slides: Errors and Exception Handling Quiz 1 |
Feb 7: Lab 4: Debugging and Exception Handling (Due Thr Feb 13) |
5 | Feb 11: Snow Day! No Class |
Feb 13: Read Text: Chapter 9 Slides: Classes and OOP Module 5a: Classes - Abstraction and Encapsulation (Due Thr Feb 20) |
Feb 14: Lab 5: Enigma (Due Thr Feb 20) |
6 | Feb 18: Slides: Enum, Static, Overloading Module 5b: Classes - Enum, Static, Overloading (Due Tue Feb 25) |
Feb 20: Lecture Notes: Memory Leaks and Memory Violations |
Feb 21: Lab 7: Valgrind - Memory debugging tool (Due Thr Feb 27) |
7 | Feb 25: Lecture Notes: Scope, Friends, Destructors, Composition, and UML Module 6: Scope, Friends, Destructors, Composition, and UML(Due Tue Mar 4) |
Feb 27: Slides: Inheritance, Polymorphism, Virtual Functions, Abstract Classes Live Code |
Feb 28: Lab 6: Inheritance and Polymorphism (Due Thr Mar 6) |
8 | Mar 4: Quiz Review Quiz 2 |
Mar 6: Lecture Notes: Regular Expressions in C++ Module 8: Regular Expressions (Due Thr Mar 20) |
Mar 7: Lab 8: Regular Expressions in C++ and Linux (Due Thr Mar 20) |
9 | Mar 11: Spring Break | Mar 13: Spring Break | Mar 14: Spring Break |
10 | Mar 18: Slides: Make and Makefiles Module 7: Build Automation with Make (Due Tue Mar 25) |
Mar 20: Slides: C++ Templates Module 10: Templates (Due Thr Mar 27) |
Mar 21: Lab 9 Templates (Due Thr Mar 27) |
11 | Mar 25: Lecture Notes: What is an API? Slides: Serialization in C++ Module 9: Serialization (Due Tue Apr 1) |
Mar 27: Slides: Building a REST API in C++ Module 11: REST APIs (Due Thr Apr 3) |
Mar 28: Lab 10 Git and GitHub (Due Thr Apr3) |
12 | Apr 1: Project Description and Grading Rubric Quiz Review |
Apr 3: Quiz 3 Module 12: REST APIs Part 2 (Due Tue Apr 15) |
Apr 4: Project Part 1: Proposal DUE Project Proposal Review in Lab Be prepared to describe your proposal |
13 | Apr 8: Module 13: REST APIs Part 3 (Due Thr Apr 15) |
Apr 10: Slides: Smart Pointers Module 14: C++ Smart Pointers (Due Thr Apr 17) |
Apr 11: Storage Space Fix Project Part 2: Design DUE Project Design Review in Lab Be prepared to describe your design |
14 | Apr 15: Slides: Build Pipelines Lecture Notes: Unit Testing Module 15: Build Pipelines (Due Tue Apr 22) |
Apr 17: Slides: Copy Move Semantics Module 16: Copy Move Semantics (Due Thr Apr 24) Class ends early at 3:50pm Optional Lab Redo(Due Fri Apr 25) |
Apr 18: Work on Project |
15 | Apr 22: Quiz Review |
Apr 24: Quiz 4 |
Apr 25: Project Part 3: Project Implementation DUE April 29 by 2pm Be prepared to demonstrate implementation Project Part 4: Project Unit Testing DUE April 29 by 2pm Be prepared to demonstrate unit tests |
16 | Apr 29: (2pm): Project Presentations Project Presentation Guidelines |