CompSci 108
Spring 2009
Software Design and Implementation
Date Topic Reading due Classwork Assignment Due
7 Jan Course Overview
Survey
Bins
9 Jan Design in the Small OO in One Sentence
Open Closed Principle
Code Smells
12 Jan Unit Testing Test Infected Introductions
14 Jan Guest: Nedyalko Borisov
Lessons from the Front Lines
Bins
16 Jan Code Review
19 Jan MLK, Jr. Day - No Class
21 Jan Introduction to Python Python for Java Programmers
Scripting
Bins Tag Cloud
23 Jan Scripting Python is Not Java
26 Jan Team Meetings Single Responsibility Principle
Liskov Substitution Principle
Life-Long Learning Choice
NanoGoogle #1
28 Jan Functional Programming Code Like a Pythonista: Idiomatic Python
30 Jan Reflection The Reflection API
2 Feb GUIs and Events User Interfaces that Swing
Using Swing Components
NanoGoogle #2
4 Feb Code Review
6 Feb Levels of Design
9 Feb Teams Review Extreme Programming NanoGoogle #3
11 Feb Course Review NanoGoogle #4
13 Feb Code Review
16 Feb Design Patterns Design Patterns
18 Feb Peer Code Review NanoGoogle Review
20 Feb GUI DesignObserver
Writing Listeners
23 Feb Java and Python Together Working with Jython and Java
25 Feb Exceptional Programming Exceptional Java Series
27 Feb Design Patterns Revisted Foundation Patterns Code Review Request
2 Mar Snow! - No Class
4 Mar Team Meetings
6 Mar Out of Town - No Class NanoGoogle Revision
9 Mar Spring Break - No Class
11 Mar Spring Break - No Class
13 Mar Spring Break - No Class
16 Mar Animation BasicsAnimation Tutorial Bounce
18 Mar Code Review Screen Savers Flocks teams due
20 Mar Distributed Design Josh Bloch on Design Flocks website due
23 Mar Framework Design Introducing OO Frameworks Flocks initial version
25 Mar Code Review
27 Mar Designing with Patterns Designing a Document Editor
UML Quick Guide
Flocks final version
30 Mar Spirited Debate
1 Apr Data Driven Design Technical Introduction to XML Springs
3 Apr High-Level Design SLogo Springs Due
6 Apr Team Meetings OO Software Development VOOGA website due
8 Apr Book Presentations
10 Apr What Is A Game? VOOGA design v1.0 due
13 Apr Networking Custom Networking
15 Apr Progress Demos VOOGA code v1.0 due
17 Apr Progress Demos VOOGA design v2.0 due
20 Apr Course Review
22 Apr Path to the Profession ACM Code of Ethics
IEEE Code of Ethics
Ten Commandments of Computer Ethics
VOOGA code v2.0 due
2 May VOOGA final version due