Calendar
Deliverables marked Project should be delivered by the team. Deliverables marked Homework or Reading should be completed individually.
Introduction and Rust
- January 8
- Introduction and motivation: software project failures
- Reading Start reading “The Soul of a New Machine” by Tracy Kidder
- January 10
- January 12
Code Review
- January 15
- No class MLK Day
- January 17
- Rust 3: interior mutability
- Homework Rust assignment released
Homework Team matching survey
- January 19
- Requirements elicitation
Team assignments announced
Optional reading: Interviews and focus groups (Chapter 8 of Research Methods in Human-Computer Interaction)
Optional reading: Requirements engineering for software and systems, chapter 3
Requirements
- January 22
- Activity Requirements elicitation, part 1
- Project Requirements interview questions
- January 24
- Code Review
- Homework Rust assignment implementation due
Optional reading: Alberto Bacchelli and Christian Bird. Expectations, Outcomes, and Challenges of Modern Code Review.
- January 26
- Activity Requirements elicitation, part 2
Process
- January 29
- Human-Computer Interaction 2
- Homework Rust assignment code review
- January 31
- February 2
Architecture
- February 5
- Architecture 1
- Homework HCI (heuristic evaluation)
Optional reading: On the criteria to be used in decomposing systems into modules (Parnas)
- February 7
- Architecture 2
- Optional reading: An Introduction to Software Architecture (David Garlan and Mary Shaw)
- February 9
- Architecture 3 (see second half of slide deck)
- Project Design mockup and requirements document
Project Individual team collaboration report
Reading “The Soul of a New Machine” reading response due
Design, Testing, and Security
- February 12
- February 14
- February 16
- Security
- Project Sprint 1
Project Individual team collaboration report
Project Security assignment out
Debugging and Teamwork
- February 19
- No class (Presidents’ Day)
- February 21
- Debugging Large Systems
- February 23
- Teamwork
- Project Sprint 2
Project Individual team collaboration report
Project Security assignment due
Practical Software Engineering
- February 26
- February 28
- March 1
- Microservices (slide credit: Michael Hilton)
- Project Sprint 3
Project Individual team collaboration report
Homework Architecture
Practical Software Engineering
- March 4
- March 6
- March 8
- Program Analysis
- Project Sprint 4
Demos
- March 11
- Privacy
- Optional video: The Definition of Differential Privacy
- March 13
- Demos
- March 15
- Demos
- Homework Individual Reflections