Discrete Mathematics and Algorithms





Offered by

ICT Engineering




Mathematics equivalent to the admission requirements. The course also requires basic Java programming skills. The latter can be acquired by following the course SDJ1 simultaneously with DMA.

Main purpose

The aim of the course is to train students in the mathematical concepts and process of algorithmic thinking, allowing them to build simpler, more efficient solutions to real-world computational problems by building on the principles of mathematics.
The course will enable the student to apply a wide range of existing algorithms and data structures for fundamental problems, as well as general methods for developing new algorithms and mathematical tools for analyzing the correctness and efficiency of algorithms. This is of paramount importance for the ability to develop efficient software, and is central to the understanding of upper and lower bounds for computational problems.
In relation to the competence profile of the Software Technology programme it is the explicit focus of the course to:
• Give the competence to apply new variants of central algorithms and data structures developed within software technology.
• Give skills to analyse pros and cons of algorithms, in particular with respect to the use of resources.
• Give knowledge and understanding of a selection of core algorithms and data structures developed within software technology.


Upon completion of this course, students will be able to:
• Describe fundamental concepts in number theory and modular arithmetic
• Outline the basic principles of different sorting algorithms
• Summarize key aspects of various data structures


Upon completion of this course, students will be able to:
• Give precise arguments for the correctness or incorrectness of an algorithm
• Use key concepts of discrete mathematics for solving programming problems resourcefully
• Analyze and compare the time and space usage of algorithms and data structures


 Upon completion of this course, students will be able to:
• Adapt known algorithms and data structures to special cases of known problems or new problems
• Design and implement small programs, using algorithms and data structures taught in the course.
• Evaluate the performance of Java code with the objective of designing and implementing algorithms that optimise the code


Teaching methods and study activities

mode of teaching will be classroom based and will involve lectures by the
teacher and exercises made in class. The students are also expected to work on
exercises both before and after classes. The total work-load for the student is
expected be around 130 hours


Weiss, M A , Data Structures and Algorithm Analysis in Java, 3rd ed., Pearson Education, Inc., Upper Saddle River.
Additional material will be uploaded to Itslearning.



Prerequisites for exam:
If the following requirements are not met, the student will not qualify for the exam:

i.   The student must have an attendance of at least 75%.
ii.  The student must hand in 8 mandatory assignments.

Exam type:
The course is evaluated based on a 4 hour written test.
The test is completed in the Flow-lock browser in Wiseflow.
The final grade will reflect an over-all assessment of the mandatory assignments and the written test.
The final test must, however, be awarded a passing grade in order for the final grade to be a passing grade.
Internal examiner.

Tools allowed:
The students are allowed to use any notes, books, and/or other written/printed material. Any type of communication between students or between a student and an external party is prohibited and will be considered a violation of the exam rules.

Please note that re-examinations may take a different form than the ordinary exams.

Grading criteria

Grading based on the Danish 7-point scale.

Additional information


Richard Brooks

Valid from

8/1/2021 12:00:00 AM

Course type

Compulsory Course for all ICT Engineering
1. semester


<div>Number systems, Modular Arithmetic, Summation &amp; Sequences, Algorithm efficiency, Sorting, Binary trees and search trees, Data structures</div>