Calendar


Monday Wednesday Friday

1/10

No Class

1/12

Introduction
Course Details
Classwork: System Design



Out: Introductions

1/14

Design in the Small
Reading due: Code Smells,
Open Closed Principle,
Tell Don't Ask
Classwork: Bins

Out: Bins

1/17

No Class
MLK, Jr. Day

1/19

Comparing C++ and Java
Reading due: Java vs. C++
Classwork: Anagrams
 

Due: Introductions

1/21

Class Design
Reading due: Effective C++,
Effective Java (handouts)
Classwork: Anagrams (con't)

Due: Bins (Sunday)

1/24

Collections
Reading due: Horstmann Chap 2
Classwork: WordLines

1/26

Bins Retrospective

Out: KWIC

1/28

Understanding the STL
Reading due: Austern Chap 2
Classwork: Counter

1/31

Catchup/Review

2/2

Input/Output
Reading due: Patterns Chap 1,2
Classwork: Copier

Due: KWIC (Thursday)

2/4

KWIC Retrospective
Reading due: Pragmatic Chap 1,2

Out: OOOH-KWIC

2/7

No Class
Office hours available

Due: OOOH-KWIC #1

2/9

Testing
Example: Currency

2/11

Inheritance and Design
Reading due: Patterns Chap 3-5
Classwork: Roulette

Due: OOOH-KWIC #2

2/14

Design Patterns


2/16

Teamwork Retrospective
Reading due: Pragmatic Chap 4,8

Due: OOOH-KWIC #3

2/18

Parsing
Example: Expressions

Due: OOOH-KWIC #4

2/21

Parsing
Example: Arithmetica v1


2/23

Parsing (con't)
Example: Arithmetica v2

Due: Arithmetica
Out: OOLALA

2/25

No Class


Due: OOLALA #1 (Saturday)

2/28

Parser Design
Example: Imagemetica v1

Due: OOLALA #2 (Tuesday)

3/2

Templates
Examples: BigInt

Due: OOLALA #2.5 (Thursday)

3/4

OOLALA Critique
Reading: Patterns, Chap 7,8,10

3/7

Testing
Examples

Due: OOLALA #2.5.2 (Sunday)

3/9

Functors
Example: Imagemetica v1

3/11

No Class


Due: OOLALA #4

3/14

No Class

3/16

No Class

3/18

No Class

3/21

Design Exercise
Reading: Mercer

Due: OOLALA analysis (Tuesday)

3/23

GUIs and Events
Guest: Owen Astrachan
Reading: UIs that Swing

Due: Jotto

3/25

No Class

3/28

GUI Design: MVC
Reading: Observer
Example: Puzzle

3/30

GUI Design: Properties
Example: Events
Classwork: Java Quiz

4/1

GUI Design: Interfaces
Example: Crystal Browser

Due: Jotto

4/4

Java Animation
Reading: Frameworks
Example: Smiley

Out: Crystal (optional)

4/6

Animation Framework
Reading: 2D Graphics
Example: Bounce

Out: XOOGA

4/8

XML-driven Framework
Reading: Java and XML
Example: Animated Art

Due: XOOGA #1

4/11

XOOGA Design Critique


Due: XOOGA #2 (Sunday)

4/13

Java Reflection
Reading: Reflection API
Example: ShowClass

Due: XOOGA #2 (Tuesday)

4/15

Group Meetings

4/18

Networking Basics
Reading: Custom Networking
Example: Chat

Due: XOOGA #3

4/20

XOOGA Presentations



Due: XOOGA #4 (in class)

4/22

Group Meetings

4/25

Open Source and Ethics
Classwork: Ethics Discussion


Due: XOOGA #5

4/27

Course Critique
Reading: Magic Cauldron,
Good Enough Software

Due: XOOGA #6

4/29

No Class
Reading Period

5/2

No Class
Final Exams

5/4

Final Project Demos
7-10pm

Due: XOOGA #7 (Thursday)

5/6


 

Due: XOOGA #8 (Sunday)