MET CS 665 Design Patterns and Components
Last updated August 8, 2002: Recent changes are often in red type
1. Catalog Description
2. Contacting Eric Braude
3. Course Goals
4. Course Materials and References
5. Due dates for homework
6. Evaluation of Students
7. Forums, past and present
8. Learning Objectives
9. References
10. Syllabus and class dates
11. Warning concerning plagiarism
Course Goals
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.
Catalog Description
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.
Learning Objectives
- Understand and implement goals of the OO paradigm
- Understand and apply design patterns
- Understand and apply component technology
Course Materials and References
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.
Evaluation of Students
The course will consist of homework, together with a final, weighted as follows:
- Homework: 70%
- Final: 30%
Unless otherwise stated, parts of every assignment are evaluated equally.
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.
Due dates for homework
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 |
Warning concerning plagiarism
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.
Syllabus
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) |
References
http://hillside.net/patterns/ — links to the pattern community
https://swt.informatik.uni-rostock.de/swt_lehrstuhl/ – excellent way to think about patterns as real-world (non – software) concepts
Forums – past and present
Forum: Summer 2000
Forum: Fall 2000
Forum: Summer 2001
Forum: Fall 2001
Forum: Spring 2002 https://groups.yahoo.com/neo/groups/665Spr02/info email: 665spr02@yahoogroups.com
Forum: Summer 2002 email: 665Su2001@yahoogroups.com