Copenhagen School of Design and Technology


Software Design Patterns (EN)

Danish title
Software design patterns (EN)
Study programme
Software Development
Type of education
Full time education
Level of education
Bachelor (top-up)
6. semester
Duration of the subject/module
16 weeks
Programme elements
Start time
Lygten 37, København NV
Subject number
Responsible for the subject(s)/modul(es)
Andrea Corradini
Christian Ole Kirschberg
Constantin Alexandru Gheorghiasa
  • Purpose and learning objectives

    Welcome to Design Patterns. This course is an introduction to software design patterns. A pattern represents a best practice solution to a software problem in a specific context.
    This course is designed for students with some degrees of (object-oriented) programming background. The objective of the course is to get students acquainted with techniques for designing reusable software as well as for organizing, produce and maintain modular systems. Moreover, this course guides students through anti-patterns, common pitfalls and mistakes that people make when they plan, create, and manage software projects.

    Course Aims
    • To provide students with in depth knowledge of combining design patterns and object-oriented programming
    • To provide students with a comprehensive understanding of the underlying principles of several design patterns
    • To allow students to develop practical solutions to real world problems based on design patterns
    • To provide students with the basic capability to identify problematic software designs and code smells


    At the end of the course, students will have comprehensive knowledge and critical understanding of:
    • the underlying design principles single patterns are based on
    • specific contexts in which design patterns can be applied
    • the consequences of applying design patterns to a real system
    • problematic software designs, code smells, and anti-patterns


    At the end of the course, students will have acquired the skills to:
    • analyze and identify the need of including design patterns in the code
    • apply design patterns to the implementation of software


    At the end of the course, students will have acquired the competencies to:
    • analyze and identify problematic issues in the code
    • apply design patterns to the implementation of software
    • locate code smells and anti-patterns in code
    • refactor their code

  • Type of instruction
    The teaching is organised as a variation between class teaching, guest lecturing, company visits, group project work and individual work. The learning is most often problem-based and cross-disciplinary and always practise-oriented. In addition to learning the subject, the student will gain the competences to work individually and in collaboration with others.

    The common aim of the activities is always to set clear intended learning objectives.
  • Subject/module requirement for participation

    Academic requirement for participation
    As it is common for any other course at KEA, students have to make sure that they are sufficiently prepared to learn the course material, handle the course assignments and participate in course interactions.
    Students should have working knowledge of a higher level programming language, ideally an object-oriented one.

  • Exam

    The learning outcomes of the exam are identical with the learning outcomes of the subject(s)/modul(es)

    Prerequisites for access to the examination
    Every week, you are assigned weekly assignments.
    At the end of the course, you are required to hand in a project report that cover the topics discussed during the course.
    Exam in one or more subjects
    Subject/module is tested standalone
    Type of exam
    Oral examination
    Individual exam or group exam
    Exam languages
    The student must give a 10-minute presentation, followed by a 20-minute examination of the student, including grading.
    Type of evaluation
    7-point grading scale
    Internal censure
    Exam criteria
    One aggregate grade is awarded based on an overall assessment of the presentation and the
    following examination.
hours of teaching
hours of preparation
The figure shows the extent of workload related to the subject divided into different study activities.

In the subject Software Design Patterns (EN) you will receive 68 hours of instruction, which corresponds to 90 lessons (1 lesson = 45 min.) and 25% of your total workload for the subject.

The teaching primarily consists of the following activities: classroom teaching.
The preparation primarily consists of the following activities: reading your own notes, reading the curriculum, exam, preparation for the exam.

Read about KEAs Study Activity Model

*KEA can deviate from the number of hours if this is justified by special circumstances