SE2811
Schedule

This is an old version of this course, from Winter 2013-2014. A newer version is avaliable 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

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
Design Patterns explained Factory Patterns:
The Factory Method pattern
Sample Code: (Factory Pattern progression): CurrencyFactory.zip
See code examples from link at top of this page.
pp. 109-167
Implementing the Strategy and Factory Method patterns in AngryBees
2 Factory Patterns continued:
The Abstract Factory pattern
3 Factory Pattern continued
Abstract 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).

Sample code:
multithreading.zip
Tech Article: Thread Synchronization (p. 1)
Prep reading: Object Locking
Thread-safe collections
2 Multithreading continued:
Thread Synchronization
3 Multithreading continued

Sample Code:
ThreadSyncDemoApp.java
Merry Christmas (one week)
Happy New Year (another week)
4 1 Singleton Pattern
Read: Singleton Garbage Collection
pp. 169-189
Sample Singleton Code:
EventLoggerDemoApp.zip


pp. 37-77
Sample code:
WeatherStation.zip

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 Exam

Tech article:
Invoking methods on the Event Dispatch Thread
 

GPS Observer
2 Midterm Exam
3 TBA
6 1 Decorator Pattern pp. 79-107 (decorator)
Sample Code:
IceCream.zip

Drawing Program - Decorators
2 Observer push model 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 Command Pattern
8 1 Command Pattern - Undo support
Sample Piped I/O code:
pipes.zip


Sample Socket code:
textecho.zip


Model View Controller in Head First
pp. 526-560  

Drawing Program - Undo support
2 Introduction to Inter-Process Communication
3 Details of socket-based IPC
Model-View-Controller: A compound pattern
9 1 Proxy Pattern
Sample code:
virtualproxy.zip
p 434 (proxy overview)
pp. 429-497 (RMI proxy details)
Sample Code:
Visitors.zip
pp. 628-629
GPS Observer with remote proxy

Remote Proxy Sample:
RemoteProxy.zip
2 MVC continued
Proxy Pattern
3 Proxy Pattern (continued) Visitor Pattern
10 1 Visitor Pattern continued - access to private data
Facade Pattern / Adapter Pattern Summary
  GPS Observer continued

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

Course Outcomes
3 Summary? Review? TBA?
Review:
MVC Example Problem
Quizzes
Outcomes
Class Climate
 
 
11 Final Exam
Monday, February 24
8:00-10:00am
S 359