Dr. Michael Sobolewski
Office hours: Wednesday 2:00 p.m. to 5:00 p.m. or by appointment
Location: CP 110
Time: 1 p.m. -
1:50 p.m., MWF
Course webpage is
will make extensive use of the class WWW site. You should check the WWW page on
a near daily basis for updates.
A design pattern is a
way of pursue a design intent in terms of classes and their methods in an
object-oriented (OO) language. Design patterns are recurring solutions to
software design problems you find again and again in real-world application
development. Design patterns are about design and interaction of objects, as
well as providing a communication platform concerning elegant, reusable
solutions to commonly encountered programming challenges.
covers metasystemic approach to OO programming and fundamental
23 object-oriented programming patterns - the most useful
class-level patterns. This course uses UML and Java in its examples and
challenges because of UML's standardization as the pattern description language
and of Java's popularity and its future prospects.
By the end
of this course, you will learn metasystemic
approach to OO programming and by working through the challenges in this course,
you will deepen your understanding of the patterns, build confidence in your
ability to recognize these patterns, strengthen your ability to apply these
patterns in your own programs.
challenges, programming projects, and relevant papers support the course.
1. understand add apply component coupling and cohesion in an OO design
2. describe and apply the most useful 23 class-level programming patterns.
3. categorize programming patterns based on design intent as interface,
responsibility, construction, operation. and extension patterns
4. define and investigate a specific design pattern(s) not covered in the
5. architect larger framework-based computing systems by applying metasystemic
approach to OO programming
6. analyze and evaluate architectural qualities
7. design and implement pattern-based application by selecting the appropriate
Methods of Assessment of Learning outcomes
a. Research papers on programming patterns not covered in the class
b. Midterm exam
c. Four homework assignments - multiple pattern-based challenges per assignment
d. Pattern-based project or optional final exam
Prerequisites: introductory (undergraduate level) courses in
object-oriented programming, and some familiarity with Java programming will also be
Design Patterns Java Workbook, Steven John Metsker. Addison-Wesley, 2002
OO Design & Patterns,
Cay S. Horstmann,
San Jose State Univ.,
2nd ed., ISBN 0-471-74487-5, Wiley & Sons, 2006
Software Architecture in
Practice, Second Edition, Len Bass, Paul Clements, Rick Kazman,
Addison-Wesley Professional; 2003.
Thinking in Patterns with Java, Bruce Eckel,
Design Patterns, Erich Gamma, Richard Helm, Ralph Johnson, ISBN 0201633612, John
Vlissides, Addison-Wesley, 1995
Metasystemic Object Orientation
SW Architectures and OO Paradigm
Elements of Java Platform
OO Design Process
Java Object Model
Coupling and Cohesion
Chain of Responsibility
Student Workload: This is a
combined lecture/discussion/workshop course, falling somewhere
between a traditional lecture-oriented class and a seminar class.
Material will be presented by the instructor, and students are
expected to participate in class discussions. I anticipate there
will be one written assignment, homework assignment fro most modules, a
take-home midterm exam, and a final or project.
For most modules challenge assignments should be submitted by email: firstname.lastname@example.org before the
date on which it is due - one week after a module presentation. For
late submissions there will be a penalty of 10% for lateness. Please work individually on
Please study the assignment specifications, code your programs, and
test them independently. Stop by my office if you have difficulty in
understanding the assignment or the course material discussed in the
Projects: Students should make two
person teams or work individually if it is preferred. Each team must
complete a project on some aspect of design patterns - refactoring
an existing project to pattern-based design is recommended. The project will be
presented with the emphasis on the architecture and design, and demonstrated during the last two classes. All students
must be present for all the presentations/demos. The students will
be graded on the project as well as the quality of the
design and presentations/demos. The presentation should not exceed more than
six viewgraphs and should reflect a clear understanding of the
subject by the student. Please use your critical thinking skills to
be concise and focused on both the project results as well as the
Final exam will be open-book/notes, but will be extremely
time-constrained. Material from handouts, textbooks and
reading/assignments will be included in the scope of the exams.
The purpose of these
different instruments is to have a positive learning experience,
critical thinking about OO design issues, and some sound
grasp of fundamental design patterns. If you feel any of these instruments is not
working for any reason, please send me email and I will consider a
change in the format of delivery.
relationships are based on trust. Acts, which violate this trust,
undermine the educational process. Your classmates and the
instructor will not tolerate violations of academic integrity (see
Academic Conduct for Engineering Students, College of Engineering
Texas Tech University).