Algorithmique et programmation 2

  • Cours (CM) -
  • Cours intégrés (CI) 38h
  • Travaux dirigés (TD) -
  • Travaux pratiques (TP) 22h
  • Travail étudiant (TE) -

Langue de l'enseignement : Français

Niveau de l'enseignement : B2-Avancé - Utilisateur indépendant

Description du contenu de l'enseignement

À la suite de l’UE d’algorithmique et programmation 1 du premier semestre, l’objectif de cette UE est d’appréhender des concepts plus avancés en algorithmique et en programmation impérative.
Dans un premier temps, ce cours rappellera les notions de base de la programmation impérative en termes de traitement (instructions, séquences, conditionnelles, boucles, fonctions), de données (types de bases, variables, tableaux) et d'entrées/sorties. Ces éléments seront manipulés au travers d'un langage compilé (langage C). On présentera la forme générale des programmes et leur cycle de vie (écriture, compilation, édition de liens, exécution).
Dans un second temps, cette UE s'attachera à étudier des données et traitements plus avancés (mettant en jeu pointeurs, types composés, tableaux dynamiques, listes chaînées), ainsi que les mécanismes de gestion mémoire statique (pile d'exécution) et dynamique (allocation et libération explicites). Plusieurs algorithmes classiques seront présentés et comparés, notamment des algorithmes de recherche et de tri itératifs ou récursifs, avec une introduction à la notion de complexité. Une attention particulière sera portée à la résolution de problèmes par des algorithmes adaptés et leur mise en oeuvre robuste (pré- et post- conditions, vérifications de terminaison, tests, bonne utilisation de l’allocation mémoire,...)."

Compétences à acquérir

À l'issue de cette UE un étudiant saura :
- représenter des données en choisissant des structures de données appropriées ;
- stocker des données selon un modèle d'allocation de la mémoire adapté ;
- décomposer un problème en sous-problèmes ;
- concevoir des algorithmes itératifs et récursifs ;
- implémenter des algorithmes de recherche et de tri ;
- proposer plusieurs algorithmes pour résoudre un problème et les comparer ;
- s’assurer de la bonne terminaison de l’implémentation des algorithmes ;
- implémenter un algorithme avancé en langage C ;

Pré-requis obligatoires

- UE Algorithmique et programmation 1 (Semestre S1)
- UE Bases de l’architecture informatique (Semestre S1)

Contact

UFR de mathématique et d'informatique

7, rue René Descartes
67084 STRASBOURG CEDEX
0368850200

Formulaire de contact