Ce module constitue la suite logique du cours "Algorithmique et Programmation 1" suivi au premier semestre. Il vise à approfondir les connaissances et compétences en programmation, notamment à travers la manipulation avancée des structures de données, la gestion de la mémoire et l’utilisation plus systématique de la récursivité.
L’étudiant consolidera ses bases en algorithmique tout en découvrant de nouveaux outils conceptuels permettant de mieux structurer et organiser des programmes, en mettant l’accent sur les structures dynamiques (listes chaînées, piles, files, arbres) et leur intérêt algorithmique.
Objectifs pédagogiques :
À l’issue de cette UE, l’apprenant sera capable de :
-
Concevoir et manipuler des structures de données dynamiques (listes chaînées, piles, files, arbres).
-
Approfondir la compréhension et l’utilisation de la récursivité dans des contextes concrets.
-
Gérer la mémoire de manière explicite dans un programme.
-
Manipuler des fichiers pour la lecture et l’écriture de données.
-
Découvrir les bases de l’algorithmique numérique.
-
Appréhender la complexité algorithmique d’un programme ou d’un algorithme simple.
-
Structurer des données à l’aide de types structurés personnalisés.
Compétences visées :
-
Maîtrise des structures de données de base et de leur implémentation.
-
Capacité à utiliser la récursivité de manière appropriée.
-
Capacité à analyser la complexité d’un algorithme simple.
-
Capacité à manipuler des fichiers en entrée/sortie.
-
Esprit d’analyse algorithmique et structuration de code.
Contenu détaillé du module :
-
Rappels sur les tableaux statiques et introduction aux tableaux dynamiques
-
Introduction aux structures (types composés, pointeurs, allocations dynamiques)
-
Manipulation avancée des tableaux : tris simples, recherche, complexité
-
Récursivité : approfondissement et applications pratiques
-
Listes chaînées : simple, double, circulaire
-
Notions de piles et files (FIFO/LIFO)
-
Arbres : introduction, parcours, premières applications
-
Chaines de caractères : manipulation, tableaux de caractères
-
Introduction à la gestion de la mémoire
-
Manipulation de fichiers (texte/binaire)
-
Initiation à l’algorithmique numérique (recherche de racines, itérations)