Specialise in Algorithms

Algorithms is a focus area at SDU, with an unusually large and strong research group with more than 9 faculty members and a large variety of courses in the area.

In addition to offering expertise in concrete application areas, a solid background in algorithms makes it easy to enter other subareas of computer science. In a fast-moving field such as computer science, the ability to adapt to ever-changing circumstances is important for a successful career.

"Creativity is often a big part of designing new algorithms. I really enjoy students at SDU surprising us with their ideas," says Joan Boyar, Professor in Computer Science.

Most of our algorithms courses relate to the following:

  • Organization of large datasets, facilitating fast searching and computation: Searching and efficient computation is the essence: String Algorithms lays the foundations for technologies enabling Google's fast searches, Parallel Computing explains algorithms for utilizing large computer clusters, I/O-Efficient Algorithms and Data Structures provides efficient methods for dealing with Big Data, and GPS route planning starts with Computational Geometry.
  • Resource optimization: The application areas are numerous and many different techniques must be employed. Generally-applicable methods and models are introduced in Linear and Integer Programming and Heuristics and Constraint Programming for Discrete Optimization, while more specialized or topic-related ideas are developed in Online Algorithms, Combinatorial Optimization, Scheduling Timetabling and Routing, Network Programming, and Satisfiability.
  • Area-specific algorithms and applications: Sometimes necessary techniques from many different topics need to be pooled to address issues in one domain. Examples include Algorithms in Cheminformatics, Computer Game Programming, and Cryptology.

Associate Professor Lene Monrad Favrholdt standing next to the main SDU campus.

"You will remember 10 % of what you read, 20 % of what you hear and 70 % of what you discuss with others. That’s why we make our students take an active role in classes," says Lene Monrad Favrholdt, Associate Professor in Computer Science.

Courses offered

The Master's degree programme in Computer science at SDU allows you to choose most of your courses according to your personal interests. In the academic year 2020/2021, we will  be offering the following courses  within the area of algorithms:

DM817: Network Programming

Networks, that is, digraphs with lower bounds and capacities on the arcs and algorithms for finding flows with prescribed properties in these, form a very strong modelling tool which can be used to solve many practical problems efficiently as well as derive new structural results about graphs.

Examples are: assigning students to course projects, matching personnel and jobs, scheduling production or personnel, image segmentation, vulnerability of a (communications) network, solving special linear programs, increasing the edge-connectivity of a graph optimally.

The purpose of the course is to give students a thorough understanding of how to model with flows and how to develop efficient algorithms for many problems of both theoretical and practical interest.

Responsible teacher: Jørgen Bang-Jensen

Read full course description

DM819: Computational Geometry

The course is an introduction to the subject, which has become an integral part of applications in computer game implementation and computer graphics in general, geographic information systems, robot control, design, image analysis, etc.

Focus will be on the core problems in computational geometry, like efficiency of algorithms and search structures to handle big amounts of data.

Responsible teacher: Kim Skak Larsen

Real full course description

DM840: Algorithms in Cheminformatics

This course enables students to solve non-trivial discrete computational problems by applying advanced algorithmic ideas, graph theoretical approaches, discrete mathematics and complexity theory to problems motivated from or arising in chemistry.

The course gives an academic basis for writing a Master's thesis that aims to apply core Computer Science approaches to questions in Chemistry, Biology, Physics, or Mathematics.

Responsible teacher: Daniel Merkle

Read full course description

DM860: Online algorithms

The purpose of this course is to study online problems and algorithms.

A problem is online if requests arrive sequentially and the online algorithm must make an irrevocable decision regarding each request without seeing any future requests. Examples of such problems include packing of containers, investment in the stock market, scheduling jobs on processors, reorganisation of symbol tables, reservation of seats in a train, or reservation of bandwidth in a network.

The concentration will be on analysis and design techniques.

Responsible teacher: Joan Boyar

Read full course description

DM872: Mathematical optimization at work

The course focuses on advanced solution techniques to tackle concrete applications from practice.

The course aims at giving the theory behind the solution techniques and above all at gaining practical experience in deploying them on a few concrete numerical instances for optimization problems taken from scheduling and vehicle routing applications.

Examples of such techniques are: delayed column generation, Lagrangian relaxation and Bender decomposition.

Responsible teacher: Marco Chiarandini

Read full course description


MM8xx: Graph Theory

This is a new course, which we will be offering for the first time in Autumn 2020.

The course will give an introduction to Graph Theory and quickly move on to more advanced topics within this area. We will cover topics on both undirected and directed graphs. More specific topics will be announced once they have been decided upon.

Responsible teacher: Anders Yeo

All courses require knowledge of algorithms and data structures, as well as basic discrete mathematics. Some courses require further prerequisites, for example in linear algebra, complexity theory, or other areas. Please see the individual course descriptions.

Master's Thesis projects

The following are examples of previous Master 'sThesis topics within the area of Algorithms:

  • European football placement problems - complexities and exact solutions
  • On-line graph colouring
  • Aircraft routing
  • Lattice-based cryptography
  • Nearest neighbour search in high-dimensional spaces
  • Theoretical aspects of computer-aided chemical synthesis design

Who teaches Algorithms?

Jørgen Bang-Jensen is an expert on graph theory. His main contributions to science come from his good nose for finding the right question to ask. This has led to many discoveries, lots of international collaborations, and has formed the basis of several PhD theses around the world. He always enjoys collaborating with external partners, where he can use his problem-solving skills to identify the core of the problem the company wants solved.

Joan Boyar enjoys general theoretical research, such as trying to understand the nature of online problems, but she also has a patent related to her work on small circuits for cryptographic functions. Her courses in online algorithms and cryptology usually include some of her own research.

Marco Chiarandini is fascinated by the fantastic journey that optimizers undertake to solve timetabling, scheduling and routing problems. The journey moves forward in the abstract world through problem communication, mathematical representation, algorithm design, implementation and experimental analysis. Finally, it returns to the real world with numbers that correspond to actually practicable decisions that yield systemic improvements and can ultimately ameliorate our lives.

Rolf Fagerberg is developing better algorithms and data structures for big data sets. He loves when smart algorithmic ideas and beautiful proofs come together to improve state-of-the-art development. He also enjoys when mathematical models and algorithmic ideas have real impact in applications, such as cheminformatics and game programming.

Lene Favrholdt likes to get to the core of an algorithmic problem. She strives to understand the essence of what results can be obtained, looking for precise and intuitive explanations of how and why they can (or cannot) be obtained. She finds communicating this understanding to colleagues and students in a clear and intuitive way very satisfying.

Kim Skak Larsen situates himself where theory meets practice. He appreciates efficient algorithms and competitive solutions as forming the foundation for implementation of large-scale systems while simultaneously being provably correct and effective. He meets his objectives on efficiency via his focus on data structures and database systems, and his goals on competitiveness through online and approximation algorithms.

Daniel Merkle is an interdisciplinary researcher who is fascinated when he sees the beauty of algorithmic ideas and formal methods. Using advanced methods from graph theory, optimization, parallel computing, and algorithmic engineering, he bridges the gap between theory and practice, solving highly relevant real-world problems arising in chemistry. He collaborates both with other university researchers and with large chemical companies.

Anders Yeo is an expert on Graph Theory (directed graphs, undirected graphs, hypergraphs, etc.) and algorithms (polynomial algorithms, NP-hardness, Fixed parameter tractibility, graph algorithms, etc.). He loves solving both theoretical and practical problems and has a large network of over 80 co-authors. His co-authors and other collaborators are situated around the world and cover a wide area of interests and research topics.