Official course description:

Full info last published 1/08-22
Course info
ECTS points:
Course code:
Participants max:
Offered to guest students:
Offered to exchange students:
Offered as a single subject:
Price for EU/EEA citizens (Single Subject):
10625 DKK
BSc in Software Development
Course manager
Associate Professor
Course semester
Forår 2022
31 January 2022
31 August 2022
Exam type
ekstern censur
Grade Scale
Exam Language
The overall goal of the course is to introduce students to a selection of the most important problem solving and decision support techniques within AI and optimization.

Computers are increasingly used to support decision making, exploiting that computers can perform computations at scale, on large amounts of data, requiring large amounts of computation steps, or both. This course studies how to solve such decision problems on computers.

The goal is to make students able to identify, design, and implement efficient solutions to the kind of decision problems that arise in modern organizations and IT products. The expectation is that a student mastering the material is able to work in internationally leveled business intelligence and optimization groups as well as in development departments of “intelligent” applications as used in smart phones, computer games, enterprise resource planning systems, and decisions support systems.

The course will cover the followings topics:

Search algorithms:
  • Informed search: greedy heuristic search, A*, breadth-first heuristic search
  • Local search: hill-climbing, simulated annealing, genetic algorithms, tabu search, population-based search
  • Adversarial search: Minimax search, alpha-beta pruning
Propositional logic:
  • Representations: disjunctive (DNF), conjunctive (CNF), and if-then-else (INF) normal forms, Binary Decision Diagrams (BDDs)
  • Reasoning: resolution, SAT-checking
Constraint programming:
  • Local consistency: arc-consistency, path-consistency, i-consistency
  • Look-ahead search strategies: forward-checking, arc-consistency look-ahead, maintaining arc-consistency
Linear Programming:
  • Simplex algorithm
  • Duality
Formal prerequisites

  • You must have passed an elementary programming course. (for example Introductory Programming)
  • You must have passed a discrete mathematics course (for example Foundations of Computing, Discrete Mathematics)
  • You must follow in parallel, or have passed an introductory algorithms course (for example Algorithms and Data Structures).
If you are an external student, it is important that you have programming-experience from elsewhere, i.e. through a daily use in a developer position in the software industry.

Intended learning outcomes

After the course, the student should be able to:

  • Identify decision problems in work processes and IT products that can be solved by AI.
  • Apply advanced AI modeling techniques to describe these problems formally.
  • Implement AI software components to solve these problems efficiently.
  • Apply standard AI models and solvers.
  • Participate in concept development of advanced decision support systems.
Learning activities

Learning activities consist of lectures and exercises

Mandatory activities

  • Mandatory Exercises. You must hand-in and pass 3 out of 10 exercises to qualify for taking the exam. You can start working on a mandatory problem, as soon as the exercise each week is posted in LearnIT. This will at the latest happen on the day of the recitation of the exercise. You hand in a mandatory problem at the next recitation session. This means that you have at least one week to work on the exercise. You can work on mandatory problems in groups, but they must be handed in individually. The teaching assistants will spend one week evaluating the exercises and they will be handed back at the next recitation session. Students who do not pass 3 exercises will get a possibility to turn in revised solutions before the exam. Details will be available in LearnIT.

  • Mandatory projects. During the semester there will be 3 implementation projects. You must hand-in and pass 2 of these to qualify for taking the exam. The projects are made in groups of 2-3 students. You approximately 3 weeks to finish each project. Students who do not pass 2 projects will get a possibility to turn in revised solutions before the exam. Details will be available in LearnIT.

The student will receive the grade NA (not approved) at the ordinary exam, if the mandatory activities are not approved and the student will use an exam attempt.

Course literature

The course literature is published in the course page in LearnIT.

Student Activity Budget
Estimated distribution of learning activities for the typical student
  • Preparation for lectures and exercises: 20%
  • Lectures: 20%
  • Exercises: 20%
  • Assignments: 15%
  • Project work, supervision included: 15%
  • Exam with preparation: 10%
Ordinary exam
Exam type:
A: Written exam on premises, External (7-point scale)
Exam variation:
A11: Written exam on premises. Open book exam.
Exam duration:
4 hours

Exam type:
B: Oral exam, External (7-point scale)
Exam variation:
B22: Oral exam with no time for preparation.
Exam duration per student for the oral exam:
20 minutes

Time and date