CompSci 108
Spring 2007
Software Design and Implementation
Date Topic Reading due Classwork Assignment Due
10 Jan Introduction
Course Details
Survey
Bins
12 Jan Design in the Small Open Closed Principle
Tell Don't Ask
Code Smells
Refactoring Bins
15 Jan No class - MLK Jr. Day
17 Jan C++ Basics Comparing C++ and Java
Java vs. C++
Anagrams Introductions
19 Jan Recitation: C++ Pointers and Memory Roulette 1
22 Jan Recitation: Refactoring Big Refactorings Roulette 2
24 Jan Class Design EC Chapter 3 Arithmetica First Roulette 2
26 Jan Recitation: Refactoring Arithmetica 1 Final Roulette 2
29 Jan Inheritance Design Tapestry Chapter 13.3 First Arithmetica 1
31 Jan STL STL Tutorial Chapters 2,3 Arithmetica Final Arithmetica 1
2 Feb Recitation: Patterns DPE Chapter 5
The Interpreter Pattern
Arithmetica 2
5 Feb Design Principles Dependency Inversion
Principle
First Arithmetica 2
7 Feb Code Review
9 Feb Recitation: Catch-up
12 Feb Templates Templates Tutorial Final Arithmetica 2
14Feb STL in more Detail Functors
16Feb Recitation: Arithmetica Quiz Foundation Patterns
19Feb GUIs and Events
Guest: David Winslow
User Interfaces that Swing
Using Swing Components
Events
21Feb GUI Design: MVC
Guest: Ben Wolf
Observer Puzzle
23 Feb Recitation: Adding Components
Guest: Marcin Dobosz
Crystal Design Crystal
26 Feb Designing Programs SLogo First Crystal
28 Feb Designing with Patterns Mercer Chapter 12 SLogo
2 Mar Recitation: Design Document GoF Chapter 2 OOKIE Final Crystal
5Mar Code Review McCarthy Chapter 1 OOKIE #1
7Mar Design Review Beck Chapter 10
9Mar No Class - Out of Town OOKIE #2
12Mar No Class - Spring Break
14 Mar No Class - Spring Break
16 Mar No Class - Spring Break
19Mar Networking Custom Networking Chat
21 Mar Interaction Writing Listeners Sketch
23 Mar Recitation: Team Meeting
26 Mar Code Review OOKIE #3
28 Mar Reflection The Reflection API ShowClass
30 Mar Recitation: Team Meeting
2 Apr Animation Basics Animation Tutorial Bounce OOKIE #4
4 Apr Animation Framework Taligent Chapters 1-3 Bounce VOOGA #0
6 Apr Recitation: Team Meeting OOKIE #5
9Apr API Design Josh Bloch on Design VOOGA #1
11 Apr Data Driven Design Technical Introduction to XML Springies
13 Apr Recitation: Team Meeting
16 Apr Progress Demos Student Presentations VOOGA #2
18 Apr Code Review
20 Apr Path to the Profession ACM Code of Ethics
IEEE Code of Ethics
Ten Commandments of Computer Ethics
Ethics Discussion
23 Apr Progress Demos 2.0 Student Presentations VOOGA #2.5
25 Apr Things You Should Know
Course Critique
Test Infected
Shell Scripting
VOOGA #3
2 May Final Project Demos (7-10pm) VOOGA #4, #5