Introduction

This repository serves as a supplementary resource to the foundational text Algorithms (4th Edition) by Sedgewick and Wayne, offering a set of theoretical and programming exercises designed to complement the book’s content. These exercises are ideally suited for a flipped classroom setting, allowing for an interactive, student-centered learning experience. Additionally, the exercises are compatible with the Inginious grading platform, providing an efficient means for automated assessment.

The repository also stands as a valuable tool for individuals preparing for programming interviews. Whether within a formal educational environment or as part of personal study, these resources aim to enhance understanding and proficiency in data structures and algorithms.

Java Resources

We use the Java language and more specifically the Java8 version. The recommended IDE for this course and available for the exam is IntelliJ. We will also use the Junit5 tool to perform unit tests. It is strongly recommended that you familiarize yourself with these tools in preparation for the exam.

Open-Source Course Material

The source code of all programming exercises and tests are available on Github.

This student repository is generated from the solution repository by removing the programming task code and complex unit tests. These removed complex unit tests are designed for the grading platform and are not intended for student use. Students are strongly encouraged to attempt solving the problems on their own before looking at the solutions. The best practice is to use the solutions for comparison purposes, allowing you to reflect on and analyze the differences between your approach and the provided solutions after you have made a concerted effort to tackle the problems yourself.

Motivated students can also propose new exercises as pull requests.

The license used is Creative Commons Attribution-ShareAlike 4.0 International License for theoretical exercises and MIT for the source code.

CC-BY-SA

Authors

Since 2016, Professor Pierre Schaus has been leading the Data Structures and Algorithms course at UCLouvain. This rich collection of theoretical and hands-on programming exercises is not just a solo endeavor of his; it’s a collaborative work. Here is the list of persons who have contributed to this educational work over the years.

  • Guillaume Derval (TA 2017-2021 and teaching in 2020-2021)

  • Pierre Dupont (teacher 2002-2014)

  • Virginie Van den Schrieck (teacher 2014-2015)

  • Alexandre Dubray

  • Harold Kiossou

  • Antoine Cailliau

  • Charles Thomas

  • Quentin De Coninck

  • Sascha Van Cauwelaert

  • Simon Hardy

  • Xavier Gillard

  • John Aoga

  • Hélène Verhaeghe

  • Auguste Burlat

  • As well as all the tutors and working students who have helped us!

A special note of gratitude is extended to Anthony Gego for developing Inginious, the indispensable grading platform that supports our course.