Object-Oriented Design Patterns

CSCI 603-81
Fall Semester 2017

 

Instructor

John I. Moore, Jr. Phone: 843-953-7883
Office: Thompson Hall 209       E-mail: john.moore@citadel.edu

 

Course Description

A course in software design using design patterns as a tool for communicating software design solutions and as an aid in software refactoring. Creational, structural and behavioral patterns are emphasized. Also covered are finding and documenting software development patterns. The Unified Modeling Language is used as the design tool for software patterns, and programming projects are in an object-oriented programming language.

Prerequisite: Experience designing and developing software using an object-oriented programming language such as Java, C++, or C#.

 

Learning Outcomes

Upon successful completion of this course, a student will be able to

 

Class Schedule

Thursday, 5:30-8:15 p.m., Thompson Hall 303.

 

Textbook

Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison Wesley, 1995. ISBN: 978-0201633610.

Also: Course Notes, Handouts, and Design Pattern References.

 

Grading

The final grade for the course is based on 6 grades as follows:

 

Miscellaneous Grading Policies

  1. This course will contain a number of graded programming/design projects and presentations. Except for explicitly assigned joint projects, students are required to work individually on all graded work done outside of class.
     
  2. In general programming/design projects and presentations will be due one week after they are assigned unless noted otherwise by the instructor. A late project will have its grade lowered by one letter, and projects more than one week late might not be accepted, based on the discretion of the instructor. Project grades will be based on the following factors: correctness of programming logic, overall design and structure, style, clarity, and enhancements.

    Please note: Correctness of programming logic is the most important factor. It is usually better to turn a correct program in late than to turn it in on time with logic errors. Also, you should never turn in a program that fails to compile or run.
     
  3. Unless otherwise noted, weekly quizzes will come directly from the material covered in the previous week’s course notes and/or reading assignment.
     
  4. Class attendance and participation can influence borderline grades.
     
  5. Incomplete grades are given only in unusual circumstances. Consult the college catalog for policy on incomplete work.

 

Office Hours

Monday 9:30-11:00 a.m., 2:30-3:30 p.m.
Wednesday  9:30-11:00 a.m., 2:30-3:30 p.m.
Thursday  4:30-5:30 p.m.
Friday  9:30-11:00 a.m.

Other times by appointment

 

Important Dates

Oct. 5 Test 1
Oct. 10 Last day to withdraw with a grade of “W”
Nov. 16 Test 2
Nov. 20-24 Fall Break (Study during break!)
Dec. 7 Final Exam

 

Expectations

  1. Do not miss an assigned test or the final exam without a valid excuse! The instructor gets to determine whether or not an excuse is valid. When possible, students should notify the instructor in advance if they will be unable to take an assigned test. All make-up tests will be given outside of normal class time. Once a test has been given in class, any subsequent make-up tests may differ significantly.
     
  2. Show up for class on time and prepared. That means that you have read the appropriate sections from the book plus any related course notes or handouts, and you have completed all assigned projects, presentation, and homework. If a test has been assigned, you should be prepared to take the test. If you were late to class or absent from the previous class meeting, you are responsible for getting class notes and assignments from another student in the class or from the instructor.
     
  3. If you are late to class, it is possible that you have already been marked absent by the time you arrive. It is your responsibility to notify the instructor that you were late rather than absent.
     
  4. Take care of any personal needs outside of class time. Except for emergencies, you should not need to go to the bathroom, get a drink of water, etc. If you need to leave the room at any time while class is in session, you should ask for permission.
     
  5. Personal conversations are disturbing to other students and to the instructor. Please be courteous and respect the rights of others.
     
  6. Cell phones should be kept out of sight and set to a silent or vibrate setting mode during class.
     
  7. You should respect the property of your college. No eating, drinking (other than water), smoking, dipping, chewing tobacco, writing or carving on the desks, vandalism, etc. in the classrooms.

 

Daily Schedule

Dates Topics Covered
Aug. 24 Overview of Object Technology, OOAD, and UML
Aug. 31 Overview of Object-Oriented Design Patterns
Sep. 7 Creational Patterns
Sep. 14 Behavioral Patterns
Sep. 21 Structural Patterns
Sep. 28 Additional Creational Patterns
Oct. 5 Test 1
Oct. 12 Additional Structural Patterns
Oct. 19 Additional Structural Patterns
Oct. 26 Additional Behavioral Patterns
Nov. 2 Additional Behavioral Patterns
Nov. 9 Additional Design Patterns; Using Design Patterns
Nov. 16 Test 2
Nov. 20-24 Fall Break (Study during break!)
Nov. 30 Design Patterns in Context; Review
Dec. 7 Final Exam