DM562: Scientific Programming

Study Board of Science

Teaching language: Danish or English depending on the teacher, but English if international students are enrolled
EKA: N330025102
Censorship: Second examiner: Internal
Grading: 7-point grading scale
Offered in: Odense
Offered in: Autumn
Level: Bachelor

STADS ID (UVA): N330025101
ECTS value: 10

Date of Approval: 15-03-2021

Duration: 1 semester

Version: Archive


New course E18 (Autumn 2018)
The course is co-read with DM857 and DS830

Entry requirements

The course cannot be followed if the student has passed DM536, DM550, DM857, DS800, DS801, DS830 or MM560, or if the student has DM536, DM550, DM857, DS800, DS801, DS830 or MM560 mandatory in their curriculum.

Academic preconditions


Course introduction

The course gives an introduction to structured programming, with a focus on the application domain scientific programming. Overall, the course provides an academic basis for solving problems by modeling and implementing programs, including teaching the students how to apply methods from linear algebra in practical settings via programming. 

The course builds on the knowledge acquired in the course MM505, and provides the students with the necessary prerequisites for several courses, in particular DM507 and MM546, that appear later in the degree.

In relation to the learning outcomes of the degree the course has explicit focus on:
  • giving the competence to plan and execute computer programs
  • knowledge of common programming methods   developing skills in programming in different types of programming languages
  • developing skills in software development
  • developing skills in constructing bigger software systems
  • developing skills in deciding and justify professional decisions
  • developing skills in describing, formulating and disseminating problems and results to either other professional or non-specialists or collaborative partners and users
  • giving the competence to handle complex and development-oriented situations in study and work contexts
  • giving the competence to identify one's own needs for learning and structure one's own learning in different learning environments
  • giving the competence to design higher level software architectures

Expected learning outcome

The learning objective of the course is that
the student demonstrates the ability to:

  • design models for concrete problems.
  • devise a program structure based on the model.
  • implement the planned program in the concrete programming language used.
  • find and use adequate elements in the program library belonging to
    the language.
  • plan and execute a testing of the program.
  • design and implement recursive solutions of problems;
  • use basic tree structures and algorithms for these.
  • make programs which uses the methods from linear algebra


The following main topics are contained in the course:

  • The basic structuring tools sequence, repetition, conditional instruction and subprogram.
  • Fundamental data structures such as lists, maps, and trees.
  • Structured programming techniques, including examples and applications
  • Recursive data structures.
  • Examples of abstract data types and their realization.
  • Linear algebra and programming
  • Applications of programming based on methods from linear algebra 

The course is taught in Python.


See itslearning for syllabus lists and additional literature references.

Examination regulations

Exam element a)


Autumn and January






Second examiner: Internal


7-point grading scale


Full name and SDU username


Normally, the same as teaching language

Examination aids


ECTS value


Additional information

The portfolio exam with oral defence consists of small individual assignments and a group project (with written report and oral defense). The oral defence takes place during the exam period in january.
The examination form for re-examination may be different from the exam form at the regular exam.

Indicative number of lessons

56 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: 28 hours
  • Training phase: 28 hours, of which 20 hours of tuorials and 8 hours of laboratory

The intro phase facilitates an introduction to new material and topics, which in the skills training phase are processed with exercises prepared at home and discussed in class to validate the acquired knowledge.

The training phase is divided into tutorials and labs, where students learn the competencies that enable them to translate their knowledge into a solution and subsequently into concrete computer programs.

In the study phase, the students work independently to increase their understanding and their competencies regarding the content of the subject. Activities in the study phase: Programming of small assignments and projects.

Teacher responsible

Name E-mail Department
Marco Peressotti Institut for Matematik og Datalogi, Datalogi, Artificial Intelligence, Cybersecurity, and Programming Languages


Administrative Unit

Institut for Matematik og Datalogi (datalogi)

Team at Educational Law & Registration


Recommended course of study