Schedule | CMSC 240 Software Systems Development - Fall 2024

Course Schedule of Topics and Due Dates

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