Aller au contenu principal

Algorithmique 1 · L2 · Section 6/6

Ressources

Progression

Points d’expérience : XPSérie de jours consécutifs : · —Progression du module : — / —compris

#Ressources : Algorithmique 1

#Cours et TD de l'Université Côte d'Azur

La progression UCA couvre les récurrences, les grands entiers, diviser pour régner, les tas binaires, les structures de données, la conception combinatoire, les algorithmes gloutons, la programmation dynamique et les algorithmes calculatoires. Les annales du semestre 4 complètent les feuilles de TD pour la préparation des examens.

#Méthode de travail en quatre temps

  1. Lire le cours et reformuler avec vos mots l'invariant ou la récurrence: si vous ne pouvez pas l'énoncer sans regarder, vous ne pourrez pas l'appliquer en TP ni la restituer à l'examen.
  2. Résoudre le TD sur papier avant toute implémentation. L'implémentation immédiate masque les raisonnements non aboutis derrière des corrections de syntaxe.
  3. Programmer, tester sur les cas limites (entrée vide, un élément, entrée triée, entrée inversée), puis chronométrer ou compter les opérations de base sur plusieurs tailles pour confronter l'analyse théorique.
  4. Terminer par une annale en temps limité, sans documentation: c'est le seul entrainement fidèle aux conditions réelles.

Lors de la confrontation théorie/mesure au point 3, gardez les deux conclusions séparées: le résultat est-il correct (comparaison avec une implémentation de référence), et le coût suit-il l'ordre de grandeur prédit (rapport des temps quand n double)? Un algorithme peut échouer sur l'un et pas sur l'autre, et les remèdes n'ont rien en commun.

#Références complémentaires

  • Introduction to Algorithms (CLRS) : la référence pour les preuves et les analyses; utiliser l'index par problème.
  • Algorithms de Dasgupta, Papadimitriou et Vazirani : plus court, centré sur le raisonnement et les intuitions de preuve.
  • MIT OpenCourseWare 6.006 et 6.046 : cours filmés avec feuilles d'exercices corrigées.
  • Pour s'entraîner après les TD: Kattis et CS Academy (progression graduelle), LeetCode (entretiens).

#Lien avec les modules voisins

  • Structures de données: les tas, BST et tables de hachage y sont développés avec leurs invariants; on les utilise ici tels quels (tri par tas, Dijkstra, tables de mémoïsation).
  • Les parcours de graphes (BFS, DFS, plus courts chemins) et les problèmes NP-complets approfondis relèvent du module Algo avancés; ce module pose les fondements d'analyse qui y sont supposés connus.