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

 

 

 

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:


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.

 

 

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

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

 

Forums – past and present

 

Forum: Summer 2000

Forum: Fall 2000

Forum: Summer 2001

Forum: Fall 2001

Forum: Spring 2002   email: 665spr02@yahoogroups.com

Forum: Summer 2002 email: 665Su2001@yahoogroups.com