CS 5150: Software Engineering (Spring 2025)


Schedule

Note

This is a tentative schedule. It will be updated as the course progresses.

Date Lecture topic Materials Assignments
Jan 21 (Tue)
Lecture 1: Introduction

Syllabus, projects, context

Jan 23 (Thu)
Lecture 2: Projects and process

Stakeholders, risk, development methodologies

Jan 28 (Tue)
Lecture 3: Teams

Team roles, developer strengths and growth, meetings, collaboration tools

  • Continue forming teams around projects
Jan 30 (Thu)
Lecture 4: Planning

Feasibility, scheduling

  • Finish forming teams around projects
  • Meet with clients
  • Start defining project plan
Feb 3 (Mon)
Project Team Formation Deadline. Please register team here.
Feb 4 (Tue)
Lecture 5: Requirements

V&V, documentation, traceability

Feb 6 (Thu)
Lecture 6: Models
Feb 11 (Tue)
Lecture 7: Architecture

Motivation, Architecture Styles: Pipe and Filter, Client/Server

Feb 11 (Fri)
Project plan due (11:59 PM EST)
Feb 13 (Thu)
Lecture 8: Architecture 2

More architecture styles, mvc, microservices, serverless, deployment, virtualization

Feb 18 (Tue)
February break
Feb 20 (Thu)
Lecture 9: Program Design
Feb 25 (Tue)
Lecture 10: Design Patterns
Feb 27 (Thu)
Lecture 11: Version Control
NA
Report #2 due (11:59 PM EST)
Mar 4 (Tue)
Lecture 12: Code Reviews
Mar 6 (Thu)
Lecture 13: Presentations, User Experience
Mar 11 (Tue)
Lecture 14: User Testing
Mar 13 (Thu)
Lecture 15
Mar 18 (Tue)
Lecture 16
Mar 20 (Thu)
Lecture 17
Mar 25 (Tue)
Report #3 due (11:59 PM EST)
Last day for midpoint presentation
Mar 25 (Tue)
Lecture 18
Mar 27 (Thu)
In-Class Exam 1
Apr 1 (Tue)
Spring break
Apr 3 (Thu)
Spring break
Apr 8 (Tue)
Lecture 19
Apr 10 (Thu)
Lecture 20
NA
Report #4 due (11:59 PM EST)
Apr 15 (Tue)
Lecture 21
Apr 17 (Thu)
Lecture 22

Apr 22 (Tue)
Lecture 23
Apr 24 (Thu)
Lecture 24
Apr 29 (Tue)
Lecture 25
May 1 (Thu)
In-Class Exam 2
May 6 (Tue)
Lecture 26
NA
Final report due (11:59 PM EST)

Reading assignments

Lecture 1

Read about the Federal Aviation Administration’s Advanced Automation System project. Think about what aspects of the software development process led to it being a runaway failure.

  1. Federal Aviation Administration (FAA) Advanced Automation System (AAS). Guide to the Systems Engineering Body of Knowledge.
  2. The Ugly History of Tool Development at the FAA. Edward Cone. Baseline. 2002-04-09.
  3. [optional] Why (Some) Large Computer Projects Fail. Robert N. Britcher. Software Runaways. 1998.

Follow-up questions

  1. Identify the developer, client, customer, and user for this project.
  2. Which process steps were handled poorly for this project?
  3. Which of the general methodologies discussed in lecture most closely matches that used by this project? Was it an appropriate choice?

Lecture 2

Read Software Engineering at Google, Chapter 2: How to Work Well on Teams.