Ce cours est une introduction à l’algorithmique à destination des apprentis ingénieurs de la filière “systèmes électroniques embarquées” de l’ENSEIRB-MATMECA.
Supports de cours
- Organisation et objectifs
- Introduction à l’algorithmique et à la complexité
- notebook Calcul d’un zéro d’une fonction
- Complexité des algorithmes
- Problème 1: Calcul d’un zéro d’une fonction par un algorithme itératif (notebook)
- Algorithmes sur les tableaux
- notebook Algorithmes de recherche
- notebook Algorithmes de tri
- notebook Autres algorithmes sur les tableaux
- Algorithmes récursifs
- notebook Algorithmes récursifs
- Diviser pour régner: les tris rapides
- notebook Fusion de tableaux triés
- notebook Algorithmes de tri
- Liste chaînées
- notebook Listes chaînées
- Outils mathématiques pour l’analyse de complexité
Utilisation des notebooks
Un environnement python avec les modules calltracer, functools, graphviz, line_profiler, logging, mathplotlib, numpy, pytracecall, random et typing est nécessaire. Une version récente de python est recommandée (> 3.9). Il est également nécessaire de disposer d’une installation de jupyter-notebook.
Tous ces outils sont installés dans les images linux sur les machines pédagogiques des salles de TP. Voici comment les utiliser:
- créer un répertoire où stocker les notebooks
- télécharger le fichier utils.py dans ce répertoire
- télécharger les notebooks dans ce répertoire
- lancer la commande
jupyter labdepuis un terminal dans ce répertoire - un navigateur apparaît dans lequel vous pouvez choisir le notebook à exécuter