Schedule | CMSC 240 Software Systems Development - Fall 2024

Course Schedule of Topics and Due Dates

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