Course code TUD15
Course title Software Design Patterns
Institution Delft University of Technology
Course address Van Mourik Broekmanweg 6, 2628 XE Delft
City Delft
Minimum year of study 3rd year
Minimum level of English Fluent
Minimum level of French None
Key words


software engineering, design patterns, advanced programming

Language English
Professor responsible Dr. Alberto Bacchelli
Participating professors


Dr. Alberto Bacchelli

Number of places Minimum: 35, Maximum: 40, Reserved for local students:


This course provides understanding in the most popular design patterns for software engineering. This course focuses on design patterns starting from an existing common problem and guiding the students through the most elegant solution that can be implemented with design patterns. The course will be also focused on developing the right critical thinking when using design patterns. Students will have the chance to implement design patterns in a small game they will develop during the course, to acquire hands-on knowledge on the theory. At the end of this course students will have both gained the theoretical knowledge about design patterns and constructed a software project, using the pull-based development model, that implements these patterns.

Programme to be followed


  Lecture 1: Pull-based development model, Introduction to Design Patterns

  Lecture 2: Strategy, Observer, Decorator - Design Patterns

  Lecture 3: Abstract Factory, Singleton, Adapter – Design Patterns

  Lecture 4: Iterator, Composite, Command – Design Patterns

  Lecture 5: State, Model-View-Controller – Design Patterns




Background on object-oriented programming (possibly Java) is essential: The students will be required to build a fully working version of a game (Tetris style) within the first day of the course using object-oriented programming. For this course an intermediate to good knowledge of English is indispensable.

Course exam


The exam will consist in a 30-minute multiple choice test, and in the presentation of the software project built during the week and how and why design patterns are implemented in it.