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 | August 26: Read Text: Chapter 2 Read Unix Tutorial: Intro, T1, T2, T3 Slides: Introduction |
August 28: Slides: C++ Basics Module 1: Hello C++ (Due Thu Sept 5) Read Unix Tutorial: T4, T5, T6 |
August 29: Lab 1: Linux Basics (Due Thr Sept 5) |
2 | Sept 3: Read Text: Chapter 3 Slides: Strings and Functions Module 2: Functions, Strings, and Command-Line Arguments (Due Tue Sept 10) |
Sept 5: Slides: Collections and File I/O Module 3: Arrays, Vectors, and File I/O (Due Thr Sept 12) |
Sept 6: Lab 2: File I/O (Due Thr Sept 12) |
3 | Sept 10: Read Text: Chapter 17 Slides: Pointers and Memory |
Sept 12: Slides: References and Heap |
Sept 13: Lab 3: Pointers and References (Due Thr Sept 19) |
4 | Sept 17: Read Text: Chapter 5 Slides: Debugging Quiz Review |
Sept. 19: Slides: Errors and Exception Handling Quiz 1 |
Sept. 20: Lab 4: Debugging and Exception Handling (Due Thr Sept. 26) |
5 | Sept 24: Read Text: Chapter 9 Slides: Classes and OOP Module 4: Classes - Abstraction and Encapsulation (Due Tue Oct 1) |
Sept 26: Slides: Enum, Static, Overloading Module 5: Classes - Enum, Static, Overloading (Due Thr Oct 3) |
Sept 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 Tues Oct 8) |
Oct. 3: Slides: Inheritance, Polymorphism, Virtual Functions, Abstract Classes Live Code |
Oct 4: Lab 6: Inheritance and Polymorphism (Due 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 Nov. 7) |
10 | Oct. 29: Lecture Notes: What is an API Slides: Serialization in C++ Module 9: Serialization (Due Thr Oct. 31) |
Oct. 31: Slides: Building a REST API in C++ Module 11: REST APIs (Due Tue Nov. 5) |
Nov. 1: Lab 10 Git and GitHub (Due Thr Nov. 7) |
11 | Nov. 5: Project Description and Grading Rubric Quiz Review |
Nov. 7: Quiz 3 Module 12: REST APIs Part 2 (Due Thr Nov. 14) |
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 |
13 | Nov. 19: Slides: Build Pipelines Lecture Notes: Unit Testing Module 15: Build Pipelines (Due Tue Nov. 26) |
Nov. 21: Slides: Copy and Move Semantics Module 16: Copy and Move Semantics (Due Tue Dec. 3) Project Example: Music Store Guide to Markdown Project Presentation Guidelines |
Nov. 22: Work on Project |
14 | Nov. 26: | Nov. 28: Thanksgiving Break | Nov. 29: Thanksgiving Break |
15 | Dec. 3: Slides: Software Development Life Cycle Quiz Review |
Dec. 5: Slides: Design Patterns Quiz 4 |
Dec. 6: Project Part 3,4: Implementation and Testing DUE |
16 | Dec. 9 (Mon 2pm): Project Presentations |