# 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 was the course coordinator and co-lecturer of INF2-IADS last year.

The teaching assistant for ADS will be Kat Molinet, a PhD student working in the area of algorithms, game theory, and foundations of blockchains (fancy stuff!). Kat will also be a tutor for the course, together with Khalid Belhadj, a UG-4 student with first-hand experience with ADS.

On behalf of the whole team, we welcome you to the course!

Our first lecture will take place on Monday 16th September at 16.10-17.00 at Elizabeth Templeton Lecture Room - New College.