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 14
- Design patterns 1
Project Sprint 1
- February 16
- Design patterns 2
Project Individual team collaboration report
Debugging and Teamwork
- February 17
- No class (Presidents’ Day)
- February 19
- Ethics
Project Sprint 2
- February 21
- Risk
Project Individual team collaboration report
Practical Software Engineering
- February 24
- Internationalization (i18n), localization (l10n), and accessability (a11y)
Homework Usability study
- February 26
- Teamwork
Project Sprint 3
- February 28
- Privacy
Optional video: The Definition of Differential Privacy
Practical Software Engineering
- March 3
- Discussion: Soul of a New Machine
Homework Soul of a New Machine response
- March 5
- What makes a great software engineer? Interviewing and hiring
Reading What makes a great software engineer?
Project Sprint 4
- March 7
- Program Analysis
Demos
- March 10
- Intellectual property: copyright, licensing, and patents
- March 12
- TBD
- March 14
- Midterm 2
Homework Individual Reflections