DM575: Object Oriented Programming

Study Board of Science

Teaching language: Danish or English depending on the teacher
EKA: N330060102
Assessment: Second examiner: Internal
Grading: 7-point grading scale
Offered in: Odense
Offered in: Spring
Level: Bachelor

STADS ID (UVA): N330060101
ECTS value: 7.5

Date of Approval: 12-10-2022

Duration: 1 semester

Version: Archive

Entry requirements

The course cannot be followed if the student has passed DM550 or if the student has DM550 mandatory in their curriculum.

Academic preconditions

The student is expected to be familiar with the basics of structured and imperative programming. These can obtained e.g. by having followed DM574 Introduction to Programming.

Course introduction

The goal of the course is to let students develop the ability to “think with objects” when designing and building a complex software system.  The course provides an academic basis for object-oriented design and programming.

In relation to the learning outcomes of the degree the course has explicit focus on:
  • knowledge of a large selection of key algorithms and data structures developed in the field of computer science;
  • program in several types of programming languages;
  • construct large-scale software systems;
  • make and justify academically related decisions;
  • describe, formulate and disseminate issues and results to both peers and non-specialists or partners and users;
  • handle complex and development-oriented situations in study and work contexts;
  • develop new variants of key algorithms and data structures developed in computer science;
  • enter into academic collaborations with a professional approach stemming from group-based project work;
  • identify one’s own learning needs and structure one’s own learning in different learning environments.
The course's content is essential for later courses in algorithms and software development, where the students are required to be able to program complex software systems.

Expected learning outcome

The learning objectives of the course are that the student demonstrates independence in the analysis, design, and programming of complex systems using an object-oriented approach.
Specifically, after the course the student is expected to be able to:

  • design object-oriented models for concrete scenarios;
  • devise a class hierarchy based on the model;
  • describe and document the planned class hierarchy using standard formats like UML;
  • identify and apply common object-oriented design patterns.
  • implement the planned class hierarchy in the concrete programming language used;
  • plan and execute systematic testing of the class hierarchy and and object-oriented program (unit, component, integration).


    The following main topics are contained in the course:

    • Object-oriented design, architectures, and principles.
    • Abstraction, encapsulation, inheritance, polymorphism.
    • The basics of UML class and sequence diagrams.
    • Common design patterns such as factory, singleton, composite, decorator, observer, strategy, command, visitor.

    The course is taught in Java.


    See itslearning for syllabus lists and additional literature references.

    Examination regulations

    Exam element a)


    Spring and June


    Portfolio with oral defense




    Second examiner: Internal


    7-point grading scale


    Full name and SDU username


    Normally, the same as teaching language

    Examination aids

    Allowed, a closer description of the exam rules will be posted in itslearning.

    ECTS value


    Additional information

    Portfolio exam consisting of :

    • small individual assignments
    • group project , which consists of a written report with oral defense). Oral defense is held during the exam period

    Indicative number of lessons

    48 hours per semester

    Teaching Method

    At the faculty of science, teaching is organized after the three-phase model ie. intro, training and study phase.
    • Intro phase: 24 hours
    • Training phase: 24 hours
    Activities during the study phase:
    • Self study of various parts of the course material.
    • Reflection upon the intro and training sections.
    • Solving small assignments, individually or in small groups.

    Teacher responsible

    Name E-mail Department
    Marco Peressotti Concurrency


    Administrative Unit

    Institut for Matematik og Datalogi (datalogi)

    Team at Educational Law & Registration


    Offered in


    Recommended course of study

    Profile Education Semester Offer period

    Transition rules

    Transitional arrangements describe how a course replaces another course when changes are made to the course of study. 
    If a transitional arrangement has been made for a course, it will be stated in the list. 
    See transitional arrangements for all courses at the Faculty of Science.