Schedule
Note
This is a tentative schedule. It will be updated as the course progresses.
Date | Lecture topic | Materials | Assignments | ||
---|---|---|---|---|---|
Jan 21 (Tue) |
Lecture 1: IntroductionSyllabus, projects, context |
|
|||
Jan 23 (Thu) |
Lecture 2: Projects and processStakeholders, risk, development methodologies |
|
|||
Jan 28 (Tue) |
Lecture 3: TeamsTeam roles, developer strengths and growth, meetings, collaboration tools |
|
|||
Jan 30 (Thu) |
Lecture 4: PlanningFeasibility, scheduling |
|
|||
Feb 3 (Mon) |
Project Team Formation Deadline.
Please register team here.
|
||||
Feb 4 (Tue) |
Lecture 5: RequirementsV&V, documentation, traceability |
|
|||
Feb 6 (Thu) |
Lecture 6: Models |
|
|||
Feb 11 (Tue) |
Lecture 7: ArchitectureMotivation, Architecture Styles: Pipe and Filter, Client/Server |
||||
Feb 11 (Fri) |
Project plan
due (11:59 PM EST)
|
||||
Feb 13 (Thu) |
Lecture 8: Architecture 2More architecture styles, mvc, microservices, serverless, deployment, virtualization |
|
|||
Feb 18 (Tue) |
February break
|
||||
Feb 20 (Thu) |
Lecture 9: Program Design |
||||
Feb 25 (Tue) |
Lecture 10: Design Patterns |
|
|||
Feb 27 (Thu) |
Lecture 11: Version Control |
|
|||
NA |
Report #2 due
(11:59 PM EST)
|
||||
Mar 4 (Tue) |
Lecture 12: Code Reviews |
|
|||
Mar 6 (Thu) |
Lecture 13: Presentations, User Experience |
||||
Mar 11 (Tue) |
Lecture 14: User Testing |
||||
Mar 13 (Thu) |
Lecture 15 |
|
|
||
Mar 18 (Tue) |
Lecture 16 |
|
|
||
Mar 20 (Thu) |
Lecture 17 |
|
|
||
Mar 25 (Tue) | |||||
Mar 25 (Tue) |
Lecture 18 |
|
|
||
Mar 27 (Thu) |
|
|
|
||
Apr 1 (Tue) |
Spring break
|
||||
Apr 3 (Thu) |
Spring break
|
||||
Apr 8 (Tue) |
Lecture 19 |
|
|||
Apr 10 (Thu) |
Lecture 20 |
|
|
||
NA |
Report #4 due
(11:59 PM EST)
|
||||
Apr 15 (Tue) |
Lecture 21 |
|
|
||
Apr 17 (Thu) |
Lecture 22 |
|
|||
Apr 22 (Tue) |
Lecture 23 |
|
|
||
Apr 24 (Thu) |
Lecture 24 |
|
|
||
Apr 29 (Tue) |
Lecture 25 |
|
|
||
May 1 (Thu) |
|
||||
May 6 (Tue) |
Lecture 26 |
|
|
||
NA |
Final report
due (11:59 PM EST)
|
Reading assignments
Lecture 1
Read about the Federal Aviation Administration’s Advanced Automation System project. Think about what aspects of the software development process led to it being a runaway failure.
- Federal Aviation Administration (FAA) Advanced Automation System (AAS). Guide to the Systems Engineering Body of Knowledge.
- The Ugly History of Tool Development at the FAA. Edward Cone. Baseline. 2002-04-09.
- [optional] Why (Some) Large Computer Projects Fail. Robert N. Britcher. Software Runaways. 1998.
Follow-up questions
- Identify the developer, client, customer, and user for this project.
- Which process steps were handled poorly for this project?
- Which of the general methodologies discussed in lecture most closely matches that used by this project? Was it an appropriate choice?
Lecture 2
Read Software Engineering at Google, Chapter 2: How to Work Well on Teams.