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

Calendar

Deliverables marked Project should be delivered by the team. Deliverables marked Homework should be completed individually.

Introduction

Sept. 24 (lab)
Git, OOP refresher
Sept. 25
Introduction and motivation: software project failures
Homework Team matching survey
Sept. 25 (discussion)
Office hours

Event-Driven Systems and Requirements

Sept. 28
Requirements 1
Homework Reading: Requirements engineering for software and systems, chapter 1. Reading response.

Teams will be announced.

Sept. 30
Requirements 2
Homework Reading: TypeScript for Java/C# Programmers. Reading response
Oct. 1 (lab)
TypeScript
Oct. 2 (discussion)
Office hours
Oct. 2
Design: prototyping
Video and reading response

Requirements, Testing, and Design

Oct. 5
Peer feedback on vision document (hosted by a TA; instructor at SPLASH)
Project Vision
Oct. 7
Testing
Homework Reading: How SQLite is Tested

Reading response

Oct. 8 (lab)
Advanced version control: branching, release strategies, merging, conflicts, bisect. Git actions, CI.
Oct. 9 (discussion)
Office hours
Oct. 9
Process

Week 03

Oct. 12
Designing interactive systems
Project Requirements and design document
Code from class
Oct. 14
Event-driven systems: MVC.
Code from class
Oct. 15 (lab)
Event-driven systems. MVC. Konva.
Oct. 16 (REQUIRED discussion)
Scrum practicum
If you have them, bring lightweight art supplies: colored pencils, markers, paper. You do not need to buy anything for this.
Oct. 16
Code quality: low-level choices and OOP

Design

Oct. 19
Design patterns
Project Requirements document (nonfunctional requirements). Architectural design document. Populate backlog. Sprint 1 starts after class!
Oct. 21
Code review
Optional reading: Alberto Bacchelli and Christian Bird. Expectations, Outcomes, and Challenges of Modern Code Review.
Oct. 23 (lab)
Advanced Konva
Oct. 23 (discussion)
Office hours (exam review)
Oct. 23
Midterm exam

Debugging, security, and design

Oct. 26
Risk
Oct. 28
Debugging
Oct. 30 (lab)
Debugging
Oct. 30 (discussion)
Office hours
Oct. 30
Design: evaluation (heuristics)

Risk and teams

Nov. 2
Process reflection (activity)
Project Sprint 1 ends
Nov. 4
Security
Nov. 6 (lab)
None
Nov. 7 (discussion)
Office hours
Nov. 7
Usability studies

Ethics and usability evaluation

Nov. 9
Teamwork
Nov. 11
Ethics
Nov. 12 (lab)
None
Nov. 13
TBD

Practical Software Engineering

Nov. 16
Internationalization (i18n), localization (l10n), and accessability (a11y)
Project Sprint 2 ends
Nov. 18
Program analysis 1
Worksheet from class
Nov. 19 (lab)
No lab
Nov. 20 (discussion)
none
Nov. 21
Program analysis 2

Practical Software Engineering

Nov. 23
Privacy
Nov. 25
Intellectual property: copyright, licensing, and patents
Project Sprint 3 ends
Nov. 26 (lab)
No lab
Nov. 27 (discussion)
none
Nov. 27
Thanksgiving break (no class)

Demos

Nov. 30
What makes a great software engineer? Interviewing and hiring
Optional reading: What makes a great software engineer?
Dec. 2
Exam review: you bring the questions!
Dec. 3 (lab)
None
Dec. 4 (discussion)
Office hours
Dec. 4
Project showcase
Homework Individual Reflection

Project Final demo video