Advanced algorithmics
Duration2h30Presentation & objectives
Many problems can be solved in an algorithmic way. After several decades of searching for efficient algorithmic solutions, some families of techniques have emerged. New problems are usually nothing more than special cases of old and well-known problems.
This session will introduce you to a number of existing algorithmic strategies together with the problem solving situations where they apply. You will discover the following techniques: divide and conquer, memoization, dynamic programming, and greedy approaches.
Before the class
Technical requirements
To be able to start working on the activity, you should meet the following requirements:
- Please bring your own computer.
- Make sure to have a functional network connection.
During the class
Knowledge acquisition
To be able to start the practical activity efficiently, we will introduce some needed concepts at the beginning of the class. To save you some time, we will present you a few slides, that you can find hereafter:
These slides only cover the main elements of the course, and many more details are given in the associated articles, that you should study in details:
You can verify your understanding of these articles here:
Practical activity
The rest of the class is dedicated to a practical activity. When ready, click on the link below to start:
After the class
Complete the current session
Before the next session, you should:
- Review the contents of the articles above.
- Complete the non-optional parts of the practical activity.
Prepare the next session
Also, you should:
- Check the “Before the class” section of the next session, and make sure you do everything required to prepare it.
- The next session will start with an evaluated MCQ, that evaluates your understanding of Algorithmics sessions 1, 2, 3 and 4.