Explore UCD

UCD Home >

COMP40070

Academic Year 2026/2027

Design Patterns (COMP40070)

Subject:
Computer Science
College:
Science
School:
Computer Science
Level:
4 (Masters)
Credits:
10
Module Coordinator:
Assoc Professor Mel Ó Cinnéide
Trimester:
Autumn
Mode of Delivery:
Online
Internship Module:
No
How will I be graded?
Letter grades

Curricular information is subject to change.

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

About this Module

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

The United Nations identified seventeen Sustainable Development Goals (SDGs) as core to the 2030 Agenda for Sustainable Development, and UCD contributes in general to SDG 4 Quality Education. Further SDGs explored within this module if relevant are listed below. A scale of 1 - 5 indicates the extent to which the SDG is covered.


 

Student Effort Hours:
Student Effort Type Hours
Lectures

24

Practical

36

Autonomous Student Learning

140

Total

200


Approaches to Teaching and Learning:
Combination of lectures and hands-on practical work.

Requirements, Exclusions and Recommendations
Learning Requirements:

Students joining this module must have a minimum 2.1 honours degree in Computer Science (or a cognate discipline), and have a subsequent two years or more experience in the software industry as a software engineer/developer. Students on the Masters in Advanced Software Engineering have already been assessed and can take this module. This module is not available to students on other programmes. If interested in this topic, consider taking COMP47480 Contemporary Software Development as an alternative.


Module Requisites and Incompatibles
Not applicable to this module.
 

Assessment Strategy
Description Timing Component Scale Must Pass Component % of Final Grade Component repeat (in-module) Offered
Reflective Assignment: Lab Journal based on practical work undertaken during module Week 1, Week 2, Week 3, Week 4, Week 5, Week 6, Week 7, Week 8, Week 9, Week 10, Week 11, Week 12 Graded No
40
No
Exam (In-person): Final written exam. Week 15 Graded No
60
No

As part of UCD's student support, under the Additional Consideration policy, extensions may be available for the following assessments in the module: Assignment (including essay/poster), Portfolio, Reflective Assignment, Report(s), and Individual Project.


Carry forward of passed components
Yes
 

Resit In Terminal Exam
Spring No
Please see Student Jargon Buster for more information about remediation types and timing. 

Feedback Strategy/Strategies

• 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 is 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.

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.