Skip to content

Schedule

This schedule is subject to change with notice — check back periodically. Full syllabus policies are on the Syllabus page.

Date Day Topic Notes
Aug 27 Thu Course introduction and SE overview
Syllabus, schedule, project; The software engineering landscape; Software types
Slides: Course Introduction · Slides: Study Presentation ·
Sep 1 Tue Software properties, processes, and methodologies
Software properties; Brief CS/SE history; Adhoc, waterfall, iterative, and agile methodologies
Slides: Software Processes & Incremental Change
Reading: Brooks, "No Silver Bullet"
Sprint 0 begins
Sep 3 Thu Incremental software change
Incremental change process; Concept location and impact analysis
Slides: Software Processes & Incremental Change
Reading: Rajlich & Gosavi (2004), "Incremental Change in OOP"
Sep 4 Fri — Last day to add/drop
Sep 8 Tue Software lifespan and the staged model
Product and software lifespan; product economics; Traditional vs staged models
Slides: Software Processes & Incremental Change
Reading: Rajlich (2016), "Software Life Span Models"
Sep 10 Thu Introduction to agentic software engineering
AI-assisted SE workflows, tools, prompting; Context, memory, skills, harnesses, hooks; Benefits, limitations, risks; Specification and validation when using AI
Slides: Agentic Software Engineering
Reading: How Claude Code works
Reading: Claude Code best practices
Reading: Token saving strategies
Sep 15 Tue Team coordination
Roles, responsibilities, and communication ; Team structures.
Slides: Team Coordination & Project/Issue Management
Sep 17 Thu Project management
Work decomposition, estimation, and milestones; Sprint planning and tracking; Project management tools
Slides: Team Coordination & Project/Issue Management
Sprint 0 ends
Sep 22 Tue Sprint 0 Lightning Project Talks
Project summary: features, architecture, technologies; Team, repository, project onboarding/setup; Initial risks, challenges, and work plan
Sprint 1 begins
Sep 24 Thu Issue management
Issues, templates, labels; Bug reporting, triage, and assignment
Slides: Team Coordination & Project/Issue Management
Sep 29 Tue Requirements engineering
Functional and non-functional requirements; Elicitation, specification, and validation; AI-assisted requirements work
Slides: Requirements Engineering
Reading: Wynne (2015), "Introducing Example Mapping"
Reading: Sommerville (2016), "Requirements Engineering," Ch. 4
Oct 1 Thu Software architecture and design
Coupling, cohesion, and interfaces; Architectural styles; Design for change; Reading architecture from an existing codebase
Oct 6 Tue New-tech lightning showcase/demo 1
Tool/technology and SE problem addressed; Short demo or concrete example; Supported SE tasks; Benefits, limitations, and risks; Relevance to the team project
Oct 8 Thu — Fall break (no class); Sprint 1 ends
Oct 13 Tue Software testing 1: foundations
Test levels and test types; Oracles and limitations; Test quality; Coverage and prioritization
Sprint 2 begins
Oct 15 Thu Software testing 2: test design techniques
Black-box and white-box testing; Equivalence classes and boundary values; Test doubles; Fuzzing
Oct 20 Tue Sprints 1-2 Lightning project talks
Progress and evidence; Technical decisions; Obstacles and course-practice connections; Revised plan
Oct 22 Thu Verification, validation, and analysis tools
Code review practices; Static analysis, linting, verification; Dynamic analysis; AI-assisted review/testing limits
Oct 26 Mon — Last day to withdraw
Oct 27 Tue Documentation, code understanding, and refactoring
Knowledge management inside projects; Code understanding/documentation practices; Code smells and refactoring
Oct 29 Thu Debugging, maintenance, and evolution
Debugging techniques; Software maintenance/evolution; Technical debt and software decay; Connecting fixes to incremental change
Sprint 2 ends
Nov 3 Tue — Election day (no class); Sprint 3 begins
Nov 5 Thu New-tech lightning showcase/demo 2
Tool/technology and SE problem addressed; Short demo or concrete example; Supported SE tasks; Benefits, limitations, and risks; Relevance to the team project
Nov 10 Tue Software quality assurance management
Quality attributes and metrics; Tools, teams, and environments; Quality monitoring
Nov 12 Thu Other topics wrap-up: security, licensing, ethics
Security as SE responsibility; Licensing and open-source obligations; Ethics: SE and AI-assisted development
Nov 17 Tue TA-led in-class working session
Finish outstanding S3 work; Draft S3 sprint report (gather evidence: tests, closed issues, demo material)
Nov 19 Thu TA-led in-class working session
Improve/finalize S3 sprint report; General project support
Sprint 3 ends
Nov 24 Tue No class (instructor away)
Recommended out-of-class work: S4 planning, scope freeze, final presentation outline
Sprint 4/Final begins
Nov 26 Thu — Thanksgiving break (no class)
Dec 1 Tue Final project presentation: Sprints 3 - 4, part 1
Project outcome and main contributions; Demo of final functionality or technical result; Key design, process, and quality decisions; Evidence: tests, reviews, issues, CI, documentation, etc.; Reflection on AI-assisted development; Lessons learned and future work
Dec 3 Thu Final project presentation: Sprints 3 - 4, part 2
Dec 4 Fri — Last day of classes
Dec 9 Wed — Final exam, 9:00 AM–12:00 PM
Dec 15 Tue — Project due, end of day; Sprint 4/Final ends