Recursion

Duration2h30 + preparation

Presentation & objectives

To solve a problem of a given size, it may be necessary to solve subproblems of smaller sizes, and then to aggregate the intermediate results to get the final result. Recursive algorithms do just that, by describing the operations to perform on a small part of data, before going to the next part through self-call.

In this session you will study situations, often characterised by the nature of the data structures, where algorithmic solutions are naturally expressed in a recursive way.

Before the class

Technical requirements

To be able to start working on the activity, you should meet the following requirements:

Prior 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. Thus, you should study the following articles at home after the session:

You can verify your understanding of these articles here:

During the class

Practical activity

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.