![]() |
|
Description Syllabus Policies Quizzes/Homework Grading
Links
removed for all labs after Christmas - modifications in progress will be
completed after Christmas break.
This page was last updated on 02/10/2017.
Lectures are on Monday, Thursday, and Friday in L100 from 9:00am to 9:50am.
Labs are on Wednesday in L014 from 8:00am to 9:50am.
Email me when you foresee yourself to be absent. As stated in my general course policies, attendance is mandatory for all lectures and labs. Be sure to read the entire document for all relevant policies that apply to this course.
This course deals with the design and implementation of software subsystems. The concept of design patterns is introduced and common patterns are applied to the development of software components. Laboratory projects provide an opportunity for teams of students to implement components and to integrate them into complete systems.
Please consult the this page for detailed learning objectives you can use as a study guide.
Head First Design Patterns, Freeman et al, O'Reilly, 2004.
Week | Day | Topic | Reading | Lab |
---|---|---|---|---|
1 | M |
Course Introduction OO review: Interfaces, Abstract classes, Concrete classes
SE2030
UML
Review: (inheritance, realization, composition, usage, aggregation, roles,
multiplicity) |
pp 1-35 wikipedia article on coupling. Also follow the link to the wiki article on cohesion |
Inheritance |
Th |
Inheritance issues State inheritance, Behavioral inheritance |
|||
F |
Extension vs. Encapsulation: The Strategy Pattern Sample Code: ComparisonStrategies.zip |
|||
2 | M |
Design
Patterns explained |
|
Quiz 1 Implementing the Strategy Pattern in a File Encrypter due by end of lab |
Th | Multithreading in-depth | |||
F | no class (Rockwell-Collins tour) | |||
3 | M |
Multithreading continued: Thread Synchronization |
Tech Article:
Thread Synchronization Sample Code: ThreadSyncDemoApp.java |
Prep reading: Object Locking due by end of lab |
Th |
Quiz 2: Multithreading Singleton Pattern |
|||
F | Singleton, continued | |||
4-1 | M | Thread safety in the Singleton pattern |
pp 169-189 Sample Singleton Code: |
Singleton Event Logger |
Th | No Class - Christmas break | |||
F | No Class - Christmas break | |||
Christmas Break | ||||
4-2 | M | No Class - Christmas break |
Sample code:
UML class diagram: |
No Lab - Christmas break |
Th | ||||
F |
Quiz 3: Singletons Observer Pattern continued Posting events from a worker thread to the UI thread |
|||
5 | M |
Observer push model |
Sun Tech article:
|
Bus Observer, Part 1 (team design) designs due by end of lab |
Th |
Java Observer interface, Observable class |
|||
F | Midterm Exam | |||
6 | M | Decorator Pattern |
pp 79-107 (decorator) |
Bus Observer, Part 2 demo due by end of lab |
Th |
Decorator Pattern continued Decorators in Java I/O Encryption using a Decorator |
Sample code IODecorators.zip |
||
F |
Sample code: ComputerBuilder.zip |
|||
7 | M |
Composite Pattern continued: Swing Containment classes Introduction to the Team Project Team Assignments |
Sample code: pp 317-344 (skim) pp 345-377 Sample Code: CommandApp.zip |
due by end of lab |
Th | ||||
F |
Command Pattern - Worker threads |
|||
8 | M |
Quiz 4: Observer Command Pattern - Undo support |
Sample Code: (Factory Pattern progression):
CurrencyFactory.zip |
Command-based WordSearch,
Part 1 |
Th |
Factory Patterns: The Factory Method pattern |
|||
F |
Factory Patterns continued: |
|||
9 | M |
Quiz 5: Decorator Factory Patterns continued: Instantiation without "new" |
|
WordSearch, Part 2 due by end of lab |
Th |
Visitor Pattern access to private data |
|||
F |
Quiz 6: Command |
|||
10 | M |
Project Presentations |
Any late work is due by 11pm Friday, per course policies. |
|
Th |
Project Presentations 6: Prototype (Fontaine, Roth) 7: State (Eidson, Lovell, Sheets) |
|||
F |
Class Climate
|
|||
11 |
Final Exam |
My general course policies apply to this course.
Quizzes and labs will be given or assigned each week.
You are encouraged to work with your classmates on labs, so that you can more fully understand the problem and discuss approaches to solution. However, you should work out the solutions to assignments individually.
Quizzes will be given weekly. No quiz will be given the week of the Exams. No make-up quizzes will be given in case of absences from class.
Note that this algorithm indicates how a grade will be determined for students who have successfully demonstrated mastery of the course objectives. An acceptable level of success in meeting all course objectives is a prerequisite for a passing grade in the course.
Criterion | Weight |
Labs | 30% |
Quizzes | 25% |
Midterm Exam | 15% |
Team Project | 10% |
Final Exam | 20% |
All source code submitted must use JavaDoc commenting conventions and meet the minimum documentation standards outlined below.
.