# Teaching 2018-02-27.

Tip! We recommend typesetting homework solutions in $\LaTeX$. You may want to use our Overleaf template, which will get you started in no time!

The following courses are taught by members of the Applied Geometric Algorithms group in the academic year 2017-2018.

• 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.