Schedule | CMSC 240 Software Systems Development - Spring 2025

Course Schedule of Topics and Due Dates

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