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