MET CS 665: Design Patterns and Components
Last updated August 8, 2002: Recent changes are often in red type
3.
Course Goals
4.
Course Materials and References
9.
References
11.
Warning concerning plagiarism
Most contemporary languages and systems embrace
the object-oriented style. This course is designed to introduce students to
theories and methods of the object-oriented paradigm.
The course is in two main parts: design patterns and components. The design patterns part covers an important
set of OO tools, and integrates these with Java. The components part shows how component technologies such as Java
Beans and .NET are leading to new ways to design, distribute, and re-use
software.
Prerequisite: MET CS 565
Principles of the Object-Oriented paradigm; extensive introduction to standard
Design Patterns, including creational, structural and behavioral patterns;
Component Technologies, including Java Beans and .NET.
Design Patterns by Gamma, Helms, Johnson and
Vlissides (Addison Wesley) ISBN 0-201-63361-2
Recommended (but not
required): Component Software : Beyond Object-Oriented Programming
by
Clemens Szyperski
You will need either the JDK
from Sun or a development environment. Of the latter, I recommend Visual Age by
IBM, which is available free, or Symantec's Visual Java.
The course will consist of homework, together
with a final, weighted as follows:
Unless otherwise stated, parts of every assignment are evaluated equally.
Click
here for generic information on how grades are allocated and averaged in all of
my classes.
Late homework without a written reason why it was *impossible* will not be
accepted. In case of such an impossibility, please write the reason on the
paper: the work will be graded on a pass/fail basis.
If you cannot be at class, fax homework to (617) 353-2367. If you want to check
that the fax was received by the office, please call the secretarial staff at
(617) 353-2566. Please do not e-mail it
unless a FAX is unavailable.
When homework is due in two weeks, you are advised to try the homework upon
assignment and bring questions to the following class. The due dates are as follows.
|
Number |
Name |
Question Numbers in Notes |
Due date |
|
1 |
Introduction (Pass/Fail) |
1.1, 1.2 |
5/29 |
|
2 |
UML (Pass/Fail) |
3.2, 3.3, 3.4 |
6/6 |
|
3.1 |
Toll Booth |
5.2 |
6/19 |
|
3.2 |
Types of Design Patterns |
6.1, 6.3, 6.5, 6.7 |
6/19 |
|
4 |
Creational Patterns |
7.2, 7.3, 7.4 |
7/10 |
|
5 |
Structural Patterns |
8.2, 8.3, 8.4 |
7/17 |
|
6 |
XML Parser, Undo |
9.2, 9.5 |
7/31 |
|
7 |
Dishwasher manuals |
9.6 |
8/7 |
|
8 |
Java Bean example |
11.3 |
8/7 |
The College has serious penalties for
plagiarism, including expulsion from the degree program. Please be very careful
not to use the work of others without very clear and specific acknowledgement.
e-mail, see or call me if you have any doubts. In any case, clearly acknowledge
all sources in the context they are used, including code, of course.
The following is subject to change, the goal
being to cover more design patterns and related topics: however, this depends
on the background of the students.
|
Class Num |
Date |
Topics |
Reading |
Comments |
|
1 |
5/22 |
Introduction; OO; UML |
Notes 1-3 |
|
|
2 |
5/29 |
Software Design Principles
I |
Notes 4 |
|
|
3 |
6/5 |
Software Design Principles
II; Introduction to Design
Patterns |
Notes 5 |
|
|
GAMMA 1 & 2 |
||||
|
4 |
6/12 |
Creational Design Patterns
I |
GAMMA 3 |
|
|
5 |
6/19 |
Creational Design Patterns
II |
GAMMA 3 |
|
|
6 |
6/26 |
Structural Design Patterns
I |
GAMMA 4 |
|
|
7 |
7/3 |
|
|
|
|
8 |
7/10 |
Structural Design Patterns
II |
GAMMA 4 |
|
|
9 |
7/17 |
Behavioral Design Patterns
I |
GAMMA 5 |
|
|
10 |
7/24 |
Behavioral Design Patterns
II |
GAMMA 5 |
|
|
11 |
7/31 |
Introduction to Components
and Beans |
Szyperski |
|
|
12 |
8/7 |
Components: C# / .NET |
Szyperski |
|
|
11 1/2 |
8/8 |
Review for final |
|
In SMG 228 |
|
13 |
8/14 |
Final (3 hours) |
|
|
http://hillside.net/patterns/ -- links to
the pattern community
http://wwwswt.informatik.uni-rostock.de/deutsch/Lehre/Uebung/Beispiele/PatternExamples/patexamples.htm
– excellent way to think about patterns as real-world (non –
software) concepts
http://www.enteract.com/~bradapp/docs/patterns-intro.html
Forum:
Spring 2002 email: 665spr02@yahoogroups.com
Forum:
Summer 2002 email: 665Su2001@yahoogroups.com