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 1: Introduction and Overview (September 10 – September 16)
Lecture:
- Monday: Welcome to Senior Design! Overview of eXtreme Programming (XP)
- Tuesday: Warmup Presentations, Feedback and Presentation Basics
- Wednesday: More on XP: The Planning Game
Reading:
- Required: What is eXtreme Programming?
- Required: The Rules and Practices of Extreme Programming
- Recommended: The Case Against Extreme Programming
Tasks:
- Monday: Grab the Spike project description and get started on it. (We decided the teams for this in class! Team 1: Ayse, Eric, Joel; Team 2: Ben, Rod, Ryan)
- Wednesday: Introduce yourself on the course mailing list.
Week 2: Decision Time! (September 17 – September 23)
Lecture:
- Monday: Spike Retrospective, Project Discussions
- Tuesday: Project Decisions, Team Formation, Scheduling
- Wednesday: No class! Relax and forget the horrors of the Spike project... :-)
Tasks:
- Monday: Turn in the result of your Spike project (before lecture).
- Monday: Post your resume (in ASCII or HTML or PDF format please) to the discussion list; feel free to anonymize your address and phone if you prefer; if your document is too big, post a link instead or email it to Peter so he can post it for you.
- Monday: Post the your schedule (any regular prior committments that can't be moved anymore, etc.) to the discussion list. Anything that is not currently taken is "up for grabs" as far as team meetings are concerned. Focus on Monday – Friday, 9:00 am – 9:00 pm.
- 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 3: Getting Things Done? (September 24 – September 30)
Lecture:
- Monday: First Meeting Redux, Planning the Course
- Tuesday: Discussion on Fast Company's They Write the Right Stuff
- Wednesday: Discussion on Fred Brooks' No Silver Bullet
Reading:
- Required: They Write the Right Stuff
- Required: No Silver Bullet
- Recommended: Good and Bad Procrastination
Tasks:
- Thursday: 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. :-) Oh, and of course they should be related to software development!
- 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!
Week 4: Development Processes (October 1 – October 7)
Lecture:
- Monday: XP Standup Meeting; Client Meeting Redux; Software Engineering: Process vs. Product; Review of Development Processes (linear vs. cyclic, all-at-once vs. incremental)
- Tuesday: Discussion on Watts Humphrey's Personal Software Process (PSP)
- Wednesday: Discussion on The Rational Unified Process (RUP)
Reading:
- Required: Watts S. Humphrey: The Personal Software Process, 2000.
- Required: Scott W. Ambler: A Manager's Introduction to The Rational Unified Process (RUP), 2005.
- Recommended: Watts S. Humphrey: The Team Software Process, 2000.
- Recommended: Rational Software: Rational Unified Process: Best Practices for Software Development Teams, 1998.
- Optional: Daily Stand Up Meeting; Stand-Up Meetings Suck; Stand-Up Meeting Antipatterns
Tasks:
- Sometime this week you should have your third planning game meeting with your client.
Week 5: Presenting Presenting (October 8 – October 14)
Lecture:
- Monday: Client Meeting Redux; Random Hints on Presentations
- Tuesday: No class! Use the time to prepare your presentation!
- Wednesday: Proposal Presentations
Reading:
- Recommended: Ten Presentation Do's and Taboos (really concise summary)
- Recommended: Mark Hill's Oral Presentation Advice (including how to give a bad talk :-)
Tasks:
- Friday: Submit the first peer review of your project team, including yourself!
- Sometime this week you should have your fourth planning game meeting with your client.
Week 6: The Odd Week (October 15 – October 21)
Lecture:
- Monday: No Class! Fall Break Day!
- Tuesday: Client Meeting Redux; The Very Basics of copyrights, patents, as well as GPL and BSD licenses
- Wednesday: Exam 1; Object-Oriented Design with CRC (Classes, Responsibilities, Collaborators) Cards
Reading:
- Required: Kent Beck, Ward Cunningham: A Laboratory For Teaching Object-Oriented Thinking, OOPSLA, 1989.
- Recommended: GNU General Public License, BSD Licenses; CRC Cards in XP, HotDraw Case Study, University Case Study
Tasks:
- Sometime this week you should have your fifth planning game meeting with your client.
Week 7: Ethics Schmethics (October 22 – October 28)
Lecture:
- Monday: Client Meeting Redux; Engineering Ethics Round I
- Tuesday: Discussion on ACM Code of Ethics and Professional Conduct; Engineering Ethics Round II
- Wednesday: Discussion on United States Space Command Vision for 2020; Engineering Ethics Round III
Reading:
- Required: ACM Code of Ethics and Professional Conduct; United States Space Command Vision for 2020
- Recommended: An Overview of Engineering Ethics; Computer Professionals for Social Responsibility; IEEE Spectrum article on Modeling Terrorists
Tasks:
- Wednesday: Check out the topics for lecture presentations and email you 3 favorite topics to Peter in order of preference; if you're suggesting a new topic, include a 3-5 sentence description for it: what do you intend to cover and how?
- Sometime this week you should have your sixth planning game meeting with your client.
Week 8: People Issues (October 29 – November 4)
Lecture:
- Monday: Client Meeting Redux, TBD
- Tuesday: No class! Interview with Angela Roberts cancelled...
- Wednesday: Discussion on DeMarco's and Lister's Peopleware
Reading:
- Required: A brief excerpt from DeMarco's and Lister's timeless classic Peopleware
Tasks:
- Friday: Email me three possible dates for your lecture presentation in order of preference. Darn it, we have to make these concrete otherwise they'll never happen! :-/
- Sometime this week you should have your seventh planning game meeting with your client.
Week 9: Fame and Fortune :-) (November 5 – November 11)
Lecture:
- Monday: Client Meeting Redux, Discussion about Engineering Magazine Article
- Tuesday: Interview with Angela Roberts!
- Wednesday: Exam 2; Interview Redux, Hiring and Firing
Tasks:
- Sometime this week you should have your eighth planning game meeting with your client.
Week 10: User Interfaces (November 12 – November 18)
Lecture:
- Monday: Hacking GUIs in PyGTK
- Tuesday: Fundamental Issues in User Interface Design
- Wednesday: Bits of Wisdom from Jef Raskin (RIP)
Tasks:
- Sometime this week you should have your ninth planning game meeting with your client.
Week 11: Presenting Again and Again (November 19 – November 25)
Lecture:
- Monday: Status Presentations
- Tuesday: Lecture Presentation: Eric Ngeo on Software Craftsmanship
- Wednesday: No class! Prepare for turkey and stuffing... :-)
Tasks:
- Friday: Submit the second peer review of your project team, including yourself!
Week 12: More Lecture Presentations (November 26 – December 2)
Lecture:
- Monday: Lecture Presentation: Rodwitt Lai on The Psychology of Computer Programming
- Tuesday: Lecture Presentation: Joel Frankford on Object-Oriented Design Heuristics
- Wednesday: Lecture Presentation: Benjamin Schuster on Alloy Specification Language and Analyzer
Tasks:
- Sometime this week you should have your tenth planning game meeting with your client.
Week 13: More Lecture Presentations (December 3 – December 9)
Lecture:
- Monday: Lecture Presentation: Ryan McLelland on Aspect Oriented Programming
- Tuesday: Course Evaluations; Exam 3; Feedback on the Course; Planning Game for Dinner :-)
- Wednesday: Lecture Presentation: Ayse Sabuncu on Design Patterns
Tasks:
- Sometime this week you should have your eleventh and final planning game meeting with your client.
Week 14: Final Presentation (December 10)
Lecture:
- Monday: Final Presentations
Tasks:
- Monday: Submit the third and final peer review of your project team, including yourself!
- Monday: Dinner with Peter (and Ilya?) at Tamber's Restaurant, 5:00 pm sharp!