DM582: Advanced Algorithms

Study Board of Science

Teaching language: Danish or English depending on the teacher, but English if international students are enrolled
EKA: N330070102
Assessment: Second examiner: External
Grading: 7-point grading scale
Offered in: Odense
Offered in: Spring
Level: Bachelor

STADS ID (UVA): N330070101
ECTS value: 7.5

Date of Approval: 20-03-2023


Duration: 1 semester

Version: Approved - active

Entry requirements

The course cannot be chosen by students who have passed MM541, DM538, or DM551/MM851.

Academic preconditions

Students taking the course are expected to:
  • Have knowledge of basic algorithms and data structures as well as implementations of such in an imperative programming language, including stacks, queues, search trees, and priority queues, as well as sorting methods and basic graph algorithms.
  • Have knowledge of algorithm design techniques and be able to analyze algorithms using asymptotic analysis and be able to compare asymptotic results.
  • Be able to use basic mathematical argumentation, including logical expressions, proofs by induction and contradiction, counting techniques, and discrete probability theory.
These competences can be achieved through, for instance, DM549, DM578, and DM581.

Course introduction

The aim of the course is to enable the student to use randomization and probabilistic methods in the design and analysis of algorithms and to familiarize the student with advanced algorithmic topics such flows of networks and analysis techniques such as amortized analysis.

The course builds on the knowledge acquired in courses on algorithms and data structures, discrete mathematics, and probability theory.
The course forms the basis for bachelor projects as well as elective candidate level courses in extension of the course topics.

In relation to the competence profile of the degree, the focus of the course is to give the student the necessary competences to perform probabilistic analyses of algorithms, use randomization in algorithms design and be able to analyze their time complexities. Further, the student should be able to apply network flow algorithms and understand their limitations and analyses. Finally, the student should be able to analyze algorithms and data structures using techniques from amortized analysis.

Expected learning outcome

The learning objectives of the course are that the student demonstrates the ability to:
  • Apply the topics on discrete probability theory to estimate the expected running time of algorithms
  • Develop and analyze basic randomized algorithms
  • Apply techniques from universal hashing to choose hash functions with good expected performance
  • Formulate a flow-model for problems resembling those covered in the course
  • Apply techniques from the course to assess the amortized time complexity of operations on a data structure

Content

The following main topics are contained in the course:
  • Randomized algorithms
  • Probabilistic analysis of algorithms
  • The probabilistic method
  • Universal and perfect hashing
  • Flows in networks
  • Amortized analysis

Literature

See itslearning for the syllabus.

Examination regulations

Exam element a)

Timing

Spring and June

Tests

Portfolio with oral defense

EKA

N330070102

Assessment

Second examiner: External

Grading

7-point grading scale

Identification

Full name and SDU username

Language

Normally, the same as teaching language

Examination aids

To be announced during the course

ECTS value

7.5

Additional information

Port folio consists of  two  elements:

  1. Mandatory assignments
  2. Oral examination - held in June

An overall assessment is made of the two elements.
Reexamination is oral.

Indicative number of lessons

70 hours per semester

Teaching Method

At the faculty of science, teaching is organized after the three-phase model, i.e., intro, training, and study phase.

  • Intro phase: 40 lessons
  • Training phase: 30 lessons

A modified variant of a classic lecture is used in the intro phase, where foundational concepts and methods are presented theoretically as well as through examples on concrete data. Questions and discussions are encouraged. The training phase revolves around exercises and discussion topics relating to the material introduced in the preceding intro phase hours. During the training hours, the students can work specifically with the more challenging topics. Questions that arise during the study phase can be brought up during meeting times.

Teacher responsible

Name E-mail Department
Kim Skak Larsen kslarsen@imada.sdu.dk Algoritmer

Timetable

Administrative Unit

Institut for Matematik og Datalogi (datalogi)

Team at Educational Law & Registration

NAT

Offered in

Odense

Recommended course of study

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.