Session 4

Duration2h30 + preparation

Properties of algorithms

TODO

Attention! Session pas encore reprise pour mettre en forme le contenu.

Presentation and objectifs

You are certainly not the first developer to face your current problem. It certainly means that several solutions to solve it have already been envisaged. How to compare them and to select the most appropriate one? This is the central question addressed in session 5. In addition, you will learn how to write tests and document your code to ensure its reusability.

Algorithmics

On the algorithmics part, you will acquire theoretical and technical skills to judge the adequacy between a problem and a possible algorithmic solutions. To do so, you will study:

  • theoretical algorithmic properties (specification, termination, deterministic/stochastic),

Before the class

For the algorithmic part, to prepare for this course, you need to understand how to design binary search tree. Binary search tree exercices

Technical requirements

To prepare the labs, make sure you have the following tools installed on your computer:

  • a recent version of the Python interpreter installed,
  • the VSCode IDE and the following extension.

For this lab, we advise you to deactivate Gihub Copilot.

Course contents

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:

In addition to an introduction to assertions, testing and documentating code two supervised activities are proposed:

Once the algorithmic concepts manipulated in this session managed, move to the following exercices during the supervised activity:

You can verify your understanding of these articles here:

After the class

  • Review the course contents seen during this activity.
  • Make sure you complete the practical session before the next activity.
  • Make sure you complete essential exercises.
  • Prepare the session.