Algorithmique I

Objectifs d’apprentissage

Le plan d’études pour l’informatique en tant que discipline obligatoire à l’École de maturité propose les contenus suivants pour l’introduction à l’algorithmique (ici Algorithmique I) :

  • Décomposition d’un problème

  • Algorithmes classiques

  • Conception d’algorithmes simples

En lien avec le plan d’études, nous avons identifié les objectifs d’apprentissage suivants qui sont abordés dans un ou plusieurs chapitres :

  • Résoudre un problème en décomposant une solution en étapes (chapitre Les algorithmes)

  • Intégrer la pluralité des algorithmes (chapitre Trie, cherche et trouve)

  • Formaliser une solution sous forme d’algorithme (chapitre Trie, cherche et trouve)

  • Implémenter un algorithme sous forme de programme (chapitre Des algorithmes aux programmes)

Nous avons compilé une liste d’algorithmes classiques (voir ci-dessous), ce qui fait apparaitre 2 grandes classes d’algorithmes classiques, les algorithmes de tri et les algorithmes de graphes. Comme il est impossible de tout aborder et prenant en considération le niveau de mathématiques des élèves de 1ère année, nous avons privilégié dans un premier temps une entrée par les graphes.

Algorithmes classiques

Algorithmes de recherche

  • Recherche binaire ou dichotomique
  • Recherche linéaire
  • Recherche dans une table de hachage
  • Algorithmes de tri
  • Tri par insertion
  • Tri par sélection
  • Tri à bulles
  • Tri par fusion
  • Tri rapide
  • Tri par tas
  • Tri stupide

Algorithmes de graphes

  • BFS ou algorithme de parcours en largeur (Parcours de graphe)
  • DFS ou algorithme de parcours en profondeur (Parcours de graphe)
  • Prim (Arbre couvrant minimal)
  • Kruskal (Arbre couvrant minimal)
  • Dijkstra (Recherche d’un plus court chemin)
  • A* (Recherche d’un plus court chemin)
  • Bellman-Ford (Recherche d’un plus court chemin)
  • Floyd-Warshall (Recherche d’un plus court chemin)
  • Tri topologique
  • Welsh-Powell (Coloration de graphe)
  • Kosaraju (Composantes fortement connexes)

Autres algorithmes classiques

  • Conversion entre bases
  • Codage de Huffman
  • Codage de Hamming
  • PageRank
  • Automates cellulaires
  • Simulation de Monte-Carlo / Metropolis
  • Test de Miller-Rabin pour les grand nombres premiers
  • Algorithmes de cryptographie à clé publique (RSA, Diffie-Hellman, EL Gamal, …)