CompSci 308
Fall 2015
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?
Small Refactorings
Bins Be a Better Programmer
Code Smells
JavaFX Architecture
Guide to Versioning Systems
Plan, Fri, Aug 27
Sep 1
Week 2
What is Design?

RPS OO in One Sentence
Refactoring: Extract Class
Complete, Fri, Sep 4
CellSociety - Basic Teamwork and Recognizing Good Design
Sep 8
Week 3
Team Meeting
GIT Practice
Open Closed Principle
Big Refactorings
Git: Branching and Merging
Analysis, Mon, Sep 7
Plan, Sat, Sep 12
Sep 15
Week 4
Inheritance Design
Browser Commonality Analysis
JavaFX GUI Resources
Isolating Locale-Specific Data
Basic, Sat, Sep 19
Sep 22
Week 5
Design Patterns
Peer Code Review Introduction to Design Patterns
Designing with Exceptions
Why Getters and Setters are Evil
Complete, Sun, Sep 27
SLogo - Advanced Teamwork and Design Strategies
Sep 29
Week 6
Designing APIs
Team Meeting
API Design Josh Bloch on API Design
Designing with Interfaces
JavaFX Properties and Bindings
Analysis, Wed, Sep 30
Oct 6
Week 7
Functional Programming:
A Progression of Steps
API Review Functional Programming in Java
Lambda Expression Tutorial
Why Lamba Expressions
Plan, Mon, Oct 5
Oct 13
Week 8
    Basic, Sun, Oct 18
Oct 20
Week 9
Oct 27
Week 10
      Complete, Tue, Oct 27
VOOGASalad - Final Project: Putting it All Together
Nov 3
Week 11
Team Meeting

    Analysis, Mon, Nov 2
Nov 10
Week 12
Nov 17
Week 13
Nov 24
Week 14
Dec 1
Week 15
Dec 9
Final Project Demo     Final Demo, Wed, Dec 9
Analysis, Sat, Dec 12