COMP40070 Design Patterns

Academic Year 2021/2022

This module examines Design Patterns in detail, their role in the software lifecycle, how and where they should be applied, and the potential benefits that accrue from their use.

NB. This is a professional module which is part of a professional MSc

Show/hide contentOpenClose All

Curricular information is subject to change

Learning Outcomes:

On successful completion of this module, a student should be able to: appreciate the benefits of design patterns, apply design patterns in their own programs, analyse the relationships between various design patterns, understand the application of design patterns in an industrial context, synthesize knowledge of design patterns with previous industrial experience

Student Effort Hours: 
Student Effort Type Hours




Autonomous Student Learning




Approaches to Teaching and Learning:
Combination of lectures and hands-on practical work. 
Requirements, Exclusions and Recommendations

Not applicable to this module.

Module Requisites and Incompatibles
Not applicable to this module.
Assessment Strategy  
Description Timing Open Book Exam Component Scale Must Pass Component % of Final Grade
Examination: End of module written exam. 2 hour End of Trimester Exam Yes Graded No


Continuous Assessment: Lab exercises and reports. Varies over the Trimester n/a Graded No


Assignment: Warm-up programming exercise Varies over the Trimester n/a Pass/Fail Grade Scale No


Essay: Term paper on design patterns Varies over the Trimester n/a Graded No


Carry forward of passed components
Remediation Type Remediation Timing
In-Module Resit Prior to relevant Programme Exam Board
Please see Student Jargon Buster for more information about remediation types and timing. 
Feedback Strategy/Strategies

• Feedback individually to students, post-assessment
• Group/class feedback, post-assessment
• Peer review activities
• Self-assessment activities

How will my Feedback be Delivered?

Not yet recorded.

There is no required text for this module, and it is probably possible to study this module using only the notes (which will be published on the web) and various web resources. The Gamma et al and Olsen texts are the most relevant for this module; the others listed below would also be of use.

Erich Gamma et al, Design Patterns:Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995.
This is the bible of the patterns movement and is still one of the best books about on design patterns. Most of the patterns we look at in this module are covered in this book.

Russ Olsen, Design Patterns in Ruby, Pearson 2008.
This one of the best books around both on Ruby and on Design Patterns. It’s quite short and one that is worth reading cover-to-cover. Pithy, short examples. Very much a programmer’s book.

Eric Freeman et al, Head First Design Patterns, O’Reilly, 2004
An easy-to-read books that explains the Gamma et al patterns in a very digestible format. The “Heads First” idiosyncratic style isn’t for everyone though.

Josh Kerievsky, Refactoring to Patterns, Addison-Wesley, 2005.
This text looks in detail at the topic of refactoring a program to introduce design patterns. We’ll spend some time on this topic.

A.N. Other, Java Patterns Revealed!, etc. some publisher, some year.
This a catch-all for the plethora of “Java+Patterns” books on the market. Those I’ve encountered make a contribution and are certainly worth reading, though none stands out in my opinion.
Timetabling information is displayed only for guidance purposes, relates to the current Academic Year only and is subject to change.

There are no rows to display