Après avoir acquis en première année les notions fondamentales de l’algorithmique, plus précisément, les instructions de base permettant de décrire les algorithmes (affectation, tests, boucles, les procédures et les fonctions qui permettent de structurer et de réutiliser les algorithmes ; le passage de paramètres, les appels de fonctions, les structures de données linéaires : tableaux et listes chainées).

En deuxième année on passe à l’étude de nouvelles structures de données. L’étudiant va être capable de concevoir des algorithmes et à les analyser.
Dans ce cours, l’étudiant va découvrir la récursivité, qui est un domaine très intéressent de l’informatique, un peu abstrait, mais très élégant.

La solution du même problème peut être décrite avec plusieurs algorithmes, l’étudiant doit apprendre à fournir un algorithme clair qui s’exécute en moins de temps et aussi choisir la structure de données la plus adaptée au problème. La connaissance des propriétés des structures de données permet de guider le choix des représentations dans le souci d’optimisation des performances des solutions obtenues.

Ce cours cible les étudiants de deuxième année informatique.

A travers ce cours intitulé: «Algorithmique et structures de données », l'étudiant sera capable de:
- Appliquer une technique fondamentale de programmation pour résoudre certains
types de Problèmes
- Comprendre des notions et des outils d'analyse et de conception des algorithmes,
en particulier la notion de temps d'exécution d'un programme (complexité
temporelle)
- Savoir estimer (évaluation) le temps d'exécution d'un algorithme itératif ou récursif