Acquis d'apprentissage

Ce cours constitue une introduction à différent concepts liés à l'algorithmique et avec certaines spécificités liées au calcul scientifique, ainsi qu'une mise en pratique lors de nombreux travaux en pool informatique.
 
 

Objectifs

  • Connaitre les bases de la conception d'algorithmes et pouvoir analyser leur complexité
  • Être capable d'implémenter différentes sortes d'algorithmes en langage C et matlab
  • Connaitre les différentes méthodes d'intégration numérique d'équations différentielles
  • Savoir reconnaitre des problèmes de complexité non-polynomiale
  • Concercevoir des stratégies algorithmiques heuristiques ou probabilitistes
 
 

Contenu

Le cours débutera par une introduction rapide à la programmation en langage C ainsi que par diverses spécificités avancées concernant ce langage. Les premiers mini TP seront consacrés à une exploration de ce langage.
 
La suite du cours théorique contient les éléments suivants :
  • Bonnes pratiques d'algorithmique, classes de complexité, allocation de mémoire et exemples d'algorithmes de tri
  • Stratégies algorithmiques : glouton, arbre de recherche, backtracking, programmation dynamique, ...
  • Méthodes d'intégration numérique : Euler, Runge-Kutta, méthodes prédicteur-correcteur, ...
  • Les problèmes de classe NP-complet
  • Algorithmes probabilistes, méthodes de Monte-Carlo

Plusieurs TP importants, en C et an Matlab, seront basés sur le contenu et les exemples du cours théorique.

 
 

Méthodes d'enseignement

Cours magistral donné en partie au tableau, avec quelques exemples infromatiques.
 
Travaux de programmation en pool informatique (C et Matlab).
 
Attention : en raison d'une évaluation continue, la présence aux TP de programmation en pool informatique est obligatoire !
 
 

Méthode d'évaluation

L'évaluation comporte deux parties : une évaluation continue des travaux pratiques et un examen oral.
  • Évaluation continue des travaux pratiques : les séances de travaux pratiques en pool informatique seront constituées de plusieurs TP évalués et à rendre selon le calendrier et les instructions définis par les assistants. La moyenne de ces évaluations compte pour 50% de la note finale, à condition que cette moyenne soit supérieure ou égale à 35% (7/20).
  • Examen oral : les questions portent sur la théorie, à la fois sur des questions de présentation de la matière ou de démonstrations, ainsi que sur la capacité de l'étudiant à concevoir une stratégie algorithmique à partir d'un problème donné. Cette évaluation compte pour 50% de la note finale, à condition d'être supérieure à égale à 7/20.
 
Ces deux évaluations sont considérées comme des activités d'apprentissage distinctes d'une même unité d'enseignement. Une note strictement inférieure à 7/20 à l'une de ces deux activités d'apprentissage entrainera automatiquement une note d'échec pour l'unité d'enseignement. Une note supérieure ou égale à 10/20 peut être reportée pour la session d'août de la même année uniquement. Il n'y aura pas d'évaluation pour cette unité d'enseignement lors de la session de juin. En cas d'échec à l'évaluation continue en janvier, l'étudiant pourra remettre une nouvelle version de ses TP avant le début de la session d'évaluation d'août suivant les modalités définies par les assistants.
 
La présence aux travaux pratiques est obligatoire, une présence insuffisante pourra résulter en une note d'échec pour l'unité d'enseignement. Les travaux de l'évaluation continue sont individuels, tout travail collectif ou plagiat pourra être sanctionné par une note de 0/20 à l'unité d'enseignement pour non respect des consignes.
 
 

Sources, références et supports éventuels

Un syllabus sera mis progressivement à disposition sur webcampus suivant son avancement.
 
Référence sur le langage C : Claude Delannoy, Langage C, Eyrolles, ISBN 2-212-11123-1
 
 

Langue d'instruction

Français