Skip to main content Link Search Menu Expand Document (external link)

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
Rust 1: ownership
January 12
Rust 2: structs/enums, Box, traits

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
Human-Computer Interaction 1
Project Individual team collaboration report

Process

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
Object-oriented design
February 14
Testing
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
Ethics
February 28
Internationalization (i18n), localization (l10n), and accessability (a11y)
March 1
Microservices (slide credit: Michael Hilton)
Project Sprint 3

Project Individual team collaboration report

Homework Architecture

Practical Software Engineering

Demos

March 11
Privacy
Optional video: The Definition of Differential Privacy
March 13
Demos
March 15
Demos
Homework Individual Reflections