CompSci 308
Fall 2014
Software Design and Implementation

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 early in the week on which they are listed.

Date Topic Recitation Readings Due
Game - Introduction and Basic Design Principles
Aug 25
Week 1
Course Introduction
What is GIT?
What is Design?
Small Refactorings
Bins OO in One Sentence
Code Smells

Guide to Versioning Systems
Plan, Wed, Aug 27
Sep 1
Week 2
Design Principles
Inheritance
Large Refactorings
Roulette Inheritance
Commonality Analysis
Open Closed Principle
Complete, Thu, Sep 4
Analysis, Sun, Sep 7
CellSociety - Basic Teamwork and Recognizing Good Design
Sep 8
Week 3
Team Meeting
GIT Team Workflow
Inheritance Hueristics
GIT Immersion Git: Branching and Merging
Liskov Substitution Principle
Why Getters and Setters are Evil
Plan, Wed, Sep 10
Sep 15
Week 4
GUIs
Pair Programming
TDD JavaFX GUI Resources
Isolating Locale-Specific Data
JUnit Test Infected
Basic, Thu, Sep 18
Sep 22
Week 5
Code Review
Exceptions
Design Patterns
Arithmetica Extreme Programming Explained
Introduction to Design Patterns
Dependency Inversion Principle
Complete, Thu, Sep 25
Analysis, Sun, Sep 28
SLogo - Advanced Teamwork and Design Strategies
Sep 29
Week 6
Team Meeting
Designing APIs
Browser Josh Bloch on API Design
Designing with Interfaces

Interface Segregation Principle
Plan, Thu Oct 2
Oct 6
Week 7
Functional Programming     Basic, Fri, Oct 10
Oct 13
Week 8
FALL BREAK      
Oct 20
Week 9
      Complete, Sat, Oct 25
Oct 27
Week 10
      Analysis, Thu, Oct 30
VOOGASalad - Final Project: Putting it All Together
Nov 3
Week 11
Team Meeting
    Plan
Nov 10
Week 12
      Basic
Nov 17
Week 13
      Revise Plan
Nov 24
Week 14
Presentations
THANKSGIVING
    Demo
Dec 1
Week 15
      Complete
Sunday
Dec 14
2-5pm
Final Project Demo     Demo Preparation
Analysis