Calendar
Deliverables marked Project should be delivered by the team. Deliverables marked Homework or Reading should be completed individually.
Deliverables are listed on the days on which they are due except as noted.
Introduction and Rust
- January 6
- Introduction and motivation: software project failures
Reading Start reading “The Soul of a New Machine” by Tracy Kidder
- January 8
- Requirements
Reading Requirements engineering for software and systems, chapter 1; Reading response
- January 10
- Requirements elicitation activity
Reading Interviews and focus groups (Chapter 8 of Research Methods in Human-Computer Interaction)
Homework Interview questions
Code Review
- January 13
- Software Process
Project Team matching survey
Reading The Power of Prototyping (video)
Reading A Spiral Model of Software Development (also available in the Files section of Canvas)
- January 15
- Prototyping. Team assignments announced.
Reading Preece, Jenny, and Yvonne Rogers. Interaction Design : Beyond Human-Computer Interaction. Chapter 11 only.
- January 17
- Testing
Reading How SQLite Is Tested
Reading An empirical study of the reliability of UNIX utilities
Reading (optional) Property-Based Testing in Practice
Requirements
- January 20
- No class MLK Day
- January 22
- Elevator pitches (in-class activity)
Project Elevator pitch
- January 24
Process
- January 27
- Architecture 2
Reading Software Architecture in Practice, chapters 3 and 8 only (David Garlan and Mary Shaw)
Homework Property-based testing
- January 29
- January 31
- Usability studies
Reading Chapter 10, Research Methods in Human-Computer Interaction, 2nd Edition: Usability testing
Architecture
- February 3
- Agile practicum
Reading Agile Manifesto
Reading (tentative) Ch. 2 of INCOSE Systems Engineering Handbook
- February 5
- Midterm exam
- February 7
- Security
Project Architecture diagrams
Design, Testing, and Security
- February 10
- Code quality: OOP
- February 12
- Design patterns
Reading Design Patterns
Project Sprint 1
- February 14
- Code Review
Reading (optional) Expectations, outcomes, and challenges of modern code review
Debugging and Teamwork
Practical Software Engineering
- February 23
- Report due
- February 24
- Internationalization (i18n), localization (l10n), and accessability (a11y)
- February 26
- Teamwork
Project Sprint 3
- February 28
- Privacy
Optional video: The Definition of Differential Privacy
Homework Usability study
Practical Software Engineering
- March 2
- Report due
- March 3
- Discussion: Soul of a New Machine
Homework Soul of a New Machine response
- March 5
- March 7
- Program Analysis
:
Demos
- March 9
- Report due
- March 10
- Intellectual property: copyright, licensing, and patents
- March 12
- Exam review (bring questions)
- March 14
- Midterm 2
Homework Individual Reflections