Algorithmique et programmation 2
Cursus master ingénierie (CMI) - UFR de mathématique et d'informatiqueParcours Cursus master ingénierie (CMI) - Informatique, systèmes et réseaux

Description

À 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 œuvre robuste (pré- et post- conditions, vérifications de terminaison, tests, bonne utilisation de l’allocation mémoire,...)."

Compétences requises

Compétences visées par l’UE d'Algorithmique et programmation 1 (S1)

Compétences visées

À 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. 

Informations complémentaires

Plus d'infos

Bibliographie

  • Effective C - Robert C Seacord (2020)

  • C In Easy Steps (5th Edition) - Mike McGrath (2018)

  • Beginning C (5th Edition) - Ivor Horton (2013)

  • Sams Teach Yourself C in 21 Days - Bradley L. Jones and Peter Aitken (2002)

  • Programming in C (4th Edition) - Stephen Kochan (2014)

  • C: How to Program (8th Edition) - Paul Deitel and Harvey M. Deitel (2015)

Contacts

Responsable(s) de l'enseignement