Print

Discrete Mathematics and Algorithms

Code

IT-DMA1

Version

3.0

Offered by

ICT Engineering

ECTS

5

Prerequisites

​Mathematics equivalent to the admission requirements. The course also requires basic Java programming skills. The latter can be acquired by following the course PRO1 (previously 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.

Knowledge

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

Skills

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

Competences

 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

Topics

Teaching methods and study activities

The 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.

Resources

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.

Evaluation

Examination

Prerequisites for exam:

1. Attendance (≥ 75%) 
2. Six out of eight mandatory assignments approved.

If the exam prerequisites are not met, the student must complete a written assignment in WISEflow to qualify for the re-exam.
This assignment will be scheduled after the ordinary exam. 

Type of exam:  
The course is evaluated based on a 3-hour written test.
The test is completed in the FLOWlock browser in WISEflow.
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.

Re-exam:
Please note that re-exams may be oral.

Grading criteria

Grading based on the Danish 7-point scale.

Additional information

Responsible

Richard Brooks (rib)

Valid from

01-08-2023 00:00:00

Course type

Keywords

Number systems, Modular Arithmetic, Summation & Sequences, Algorithm efficiency, Sorting, Binary trees and search trees, Data structures