CompSci 108
Spring 2010
The Software Studio

The exact order and details of these topics is subject to change during the semester based on the pace needed, but we will try to set them at least two weeks in advance. As much as possible, materials discussed in class will be posted here in case you miss class.
Readings should be completed before the day on which they are listed.

Date Topic Reading Assignment Due
13 Jan Course Overview
15 Jan Refactoring to Design OO in One Sentence
Open Closed Principle
Code Smells
18 Jan No Class - MLK, Jr. Day
20 Jan Testing and Debugging Test Infected Introductions
Bins: Refactoring (Thu)
22 Jan Code Review Bins: Testing (Sun)
25 Jan Testing Review Bins: Analysis (Tue)
27 Jan Inheritance Inheritance
Commonality Analysis
Liskov Substitution Principle
29 Jan Defensive Programming Enumerated Types
Guide to Versioning Systems
Arithmetica: Refactoring (Sat)
1 Feb Code Review
3 Feb Design Patterns Design Patterns
5 Feb No Class -- Snowed Out Arithmetica: Final (Sat)
8 Feb Design Review Arithmetica: Analysis
10 Feb GUIs and Events User Interfaces that Swing
Using Swing Components
12 Feb Guest: Andrew Lenards
Software Engineer, iPlant Collaborative
Loosely Coupled Thoughts Jotto: Refactoring (Sat)
15 Feb GUI Review
17 Feb GUI Design
Guests: Dean Chen and Daphne Ezer
Writing Listeners
Interface Segregation Principle
19 Feb No Class - Doctor Appointment The Reflection API Jotto: Final
Jotto: Analysis (Sat)
22 Feb Team Meetings PICASSA: Teams (in-class)
24 Feb Project Planning Extreme Programming
26 Feb Design Patterns Revisited Foundation Patterns
Dependency Inversion Principle
1 Mar Design Presentations PICASSA: Design (in-class)
3 Mar Design Presentations
5 Mar No Class - Spring Break PICASSA: Final
8 Mar No Class - Spring Break
10 Mar No Class - Spring Break
12 Mar No Class - Spring Break
15 Mar Documentation Review PICASSA: Analysis (Tue)
17 Mar API Design Josh Bloch on API Design
19 Mar Web Sites and HTML Parsing I/O Streams
22 Mar API Presentations GEDIVA: Design (in-class)
24 Mar Team Meetings
26 Mar Final Project
29 Mar What is a Game Engine? The Game Loop GEDIVA: Final
31 Mar Game Engine Design Discussion Introducing OO Frameworks GEDIVA: Analysis
2 Apr Animation and Interaction Custom Animation
Using Key Bindings
VOOGA Project Choice
5 Apr Team Meetings VOOGA Priorities (Tue)
7 Apr Guest: Tom Carbone
Technical Director, Florida Interactive Entertainment Academy
VOOGA API (Thu)
9 Apr VOOGA API Review OO Software Development
12 Apr VOOGA API Update VOOGA Draft
14 Apr Guest: Mark McCahill
Systems Architect at Duke's OIT and on OpenCobalt
VOOGA API (Thu)
16 Apr VOOGA API Review Use of Heuristics in Design
19 Apr VOOGA API Update VOOGA Draft
21 Apr Team Meetings VOOGA API (Thu)
23 Apr VOOGA API Review Designing a Document Editor
26 Apr Guest: Lars Bishop
Mobile Developer Technologies Engineer, NVIDIA
VOOGA Draft
28 Apr The Profession ACM Code of Ethics
IEEE Code of Ethics
Ten Commandments of Computer Ethics
VOOGA API (Thu)
30 Apr No Class - Reading Period
3 May Final Demos, 7-10pm VOOGA Final