ADS: Algorithms and Data Structures
Introduction
Welcome to Algorithms and Data Structures (or ADS for short)! This course is all about algorithms, a bit (but not much more) advanced than those you would find in a first or second year undergraduate course. In particular, one can view this course as a continuation and more advanced version of INF2-IADS.
In a little more detail: The course will cover some basic algorithm design paradigms, namely "Divide and Conquer", "Greedy" and "Dynamic Programming". These are all covered in an introductory course on algorithms, but here we will be looking at somewhat more advanced applications. For example, Divide and Conquer is usually exposed in the context of sorting algorithms; we will revisit those, but we will also look at other cool applications like matrix multiplication and Fast Fourier Transform. For Greedy we will learn about Network Flows and Linear Programming. These are very powerful optimisation tools not only for a theoritician, but also for a computer engineer. We will also see some cool applications of Dynamic Programming, like matrix chain multiplication or longest common subsequence.
In this course the emphasis is on theory. The goal is to learn how to develop formal arguments and proofs to argue about the correctness and running time of the algorithms that we will design. If you like maths, you'll probably like this course. If you hate maths, well, you shouldn't hate maths! Even if you don't plan on pursuing a career in theory or research, what you will learn in this course could be extremely useful. A perfectly coded badly designed algorithm is always going to be inferior to a well designed one!
The Team
The course organiser and lecturer for ADS will be Aris Filos-Ratsikas. Aris is a Lecturer in Algorithms and Complexity at the School of Informatics, and he has the course coordinator and co-lecturer for ADS, INF2-IADS, and AGTA.
Together with Aris, Mohamad Latifian will be delivering some of the lectures. Mohamad is a postdoctoral researcher in the area of algorithms and game theory, who has significant experience not only researching but also teaching these topics.
The tutor for ADS will be Kat Molinet, a PhD student working in the area of algorithms, game theory, and foundations of blockchains (fancy stuff!).
On behalf of the whole team, we welcome you to the course!
Our first lecture will take place on Monday 15th September at 16.10-17.00 at 2.13 - Geography (Old Infirmary).