Design Patterns

  • Class 30
  • Practice 15
  • Independent work 105
Total 150

Course title

Design Patterns

Lecture type


Course code






Lecturers and associates

Course objectives

Introduction to object oriented design; Overview of UML; Structure diagrams.
Dynamic dispatch: definition of method-call; Subtyping; Object-oriented idioms for encapsulation; Data layout for objects and activation records.
Simplicity, regularity, orthogonality.
Introduction to software design patterns; Design patterns; Refactoring designs using design patterns.
Behavioral patterns.
Behavioral patterns.
Structural patterns; Eager vs. delayed evaluation.
Midterm exam.
Creational patterns; Static and dynamic linking.
Structural patterns.
Collectional patterns.
Structural patterns.
Behavioral patterns.
Creational patterns.
Final exam.

Required reading

(.), Design Patterns. Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Addison-Wesley Professional. 2009.,(.), Agile Software Development: Principles, Patterns, and Practices. Robert C. Martin. Prentice Hall. 2003,

Minimal learning outcomes

  • Recognize symptoms of inadequate software design
  • Discuss advantages of dynamic polymorphism, templates, and duck typing
  • Explain the major principles of software design and recognize cases of their violation
  • Evaluate the quality of multiple software designs based key design principles
  • Recognize different design patterns in uncommented code
  • Compare the adequateness of different design patterns in the context of a given design problem
  • Apply design principles for conceiving high-quality software components
SHARE : Facebook Twitter