Introduction

Week 1
January 14th
Course Introduction
January 16th
Introduction to Java
January 17th
Eclipse and SVN

Object-Oriented programming

Week 2
January 21st
Classes and Objects
January 23rd
Overloading and Encapsulation
Hw 0 out
January 24th
Interface
Week 3
January 28th
Inheritance
January 30th
Abstract Classes
Hw 1 out
Hw 0 due
January 31st
Generics
Week 4
February 4th
Object-Oriented Design (part 1)
February 6th
Object-Oriented Design (part 2)
Hw 2 out
Hw 1 due
February 7th
Object-Oriented Design (implementation)

Specification and Verification

Week 5
February 11th
Formal Analysis and Software Artifacts
February 13th
Testing and Debugging
February 14th
JUnit

Design

Week 6
February 18th
Design Goals and Principles
February 20th
Conceptual Modeling
Hw 3 out
Hw 2 due
February 21st
GRASP
Week 7
February 25th
Design Patterns
February 27th
Design Patterns
Hw 4 out
Hw 3 due
February 28th
Case Study

Midterm

Week 8
March 11th
Midterm Review
March 13th
Midterm Exam
Hw 4.1 due
March 14th
Midterm Correction

Graphical User Interface

Week 9
March 18th
Introduction to GUI and Java Swing
March 20th
Designing GUIs
March 21st
Eclipse WindowBuilder

Framework

Week 10
March 25th
White-Box Framework
March 27th
Black-Box framework
Hw 4.2 due
March 28th
Eclipse Plugin Framework
Week 11
April 1st
Game Engine
April 3rd
Game Engine
Hw 4.3 due
Hw 5 out
April 4th
Game Engine

Concurrency

Week 12
April 8th
Concurrency
April 10th
Concurrency
April 11th
Concurrency
Week 13
April 15th
Distributed Systems
April 17th
Distributed Systems
Hw 5 due
Hw 6 out
April 18th
Distributed Systems
Week 14
April 22nd
TBD
April 24th
TBD
Hw 6 due
April 25th
TBD

Final Exam

May 1st
3:30-6:30pm room 1190