Algorithms are the heart of all computation. This course, building on the algorithmic foundations laid in the first computer science courses (INF321 or INF311+INF411), equips the student with a solid background in modern algorithmics. Having followed this course, the student will have a profound knowledge of the most central algorithms, both understanding how and why they work and being able to solve a wide range of computational problems with these building blocks. This is material that everyone aiming to work in a computer science or computing related context needs to know, let it be in a research or industrial environment. In addition to this, we shall also give a brief introduction to several more recent topics like randomized algorithms, evolutionary algorithms, online algorithms, or algorithmic game theory, which had a significant impact on how we understand computing today.The course is taught in English (amphis, poly), for all the rest including the exam both French and English are offered.