The following courses are taught by members of the ALGA cluster in the academic year 2022-2023. (For previous years, see this page.)
2IHA10
Algorithms and Data Structures
In this course, you will develop basic skills and knowledge to create and reason about efficient algorithms to solve computational problems. To be able to reason about algorithms efficiently we first consider the structure and textual form of formal proofs. We then explore different basic algorithms and data structures for frequently appearing problems, using the proving techniques learned to show their correctness. We consider basic algorithm design techniques, correctness analysis, and efficiency analysis of algorithms.
2ILC0
Algorithms
2IMA10
Advanced Algorithms
2IMA20
Algorithms for Geographic Data
A significant part of today's data is geographic, has a geographic component (is geo-referenced), or benefits from geographic interpretation. To analyze these data requires advanced algorithmic tools. This course takes a data-driven perspective on algorithm design for geographic data.
2IMA15
Geometric Algorithms
In many areas of computer science such as robotics, computer graphics, virtual reality, and geographic information systems, it is necessary to store, analyze, and create or manipulate spatial data. This course deals with the algorithmic aspects of these tasks: we study techniques and concepts needed for the design and analysis of geometric algorithms and data structures. Each technique and concept will be illustrated on the basis of a problem arising in one of the application areas mentioned above.
2IMA35
Massively Parallel Algorithms
2IT80
Discrete Structures
In this course we will cover basic discrete mathematical structures that occur in many contexts in computer science. You will learn the basic skills and knowledge to formally reason about these structures. Among others we will cover relations and ordering, counting arguments, and graphs and trees.
JBI026
Discrete Mathematics
Many aspects of Data Science rely on computers to do the heavy lifting for handling data, computing results, running simulations, etc. To effectively use the computer as a tool, this course provides the fundamental concepts to reason about what computers can and cannot compute. For certain problems exact solutions can be computed by algorithms, and we need methods to establish that an algorithm is correct, and to analyze its efficiency.
2IL50
Data Structures
There are many aspects to the study of data structures, and the algorithms that operate upon them. In this course, you will learn the basic skills and knowledge to develop efficient algorithms to solve computational problems and to make informed choices between different solutions for the same problem.
2IMA25
Exact Algorithms for NP-hard Problems
2ILH0
Heuristic Algorithms
2IMA00
Seminar Algorithms
2IMA30
Topological Data Analysis
Topological data analysis is an approach to the analysis of datasets using techniques from topology. One of the key messages around topological data analysis is that data has shape and the shape matters. Extraction of information from datasets that are high-dimensional, incomplete and noisy is generally challenging. Topological data analysis provides a general framework to analyze such data in a manner that is insensitive to the particular metric and provides dimension reduction and robustness to noise. The application of topological techniques to traditional data analysis, which before has mostly developed on a statistical setting, has opened up new opportunities. This course is intended to cover the basics of computational topology that underlie such techniques along with the developments of generic techniques for various topology-centered problems.
JBI040
Algorithmic Aspects of Data Analysis
This course teaches students how data analysis problems can be formulated in precise mathematical terms, how to apply algorithmic techniques to solve the resulting optimization or decision problems, and how to implement the resulting algorithms. We will use an important data-analysis task, namely clustering, as a vehicle. The course will give an overview of different approaches to clustering, starting with evaluation metrics - how can we define what a good clustering looks like - and with a focus on algorithms for computing a clustering. We explore how certain data structures and algorithmic techniques can be used to gain considerable speedups. We will discuss how the curse of dimensionality affects the clustering problem, and discuss dimension-reduction techniques that can be used to mitigate these effects.
2IRS0
Bachelor Research Project
Students do a research project in groups of two or three students. The topic of the research project is determined by the supervisor, in consultation with the students.
HA103/HA104
Honors track Competitive Programming and Problem Solving
In the honors track Competitive Programming and Problem Solving the students will learn advanced techniques to solve algorithmic problems and the skills to efficiently implement such algorithms. These skills will be put to the test by participating in international programming contests. The experienced coaches will guide the students in their training to become top level algorithmic problem solvers, which are highly sought after nowadays by large tech companies.