You have the option of procuring either the book or CD version of the Design Patterns text.
The following books will be used as references for web tools. UMD students can access them through Safari Tech Books Online.
Object-oriented methodology is widely accepted as the best methodology for tackling a wide range of software design problems. From its early days, reusability has been one of its most important promises of this methodology. Some of its early proponents expressed the view that just using this methodology would result in a factor of ten improvement in software productivity.
Reality has clearly demonstrated that this improvement may be possible, but not without a substantial change in the way we approach design problems. It is far from being just a simple matter of classifying the kinds of objects that are needed in the software and setting up an appropriate class heirarchy.
The primary objective of this course is to examine some of the more complex issues that arise in object-oriented design and some possible solutions. Few of the solutions are best for all circumstances. This implies the need for examining conditions determining the appropriate use of these solutions. For some of the more complex solutions, we will also need to examine how a solution can be adapted to meet problem specific needs.
While studying design patterns, we will also look at object-oriented principles - encapsulation, inheritance, polymorphism, classes, and types to see how they relate to design patterns. We will also look at object-oriented technology in the web. This will provide some examples of design patterns and also introduce object-oriented languages that are substantially different from C++ and Java.
This course is divided into three modules, each terminated by an exam:
Design patterns are patterns for organizing a small set of classes to meet needs that arise frequently. A good presentation of a design pattern discusses the considerations involved in recognizing the need for the pattern, adapting it into a specific software context, and selecting among its variations.
Design patterns use the object-oriented principles - encapsulation, inheritance, and polymorphism - in different ways. Along the way we will look at these principles in greater depth.
Your understanding of these topics will be tested in the first midterm exam.
Modern web technology has several good examples of design patterns. For example, the structure of a web page is an example of the Composite design pattern. In advanced web design, this structure is often accessed through the JavaScript programming language. This language will be described, providing an example of a prototype- based, classless language.
Your understanding of these topics will be tested in the second midterm exam.
You will start work on a class project shortly after the second midterm exam. The class project will give you an opportunity to apply lessons that you have learned about object-oriented design. While you are working on the project, more advanced design patterns and object-oriented topics will be presented in lecture.
Your understanding of these patterns and topics will be tested in the final exam. The final exam will also cover some review material from topics covered by the midterm exams.
Grades will be maintained on the web using egradebook.
| Homework | 12% |
| Programming Assignments | 12% |
| Project | 20% |
| Exams | 56% |
| Midterm 1 | Monday, October 12 |
| Midterm 2 | Monday, November 16 |
| Final Exam | Monday, December 21, 1200-1355 |
Assigned reading should be done before class on the day of the assignment.
Programming assignments will be collected at the beginning of lab on the due date. Some of the assignments will also require demonstration, which will be done in lab on the due date. Late assignments will be penalized 20 percent per class day. If you complete a programming assignment late, it is your responsibility to make arrangements with the teaching assistant for demonstrations.
Attendence will be taken in labs after the project is started. Points will be deducted from individual project scores for irregular attendence. In extreme cases, an individual can lose all credit for the project.
Exams will not be given early, and makeups are not allowed except in very dire circumstances, e.g., severe illness or death in the family. In any case, I must be informed in advance of the scheduled exam time.
Individuals who have any disability, either permanent or temporary, that might affect their ability to perform in this class are encouraged to inform the instructor at the start of the quarter. Adaptation of methods, materials, or testing may be made as required to provide for equitable participation.