CSC211 Design Patterns
Syllabus for Spring 2011
Dr. David Hastings
Office: MCT 183
Office Phone with Voice Mail: (717) 477-1426
Email: dahast@cs.ship.edu
Office Hours (tentative):
Tuesday 4 - 5, Wednesday 9 – 12 and 4 - 5, and by appointment
Text:
Text: Head First Design Patterns by Eric Freeman, Elisabeth Freeman, Kathy Sierra, and Bert Bates, Copyrighted in 2004 by O’Reilly
Course Description:
Provides an advanced study of the concepts of object-oriented programming, with an emphasis on applying those concepts to software development. Many object design patterns have emerged as proven ways to structure object-oriented solutions to a wide range of key problems. This course provides hands-on experience with using design patterns to solve a number of problems that recur in computer science. Students will develop a number of medium to large programs individually. Prerequisites: CSC111
To quote from Wikipedia: ”... a design pattern is a general repeatable solution to a commonly-occurring problem in software design. A design pattern isn't a finished design that can be transformed directly into code; it is a description or template for how to solve a problem that can be used in many different situations”. This course will exam a series of design patterns requiring reading and homework to be done for topic. The last topic in the course will be for each student to create a relatively large programming project. These projects will be done individually.
Exams:
There will be two comprehensive in-class exams. For these exams, no makeup’s will be allowed unless arrangements are made in advance. The course will have a comprehensive final exam.
Labs, Homework, and Quizzes:
There will be a weekly laboratory assignment that involves writing a program that relates to the current topic in the text. All lab assignments must be submitted by the start of the first class of the following week. The labs are augmented by reading assignments.. I expect that you will do all the exercises and questions in the text. The exercises may be done in cooperation with others in the class. There will be a quiz at the beginning of each week on the previous week's reading assignment.
I expect that both your programming and writing will be quality work. Grades in both cases will be based in part on style as well as content. Please note that late assignments will not be graded.
Grading:
Your grade will be computed as follows:
First in-class exam 20%
Second in-class exam 20%
Labs 20%
Quizzes 20%
Final Exam 20%
Your letter grade will be based on the total of these values for your work.
Attendance:
Attendance in this course is necessary to understand the material and is mandatory. If you must unavoidably miss a class, it is your responsibility to find out what was covered and what was assigned, and to get notes from a fellow student. Late homework will not be graded.
Course outline:
I will try to cover as much of the text as possible. I plan to cover approximately one chapter per week:
Jan 18
|
Intro
|
Your Brain on Design Patterns
|
|
|
Chapter 1
|
Welcome to Design Patterns
|
Strategy Pattern
|
Jan 25
|
Chapter 2
|
Keeping your Objects in the Know
|
Observer Pattern
|
Feb 1
|
Chapter 3
|
Decorating Objects
|
Decorator Pattern
|
Feb 8
|
Chapter 4
|
Baking with OO Goodness
|
Factory Patterns
|
Feb 15
|
|
Exam 1
|
|
Feb 22
|
Chapter 5
|
One of a Kind Objects
|
Singleton Pattern
|
Mar 1
|
Chapter 6
|
Encapsulating Invocation
|
Command Pattern
|
Spring Break
|
|
|
|
Mar 15
|
Chapter 7
|
Being Adaptive
|
Adapter and Facade Patterns
|
Mar 22
|
Chapter 8
|
Encapsulating Algorithms
|
Template Method Pattern
|
Mar 29
|
|
Exam 2
|
|
April 5
|
Chapter 9
|
Well-managed Collections
|
Iterator and Composite Patterns
|
April 12
|
Chapter 10
|
The State of Things
|
State Pattern
|
April 19
|
Chapter 11
|
Controlling Object Access
|
Proxy Pattern
|
April 26
|
Chapter 12
|
Patterns of Patterns
|
Combining Patterns
|
Share with your friends: |