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.
As decided by the class, deadlines are at 10am the morning after the given deadline. For example, if this calendar says a deadline is Sunday, it will be accepted until Monday morning at 10am.
Date
| Topic
| Recitation
| Readings
| Due
|
Game - Introduction and Basic Design Principles |
Aug 30 Week 1 |
Course Introduction
What is GIT?
Small Refactorings |
GITing Started
Bins
|
Be a Better Programmer
Code Smells
JavaFX Architecture
Guide to Versioning Systems
|
Plan, Fri
|
Sep 6
Week 2 |
What is Design?
Small Design Principles
|
RPS |
OO in One Sentence
Decomposition
Refactoring: Extract Class
|
Complete, Sun
|
CellSociety - Basic Teamwork and Recognizing Good Design |
Sep 13 Week 3 |
Inheritance |
GIT for Teams
Team Meeting |
Open Closed Principle
Inheritance
Big Refactorings |
Analysis, Wed
Plan, Sat |
Sep 20 Week 4 |
GUIs
Exceptions |
Browser |
Designing with Exceptions
JavaFX GUI Resources
Isolating Locale-Specific Data |
Team Contract, Tue
Basic, Sun |
Sep 27 Week 5 |
Interfaces
Inheritance Design |
Peer Code Review |
Introduction to Design Patterns
Why Java Interfaces
Commonality Analysis
|
Team Report, Tue
Complete, Sun |
SLogo - Advanced Teamwork and Design Strategies |
Oct 4 Week 6 |
Design Patterns Designing APIs
|
Team Meeting |
Josh Bloch on API Design
Designing with Interfaces
JavaFX Properties and Bindings |
Analysis, Wed
Team Contract, Thu |
Oct 11 Week 7 |
FALL BREAK |
Peer API Review |
Reflection
Enumerated Types
Generics
Regular Expressions |
Plan, Thu |
Oct 18 Week 8 |
Functional Programming
A Progression of Steps
|
Refactoring Practice |
Functional Programming in Java
Lambda Expression Tutorial
Why Lamba Expressions |
Basic, Sun |
Oct 25 Week 9 |
SOLID Design |
Peer Code Review |
From STUPID to SOLID
Foundation Patterns
Big Ball of Mud |
Team Report, Mon |
Nov 1 Week 10 |
What is a Framework?
What is a Game?
(and as a picture)
|
Git: Undoing Changes
Design a Game
|
Designing a Document Editor
Introducing OO Frameworks
The Structure of Games
|
Complete, Tue |
VOOGASalad - Final Project: Putting it All Together |
Nov 8 Week 11 |
Data Driven Design
Composition
Agile Programming:
Process and Design |
Team Meeting |
Composition vs. Inheritance
Design to Accommodate Change
The Magic of Data Driven Design |
Team Choice, Tue
Plan, Sun |
Nov 15 Week 12 |
Programming Paradigms
Future of Programming
|
API Review
Team Meeting |
Scrum Guide
Don't Make Me Think
Why Software Sucks |
|
Nov 22 Week 13 |
No class |
THANKSGIVING |
|
|
Nov 29 Week 14 |
Command Line Principles
Open Source |
Mid-Point Demo |
Small Pieces, Loosely Coupled
Cathedral and Bazaar
Free Software Definition |
Basic, Tue
Team Report, Wed
Demo, Thu |
Dec 6 Week 15 |
Professionalism |
TDD
Agile Retrospective |
Commandments of Computer Ethics
ACM Code of Ethics (under revision)
IEEE Code of Ethics |
Complete, Sun |
Wed
Dec 14
7-10pm |
Final Project Demo |
|
|
Final Demo, Wed
Analysis, Sun |