SE2811
Schedule

This is an old version of this course, from Winter 2016-2017. A newer version is available here.

Day-by day class materials

code
In-class code
slides
Power-point slides

The code examples are numbered by week and class of week. For example, code/example2_1 is the code example from Week 2, Day 1 (That is, Monday of Week 2).

Acknowledgement

The schedule for this class is adapted from Dr. Mark Hornick's rendition of the class a few years back. It will be updated throughout the quarter without markup.

Schedule

Lab titles and schedule is particularly subject to change, especially the first two labs and the labs near the end of the quarter.

 
Week Day Topics Reading Lab
1 1 Course Introduction
Review: UML (inheritance, realization, composition, usage, aggregation, roles, multiplicity)
pp. x-xxxiiii
pp. 1-35
Making a Smarter Bee
Base Code: AngryBees.zip
2 Inheritance issues
Cohesion defined
3 The Strategy Pattern
Extension vs. Encapsulation
Coupling defined
2 1 Strategy Pattern, continued
The Simple Factory idiom
The Factory Method pattern
The Singleton Pattern & synchronizing threads in Java
See code examples from link at top of this page.
pp. 109-167
Implementing the Strategy Pattern and Simple Factory Idiom in AngryBees
2 Factory Pattern
3 Factory Pattern
3 1 Multithreading in-depth
Tech Article:
  • Threads in Swing (Older version, only available through the way-back machine)
  • Concurrency in Swing. New, updated version. Although it does not contain a direct statement of the "single-thread rule", it describes the new WorkerThread class that is now part of the Java API (as of Java 6).
  • Thread Synchronization (p. 1)
Prep reading: Object Locking
Thread-safe collections
2 Multithreading continued:
Thread Synchronization
3 Multithreading continued

Merry Christmas
4 1
Singleton Garbage Collection
Thread safety in the Singleton pattern
Forum Discussion: Singleton and Garbage Collection

Documentation: Atomic operations in Java

The Text:
pp. 169-189 (Singleton)
pp. 37-77 (Observer)

Singleton Event Logger
2 Thread safety in the Singleton pattern
Observer Pattern
3 Observer Pattern continued
5 1 Posting events from a worker thread to the UI thread
Java Observer interface, Observable class
Review for Half Exam 1

Tech article:
Invoking methods on the Event Dispatch Thread
 

GPS Observer
2 Half Exam 1
TBA
3 TBA
6 1 Decorator Pattern pp. 79-107 (decorator)
Drawing Program - Decorators
2 Observer push model
Decorator Pattern continued
Sample code from W4 with working observer impl:
WeatherStation.zip
New files (also in zip file):
WeatherDataProvider.java
WeatherPacket.java
3 Decorator Pattern continued

Decorators in Java I/O
Encryption using a Decorator
Sample code
IODecorators.zip

Secret message file
message.txt
7 1 Composite Pattern Sample code:
ComputerBuilder.zip
Sample code:
SwingCompsitesDemoApp.zip
pp. 317-344 (skim)
pp. 345-377
Sample Code: CommandApp.zip
pp. 191-233

Drawing Program - Composites
2 Composite Pattern continued:
Swing Containment classes
3 Half Exam 2 Command Pattern
8 1 Command Pattern - Undo support Model View Controller in Head First
pp. 526-560

Drawing Program - Undo support
2
3 Model-View-Controller: A compound pattern
9 1
Sample code:

p 434 (proxy overview)
pp. 429-497 (RMI proxy details)
Sample Code:
pp. 628-629

Remote Proxy Sample:
2 MVC continued
Proxy Pattern
3 Proxy Pattern (continued)
10 1
Facade Pattern / Adapter Pattern Summary
  GPS Observer continued

 
2 TBA
Facade Pattern?
Adapter Pattern? Summary?
pp. 578-609
Final Exam info

Course Outcomes
3 Review  
11 Final Exam
TBA