| Lecture 1 | March 28 | Overview | Anderson | PPT | |||
| Lecture 2 | March 30 | Software Life Cycle | Anderson | PPT | Slides with Ink | ||
| Section 1 | March 31 | The Fate of Software Projects; Desirable Qualities in Teammates | Razmov | PPT | Slides with Ink | ||
| Lecture 3 | April 1 | Success Criteria | Anderson | PPT | Slides with Ink | ||
| Lecture 4 | April 4 | Software Teams | Anderson | PPT | Slides with Ink | ||
| Lecture 5 | April 6 | Requirements and Design | Notkin | PPT | |||
| Section 2 | April 7 | Techniques for Gathering Requirements | Razmov | PPT | Slides with Ink | ||
| Lecture 6 | April 8 | Best Practices of Software System Design (Part I) | Razmov | PPT | Slides with Ink | ||
| Lecture 7 | April 11 | Motivation | Anderson | PPT | Slides with Ink | ||
| Lecture 8 | April 13 | Is Software Different? | Anderson/Notkin | PPT | Slides with Ink | ||
| Section 3 | April 14 | Best Practices of Software System Design (Part II) | Razmov | PPT | Slides with Ink | ||
| Lecture 9 | April 15 | Risk Analysis | Anderson | PPT | |||
| Milestone 1 | April 18 | Preliminary Design Presentations | Teams A and E | ||||
| Lecture 11 | April 20 | Software Requirements Redux | Notkin | PPT | |||
| Section 4 | April 21 | Prototyping; Common Mistakes to Avoid | Razmov | PPT | Slides with Ink | ||
| Lecture 12 | April 22 | Design of Everyday Things | Anderson | PPT | Slides with Ink | ||
| Lecture 13 | April 25 | Designing for Users | Anderson | PPT | |||
| Lecture 14 | April 27 | Safety and Security Requirements | Anderson | PPT | |||
| Section 5 | April 28 | Prioritization; Testing | Razmov | PPT | Slides with Ink | ||
| Lecture 15 | April 29 | Design for Change (Part I) | Notkin | PPT | Slides with Ink | ||
| Lecture 16 | May 02 | Usability @ Microsoft | Paul Elrif (guest) | PPT | |||
| Lecture 17 | May 04 | Design for Change (Part II) - Information Hiding | Notkin | PPT | |||
| Section 6 | May 05 | Testing in the Lifecycle; Influence Diagrams; Mistakes to Avoid | Razmov | PPT | Slides with Ink | ||
| Lecture 18 | May 06 | Design for Change (Part III) - Families of Software Systems | Notkin | PPT | |||
| Milestone 2 | May 09 | Preliminary Release Presentations | Teams B, C, and D | ||||
| Lecture 20 | May 11 | Personality Types | Razmov | PPT | Slides with Ink | ||
| Section 7 | May 12 | Test Planning; Feedback on Presentations/Demos; (Mis)communication Issues |
Razmov | PPT | Slides with Ink | ||
| Lecture 21 | May 13 | Quality Assurance | Anderson | PPT | |||
| Lecture 22 | May 16 | QA and Testing | Anderson | PPT | |||
| Lecture 23 | May 18 | Test Development and Execution | Anderson | PPT | |||
| Section 8 | May 19 | Dealing with Difficult Team Members; Test Planning; The Joel Test - 12 Steps to Better Code; Anticipating Changes |
Razmov | PPT | Slides with Ink | ||
| Lecture 24 | May 20 | A Bug's Life | Anderson | PPT | |||
| Milestone 3 | May 20 | Test Plans | All teams | ||||
| Lecture 25 | May 23 | Refactoring | Razmov | PPT | Slides with Ink | ||
| Lecture 26 | May 25 | Robust Programming | Anderson | PPT | Slides with Ink | ||
| Section 9 | May 26 | Final Release Deliverables; Anticipating Change and Redesigning; When Is a Product 'Good Enough' |
Razmov | PPT | Slides with Ink | ||
| Lecture 27 | May 27 | Course Retrospective | Anderson | PPT | |||
| Milestone 4 (last) | June 01 | Final Release + Final Presentations/Demos | Teams E, D, and C | ||||
| Section 10 | June 02 | 'Good Enough' Products; Mastery - the Keys to Success; The Future of Software Engineering and You |
Razmov | PPT | Slides with Ink | ||
| Milestone 4 (last), cont. | June 03 | Final Presentations/Demos | Teams B and A | ||||