Schedule (Tentative!)
- Stuff listed in bold indicates a due date of some sort, attached to a grade item that will influence your final grade. See Assessment for more details.
Week 0: The Lost Week (September 7 – September 10)
Week 1: Introduction and Overview (September 11 – September 17)
Lecture:
- Monday: Welcome to Senior Design!
- Tuesday: Warmup Presentations
- Wednesday: No class due to scheduling conflicts.
Reading:
- Required: What is eXtreme Programming?
- Required: The Rules and Practices of Extreme Programming
- Optional: The Case Against Extreme Programming
Tasks:
- Wednesday: Introduce yourself on the course mailing list and post your resume (in ASCII or HTML or PDF format please); feel free to anonymize your address and phone if you prefer.
Week 2: XP Spike Project (September 18 – September 24)
Lecture:
- Monday: Introduction to eXtreme Programming (XP)
- Tuesday: More on XP: Pair Programming, Test-Driven Development
- Wednesday: No class due to scheduling conflicts.
Tasks:
- Wednesday: Pick your most favorite as well as your least favorite of the 13 XP practices and post them to the discussion list with a brief explanation.
Week 3: Projects Take Off! (September 25 – October 1)
Lecture:
- Monday: Spike Retrospective, Project Decisions
- Tuesday: More on XP: Mock Planning Game
- Wednesday: No class due to scheduling conflicts.
Tasks:
- Sometime this week you should have your first planning game meeting with your client. After the meeting you are in Iteration 1 of the project. Work hard! :-)
Week 4: Getting Things Done? (October 2 – October 8)
Lecture:
- Monday: First Meeting Redux, Planning the Course
- Tuesday: Discussion on They Write the Right Stuff
- Wednesday: No class due to scheduling conflicts.
Reading:
- Required: They Write the Right Stuff
- Optional: Good and Bad Procrastination
Tasks:
- Sometime this week you should have your second planning game meeting with your client. You should be able to demonstrate some working code in whatever early stage of development it is!
- Wednesday: Post at least three topics of interest to you to the course mailing list. These can be either topics I should cover or topics you want to cover in your presentation later in the semester. But post them you must. :-)
Week 5: Testing (October 9 – October 15)
Lecture:
- Monday: An Overview of Software Testing
- Tuesday: Quiz 1, Heuristics for Test Cases
- Wednesday: No class due to scheduling conflicts.
Tasks:
- Sometime this week you should have your third planning game meeting with your client.
Week 6: Presenting (October 16 – October 22)
Lecture:
- Monday: No class due to Fall Break
- Tuesday: Proposal Presentations
- Wednesday: No class due to scheduling conflicts.
Tasks:
- Sometime this week you should have your fourth planning game meeting with your client.
Week 7: Process This and That (October 23 – October 29)
Lecture:
- Monday: Review of Development Processes; Class Responsibility Collaboration (CRC) cards; Review of UML Class Diagrams
- Tuesday: Discussion on the Personal Software Process (PSP)
- Wednesday: No class due to scheduling conflicts.
Reading:
- Required: Watts S. Humphrey: The Personal Software Process, 2000.
- Optional: Watts S. Humphrey: The Team Software Process, 2000.
Tasks:
- Sometime this week you should have your fifth planning game meeting with your client.
- Wednesday: Email me three topics you would like to present in class; check out this list of topics; if you want to suggest a topic not on the list, make sure you include a short outline for the topic.
Week 8: Software Practice (October 30 – November 5)
Lecture:
- Monday: UML Design Exercise
- Tuesday: Discussion on Michael Jackson's Phenomenology Tour
- Wednesday: No class due to scheduling conflicts.
Reading:
- Required: Handout from Michael Jackson: Software Requirements and Specifications, ACM Press Books, 1995. Make sure you read Phenomena, Individuals, Identity, Existence, Is, The Narrow Bridge, Refutable Descriptions, Reification, Events and Intervals.
Tasks:
- Sometime this week you should have your sixth planning game meeting with your client.
Week 9: Ethics Part 1 (November 6 – November 12)
Lecture:
- Monday: Ethics Schmethics...
- Tuesday: Overview of Free Software and Open Source Licenses (Andrew Chung)
- Wednesday: No class due to scheduling conflicts.
Reading:
- Required: TBD
- Optional: TBD
Tasks:
- Sometime this week you should have your seventh planning game meeting with your client.
Week 10: Ethics Part 2 (November 13 – November 19)
Lecture:
- Monday: Quiz 2, Discussion on ACM Code of Ethics and Professional Conduct
- Tuesday: SCRUM (Terence Lee)
- Wednesday: No class due to scheduling conflicts.
Tasks:
- Sometime this week you should have your eighth planning game meeting with your client.
Week 11: Presentations (November 20 – November 26)
Lecture:
- Monday: Analysis Patterns (Glenn Gentzke)
- Tuesday: Progress Presentations
- Wednesday: No class due to scheduling conflicts.
Tasks:
- Sometime this week you should have your ninth planning game meeting with your client.
Week 12: TBD (November 27 – December 3)
Lecture:
- Monday: Discussion on Modeling Terrorists, especially Kathleen Carley's system.
- Tuesday: The Psychology of Computer Programming (Brian Suk)
- Wednesday: No class due to scheduling conflicts.
Tasks:
- Sometime this week you should have your tenth planning game meeting with your client.
Week 13: TBD (December 4 – December 10)
Lecture:
- Monday: Capability Maturity Model for Software (check this out for even more fun :-)
- Tuesday: Quiz 3, TBD
- Wednesday: No class due to scheduling conflicts.
Tasks:
- Sometime this week you should have your eleventh planning game meeting with your client.
Week 14: Wrapup (December 11)
Lecture:
- Monday: Final Presentations
Tasks:
- Sometime this week you should have your final planning game meeting with your client. You should expect to spend more time than usual as you will discuss the whole semester in retrospect.