At SDU, algorithms is a focus area, 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.
"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.
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 2019/2020, we will be offering the following courses within the area of algorithms:
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 Thesis projects
The following are examples of previous Master Thesis 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.