Schedule | CMSC 240 Software Systems Development - Spring 2024

Course Schedule of Topics and Due Dates

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