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.
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
2IMG15
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
2IMG00
Seminar Applied Geometric Algorithms
This seminar focuses on one specific area in the field of applied algorithms. This year, we will examine selected areas of robotics and distributed systems, including such fields as multi-robot systems, programmable matter, and self-assembly. These new and emerging areas have sparked the interest of researchers in the algorithms community. During the course of this seminar the students will learn about recent developments in design and analysis of algorithms in application to these areas.
2IT80
Introduction to 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.
JBI020
Foundations of Computing
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
JBP031
Data Structures and Algorithms (JADS)
(Q3 / Q4)
2ILH0
Heuristic Algorithms
2ILX0
Tangible Computing
2IMA00
Seminar Algorithms
2IMG10
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.
2IHA10
Algorithms and Data Structures
(Q1)
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
(Q1)
2IMA10
Advanced Algorithms
(Q1)
2IMG15
Algorithms for Geographic Data
(Q1)
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.
2IRS0
Bachelor Research Project
(Q1)
2IMA15
Geometric Algorithms
(Q2)
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.
2IMG00
Seminar Applied Geometric Algorithms
(Q2)
This seminar focuses on one specific area in the field of applied algorithms. This year, we will examine selected areas of robotics and distributed systems, including such fields as multi-robot systems, programmable matter, and self-assembly. These new and emerging areas have sparked the interest of researchers in the algorithms community. During the course of this seminar the students will learn about recent developments in design and analysis of algorithms in application to these areas.
2IT80
Introduction to Discrete Structures
(Q2)
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.
JBI020
Foundations of Computing
(Q2)
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
(Q3)
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
(Q3)
JBP030-B-6
Data Structures and Algorithms
(Q3 / Q4)
2ILH0
Heuristic Algorithms
(Q4)
2ILX0
Tangible Computing
(Q4)
2IMA00
Seminar Algorithms
(Q4)
2IMG10
Topological Data Analysis
(Q4)
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
(Q4)
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.
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.
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.
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.
2IMG00
Seminar Applied Geometric Algorithms
This seminar focuses on one specific area in the field of applied algorithms. This year, we will examine selected areas of robotics and distributed systems, including such fields as multi-robot systems, programmable matter, and self-assembly. These new and emerging areas have sparked the interest of researchers in the algorithms community. During the course of this seminar the students will learn about recent developments in design and analysis of algorithms in application to these areas.
2IMG10
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.
2IMG15
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.
2IT80
Introduction to 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.
JBI020
Foundations of Computing
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.
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.
2IL50
Data Structures (Q1)
Lecturer: Irina Kostitsyna
2IL50
Data Structures (Q3)
Lecturers: Bettina Speckmann and Marcel Roeloffzen
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.
2IMA15
Geometric Algorithms
Lecturer: Kevin Buchin and Irina Kostitsyna
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.
2IMG00
Seminar Applied Geometric Algorithms
Lecturer: Irina Kostitsyna
This seminar focuses on one specific area in the field of applied algorithms. This year, we will examine selected areas of robotics and distributed systems, including such fields as multi-robot systems, programmable matter, and self-assembly. These new and emerging areas have sparked the interest of researchers in the algorithms community. During the course of this seminar the students will learn about recent developments in design and analysis of algorithms in application to these areas.
2IMG10
Topological Data Analysis
Lecturers: Bettina Speckmann and Kevin Verbeek
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.
2IMG15
Algorithms for Geographic Data
Lecturers: Wouter Meulemans
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.
2IT80
Introduction to Discrete Structures
Lecturers: Bettina Speckmann and Marcel Roeloffzen
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.
JBI020
Foundations of Computing
Lecturer: Wouter Meulemans
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.
JBI040
Algorithmic Aspects of Data Analysis
Lecturer: Mark de Berg and Marcel Roeloffzen
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.
2IL50
Data Structures (Q1)
Lecturer: Ignaz Rutter
2IL50
Data Structures (Q3)
Lecturers: Bettina Speckmann and Irina Kostitsyna
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.
2IMG15
Algorithms for Geographic Data
Lecturers: Kevin Buchin and Wouter Meulemans
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.
2IMG00
Seminar Applied Geometric Algorithms
Lecturer: Irina Kostitsyna
This seminar focuses on one specific area in the field of applied algorithms. This year, we will examine selected areas of robotics and distributed systems, including such fields as multi-robot systems, programmable matter, and self-assembly. These new and emerging areas have sparked the interest of researchers in the algorithms community. During the course of this seminar the students will learn about recent developments in design and analysis of algorithms in application to these areas.
2IPH0
Declarative Programming
Lecturers: Jaap van der Woude and Arthur van Goethem
The goal of this course is to acquaint students with the declarative programming paradigm, mainly through pure and lazy functional programming with leading roles for types, generalization and calculation. The course has theoretical and practical elements, the latter of which are using Haskell.
2IS80
Fundamentals of Informatics
Lecturers: Arthur van Goethem, Bas Luttik, and Tom Verhoeff
Informatics (also known as Computer Science) has become a fourth ‘great scientific domain’, next to the natural, life, and social sciences. Especially within engineering, informatics plays an increasingly significant role. This course is about the concepts, ideas, methods, and results that are fundamental to informatics as a science. An example of such a result is the discovery of problems that cannot be solved by computers, and that it will never be possible to do so.
JBI020
Foundations of Computing
Lecturer: Wouter Meulemans
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.
2IT80
Introduction to Discrete Structures
Lecturers: Ignaz Rutter and Arthur van Goethem
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.
2IL50 - Data Structures (Q1)
Lecturer: Arthur van Goethem
2IL50 - Data Structures (Q3)
Lecturers: Bettina Speckmann and Ignaz Rutter
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.
2IMA20 - Algorithms for Geographic Data
Lecturers: Kevin Buchin and Wouter Meulemans
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.
2IMG00 - Seminar Applied Geometric Algorithms
Lecturer: Ignaz Rutter
This seminar focuses on one specific area in the field of applied algorithms, namely graph drawing. Graphs are widely used to represent information that can be modeled as objects and connections between those objects. This seminar covers basic graph drawing concepts and algorithms.
2IPH0 - Declarative programming
Lecturers: Jaap van der Woude and Arthur van Goethem
The goal of this course is to acqaint students with the declarative programming paradigm, mainly through pure and lazy functional programming with leading roles for types, generalization and calculation. The course is to have theoretical and practical elements of which the latter will be using Haskell.
2IS80 - Fundamentals of Informatics
Lecturers: Arthur van Goethem, Bas Luttik, and Tom Verhoeff
Informatics (also known as Computer Science) has become a fourth ‘great scientific domain’, next to the natural, life, and social sciences. Especially within engineering, Informatics plays an increasingly significant role. This course is about the concepts, ideas, methods, and results that are fundamental to informatics as a science. An example of such a result is the discovery of problems that cannot be solved by computers, and that it will never be possible to do so.
JBI020 - Foundations of Computing
Lecturer: Katrijn Van Deun and Bettina Speckmann
Solving problems with computers involves many different aspects: one needs to understand how computers compute on a fundamental level. 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. Other problems are not optimally solvable by computational procedures. Here powerful data analysis and optimization methods provide a means to obtain meaningful solutions.