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 | Aug 27: Read Text: Chapter 2 Read Unix Tutorial: Intro, T1, T2, T3 Slides: Introduction |
Aug 29: Slides: C++ Basics Module 1: Hello C++ (Due Thu Sept 5) Read Unix Tutorial: T4, T5, T6 |
Aug 30: Lab 1: Linux Basics (Due Thr Sep 5) |
2 | Sep 3: Read Text: Chapter 3 Slides: Strings and Functions Module 2: Functions, Strings, and Command-Line Arguments (Due Tue Sept 10) |
Sep 5: Slides: Collections and File I/O Module 3: Arrays, Vectors, and File I/O (Due Thr Sep 12) |
Sep 6: Lab 2: File I/O (Due Thr Sep 12) |
3 | Sep 10: Read Text: Chapter 17 Slides: Pointers and Memory |
Sep 12: Slides: References and Heap |
Sep 13: Lab 3: Pointers and References (Due Thr Sep 19) |
4 | Sep 17: Read Text: Chapter 5 Slides: Debugging Quiz Review |
Sep 19: Slides: Errors and Exception Handling Quiz 1 |
Sep 20: Lab 4: Debugging and Exception Handling (Due Thr Sep 26) |
5 | Sep 24: Read Text: Chapter 9 Slides: Classes and OOP Module 4: Classes - Abstraction and Encapsulation (Due Tue Oct 1) |
Sep 26: Slides: Enum, Static, Overloading Module 5: Classes - Enum, Static, Overloading (Due Thr Oct 3) |
Sep 27: Lab 5: Enigma (Due Thr Oct 3) |
6 | Oct 1: Lecture Notes: Scope, Friends, Destructors, Composition, and UML Module 6: Scope, Friends, Destructors, Composition, and UML(Due Tue Oct 8) |
Oct 3: Slides: Inheritance, Polymorphism, Virtual Functions, Abstract Classes Live Code |
Oct 4: Lab 6: Inheritance and Polymorphism (Due Thr Oct 10) |
7 | Oct 8: Quiz Review |
Oct 10: Lecture Notes: Memory Leaks and Memory Violations Quiz 2 |
Oct 11: Lab 7: Valgrind - Memory debugging tool (Due Thr Oct 17) |
8 | Oct 15: Fall Break | Oct 17: Lecture Notes: Regular Expressions in C++ Module 8: Regular Expressions (Due Thr Oct 24) |
Oct 18: Lab 8: Regular Expressions in C++ and Linux (Due Thr Oct 24) |
9 | Oct 22: Slides: Make and Makefiles Module 7: Build Automation with Make (Due Tue Oct 29) |
Oct 24: Slides: C++ Templates Module 10: Templates (Due Thr Oct 31) |
Oct 25: Lab 9 Templates (Due Thr Oct 31) |
10 | Oct 29: Lecture Notes: What is an API? Slides: Serialization in C++ Module 9: Serialization (Due Tue Nov 5) |
Oct 31: Slides: Building a REST API in C++ Module 11: REST APIs (Due Thr Nov 7) |
Nov 1: Lab 10 Git and GitHub (Due Thr Nov 7) |
11 | Nov 5: Project Description and Grading Rubric Quiz Review |
Nov 7: Module 12: REST APIs Part 2 (Due Thr Nov 14) Quiz 3 |
Nov 8: Project Part 1: Proposal DUE Proposal Review in Lab |
12 | Nov 12: Module 13: REST APIs Part 3 (Due Tue Nov 19) |
Nov 14: Slides: Smart Pointers Module 14: C++ Smart Pointers (Due Thr Nov 21) |
Nov 15: Project Part 2: Design DUE Design Review in Lab |
13 | Nov 19: Slides: Build Pipelines Lecture Notes: Unit Testing Module 15: Build Pipelines (Due Tue Nov 26) |
Nov 21: Slides: Copy Move Semantics Module 16: Copy Move Semantics (Due Tue Dec 3) |
Nov 22: Work on Project |
14 | Nov 26: Guest Lecture |
Nov 28: Thanksgiving Break | Nov 29: Thanksgiving Break |
15 | Dec 3: Slides: Software Development Life Cycle Project Presentation Guidelines Class Announcements Quiz Review |
Dec 5: Slides: Design Patterns Quiz 4 |
Dec 6: Project Part 3 and Part 4: Implementation and Unit Testing DUE |
16 | Dec 10: (2pm): Project Presentations |