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 16: Read Text: Chapter 2 Read Unix Tutorial: Intro, T1, T2, T3 Slides: Introduction |
Jan 18: Slides: C++ Basics Module 1: Hello C++ (Due Thu Jan 25) Read Unix Tutorial: T4, T5, T6 |
Jan 19: Lab 1: Linux Basics (Due Thr Jan 25) |
2 | Jan 23: Read Text: Chapter 3 Slides: Strings and Functions Module 2: Functions, Strings, and Command-Line Arguments (Due Tue Jan 30) |
Jan 25: Slides: Collections and File I/O Module 3: Arrays, Vectors, and File I/O (Due Thr Feb 1) |
Jan 26: Lab 2: File I/O (Due Thr Feb 1) |
3 | Jan 30: Read Text: Chapter 17 Slides: Pointers and Memory |
Feb 1: Slides: References and Heap |
Feb 2: Lab 3: Pointers and References (Due Thr Feb 8) |
4 | Feb 6: Read Text: Chapter 5 Slides: Debugging Quiz Review |
Feb 8: Slides: Errors and Exception Handling Quiz 1 |
Feb 9: Lab 4: Debugging and Exception Handling (Due Thr Feb 15) |
5 | Feb 13: Read Text: Chapter 9 Slides: Classes and OOP Module 4: Classes - Abstraction and Encapsulation (Due Tue Feb 20) |
Feb 15: Slides: Enum, Static, Overloading Module 5: Classes - Enum, Static, Overloading (Due Thr Feb 22) |
Feb 16: Lab 5: Enigma (Due Thr Feb 22) |
6 | Feb 20: Lecture Notes: Scope, Friends, Destructors, Composition, and UML Module 6: Scope, Friends, Destructors, Composition, and UML(Due Thr Feb 27) |
Feb 22: Slides: Inheritance, Polymorphism, Virtual Functions, Abstract Classes Live Code |
Feb 23: Lab 6: Inheritance and Polymorphism (Due Thr Feb 29) |
7 | Feb 27: Quiz Review |
Feb 29: Lecture Notes: Memory Leaks and Memory Violations Quiz 2 |
Mar 1: Lab 7: Valgrind - Memory debugging tool (Due Thr Mar 7) |
8 | Mar 5: Slides: Make and Makefiles Module 7: Build Automation with Make (Due Tue Mar 19) |
Mar 7: Lecture Notes: Regular Expressions in C++ Module 8: Regular Expressions (Due Thr Mar 21) |
Mar 8: Lab 8: Regular Expressions in C++ and Linux (Due Thr Mar 21) |
9 | Mar 12: Spring Break |
Mar 14: Spring Break |
Mar 15: Spring Break |
10 | Mar 19: Slides: Serialization in C++ Module 9: Serialization (Due Thr Mar 28) |
Mar 21: Slides: C++ Templates Module 10: Templates (Due Thr Mar 28) |
Mar 22: Lab 9 Templates (Due Thr Mar 28) |
11 | Mar 26: Slides: Building a REST API in C++ Module 11: REST APIs (Due Tue April 2) Quiz Review |
Mar 28: Lecture Notes: APIs Module 12: REST APIs Part 2 (Due Thr April 4) Project Description and Grading Rubric Quiz 3 |
Mar 29: Lab 10 Git and GitHub (Due Thr Apr 4) |
12 | Apr 2: Module 13: REST APIs Part 3 (Due Tue April 9) |
Apr 4: Project Part 1: Proposal DUE Slides: Smart Pointers Module 14: C++ Smart Pointers (Due Thr April 11) |
Apr 5: Proposal Review in Lab Work on Project |
13 | Apr 9: Slides: Build Pipelines Lecture Notes: Unit Testing Module 15: Build Pipelines (Due Tue April 16) |
Apr 11: Project Example: Music Store Guide to Markdown Project Presentation Guidelines |
Apr 12: Project Part 2: Design DUE Work on Project |
14 | Apr 16: Slides: Software Development Life Cycle Quiz Review |
Apr 18: Slides: Design Patterns Quiz 4 |
Apr 19: Work on Project Altered schedule for Convocation Lab starts at 9:50AM |
15 | Apr 23: Slides: C++ Security Vulnerabilities Class Announcements |
Apr 25: Course Evals Work on Project |
Apr 26: Project Part 3,4: Implementation and Testing DUE Demonstrate working project in lab |
16 | May 1 (Wed 2pm): Project Presentations |