CS 5150: Software Engineering (Spring 2026)


Schedule

Note

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

Date Lecture topic Materials Notes
Week 1
Jan 20 (Tue)
Lecture 1: Introduction

Syllabus, projects, context

Jan 22 (Thu)
Lecture 2: Projects and process

Stakeholders, risk, development methodologies

Week 2
Jan 27 (Tue)
Lecture 3: Requirements

Jan 29 (Thu)
Lecture 4: Models

  • Read Chapters 4/5 for more details: Software Engineering, Tenth Edition. By Ian Sommerville.
Week 3
Feb 3 (Tue)
Lecture 5: Planning, Architecture

Feb 5 (Thu)
Lecture 6: Architecture 2
Week 4
Feb 10 (Tue)
In-Class Activity: Requirements and Project Plan
Feb 12 (Thu)
Lecture 8: Virtualization, Program Design

Week 5
Feb 17 (Tue)
February break
Feb 19 (Thu)
Lecture 9: Design Patterns
Week 6
Feb 24 (Tue)
Lecture 10: Design Patterns 2 and Programming
Feb 26 (Thu)
Lecture 11: Version Control Systems
Week 7
Mar 3 (Tue)
Lecture 12: Version Control Systems 2, Presentations
Mar 5 (Thu)
In-Class Activity: AI Coding Tools
Week 8
Mar 10 (Tue)
In-class Exam 1 (Syllabus: Lecture 1 - Lecture 12)
Mar 12 (Thu)
In-class activity: Midpoint Presentation
Week 9
Mar 17 (Tue)
In-class activity: Midpoint Presentation
Mar 19 (Thu)
External Talk: Rajdeep Mukherjee (Tech Lead and Senior Applied Scientist at Amazon)
Talk Details
Week 10
Mar 24 (Tue)
Lecture 14
Mar 26 (Thu)
Lecture 15
Week 11
Mar 31 (Thu)
Spring break
Apr 2 (Tue)
Spring break
Week 12
Apr 7 (Thu)
Lecture 16
Apr 9 (Tue)
Lecture 17
Week 13
Apr 14 (Thu)
Lecture 18
Apr 16 (Tue)
In-class Exam 2
Week 14
Apr 21 (Tue)
Lecture 19

Apr 23 (Thu)
Lecture 20
Week 15
Apr 28 (Tue)
Lecture 21
Apr 30 (Thu)
In-class activity: Final Presentation
Week 16
May 5 (Tue)
Lecture 22

External Talk Details

Speaker: Dr. Rajdeep Mukherjee (Tech Lead and Senior Applied Scientist at Amazon)

Date: Mar 19, 2026

Title: Spec-Driven Development in the Age of Foundation Models and AI Agents

Abstract: In this lecture, I will introduce Spec-Driven Development (SDD) in the era of large foundation models and autonomous AI agents, arguing for re-centering the Software Development Life Cycle (SDLC) around specifications to improve alignment, reliability, and long-term maintainability. By placing structured, semi-formal specifications at the core of development, we can ensure higher fidelity between intent, implementation, and system behavior. I will use Kiro (https://kiro.dev/) as a concrete example to demonstrate how development begins with specifications that systematically guide code generation, validation, and evolution. We will explore how SDD supports both greenfield systems, by enforcing clarity and architectural rigor from inception, and brownfield systems, by extracting and leveraging specs from legacy codebases for feature development, bug fix, and modernization. I’ll discuss how coding agents grounded in specs can improve correctness, reduce hallucination, and enforce invariants, while also highlighting open challenges such as spec completeness, ambiguity, trust, and semantic alignment. Finally, we’ll discuss the need for offline benchmarks, high-quality {Code, Spec} datasets, and rigorous evaluation metrics, and conclude with a forward-looking perspective on how specifications may evolve into the primary artifact of software engineering, with code becoming a compiled byproduct of intent.

Bio: Dr. Rajdeep Mukherjee is a Tech Lead and Senior Applied Scientist at Amazon, leading developer tool products such as Amazon Q Developer, Kiro, and Amazon CodeGuru that power developer experiences both inside and outside Amazon. He earned his PhD in Computer Science from University of Oxford, specializing in formal methods and program analysis for system correctness. Prior to joining Amazon, Rajdeep worked in the Electronic Design Automation industry, where he built formal verification applications to ensure the correctness of safety critical systems. He has also held research roles at Arm, Microsoft Research, IBM Research, and Diffblue. His expertise spans coding agents, LLM applications, static analysis, program synthesis, and formal verification systems.

Rajdeep Mukherjee