Foundations of Software Engineering

"Be careful taking shortcuts!" -- Your Instructor

Schedule/Road Map


The following is our tentative syllabus for the course, some changes should be expected throughout the semester. I will announce in class or through e-mail any major changes.

  • To get all of the assignments/activities for the course, you must first click the following link: CS 5500 Monorepo Do not do a 'git pull' until class starts (Occasionally I make changes/spelling corrections)
Week
Date
Lecture and Readings Assignments Note(s)
1 Tues. Jan. 7, 2020
  • Lecture outline
    • Course Introduction
    • The C++ Language
      • Why C++ for this Course?
      • The advantage of C++
      • The disadvantage of C++
      • How to Learn C++
    • Git Repository
    • Begin Module!
- A0 Out - C++
First week of classes, welcome back!
2 Tues. Jan. 14, 2020
  • Lecture outline
    • Software Development Life Cycle
    • Waterfall and Agile
    • Introduction to APIs
    • Begin Module!
- Lab 1 Due at start of class
- A1 Out -- C++ on 1/17
-- --
3 Tues. Jan. 21, 2020
  • Lecture outline
    • Object Oriented Programming
      • Inheritance vs Composition
      • Decoupling
    • Unified Modeling Language (UML)
    • Design Patterns
        Creational Design Patterns
      • Factory
      • Singleton
      • Prototype
    • Begin Module!
- Lab 2 due at start of class
- A1 Due -- 1/24 at 11:59pm EST
-- --
4 Tues. Jan. 28, 2020
  • Lecture outline
    • Structural Design Patterns
    • Behavioral Design Patterns
    • Begin Module!
- Lab 3 due at start of class
- A2 Out -- Design Pattern on 1/31/20
-- --
5 Tues. Feb. 4, 2020 Mike Out sick - A2 due 2/10 at 11:59EST
-- --
6 Tues. Feb. 11, 2020
  • Lecture outline
    • Testing in C++
    • Writing a Good Test
    • Structural Testing
      • "Black Box Testing"
    • Functional Testing
      • "White Box Testing"
    • Begin Module!
- Lab 4 due at start of class
-- --
7 Tues. Feb. 18, 2020
  • Lecture outline
    • Program Analysis
      • Static Analysis
      • Dynamic Analysis
    • Code Refactoring
      • cppcheck
      • clang-tidy
    • Project Overview
    • Begin Module!
- Lab 5 due at start of class
- A3 Out on 2/26
- Project Teams Posted
-- --
8 Tues. Feb. 25, 2020
  • Lecture outline
    • Exam
- Study Guide
- Lab 6 due at start of class
- A3 due 3/12 at 11:59 EST
- Final Project Repository (click here to create)
-- --
9 Tues. March. 3, 2020 ------ (No Class -- Spring Break) ------
-- --
-- --
10 Tues. March 10, 2020
-- --
-- --
11 Tues. Mar. 17, 2020
  • Lecture outline
    • Cancelled due to University Announcement
-- --
-- --
12 Tues. March 24, 2020
Lab 7 due before class.

-A4 Out -- Networking on 3/25
Milestone check-in with your Project Manager
13 Tues. March 31, 2020
Lab 8 due before class.

A4 due on 4/11 at 11:59pm EST
-- --
14 Tues. April 7, 2020
  • Lecture outline
    • Review Final Project Specs
    • Code Review on Networking
    • Begin Module!
Lab 9 due before class.

(First check in with your Project Manager, start adding your final feature to the final project)
-- --
15 Tues. April 14, 2020
  • Lecture outline
Final Project due April 18


All other in-class activities (in-class 8 and beyond) also due April 18)
-- --