Algorithmique, Programmation et Structure de Données (LIFAPSD)


Présentation

Prérequis

  • Savoir écrire un algorithme simple en langage algorithmique
    • manipuler des variables de type booléen, entier, réel, caractère
    • manipuler des tableaux et chaînes de caractères
    • connaître les structures de contrôle (tests, boucles, ...)
    • savoir découper un programme en fonctions et procédures
    • connaître les modes de passage des paramètres
    • être familier avec l’organisation de la mémoire
  • Savoir implémenter tout ça en langage C/C++

Contenu de l'UE

  • Manipulation des principales structures de données utilisées en informatique
    • types primitifs: entier, réels, caractères, booléens, pointeurs
    • types agrégés: tableaux et structures
    • gestion des entrées-sorties: standard et fichier
    • structures dynamiques: tableau, liste chainée, pile, file, arbre, fichier
  • Les classes et objets
    • membre, spécificateur d’accès, surcharge d’opérateur
    • type de données abstrait et programmation modulaire
  • Algorithmique
    • algorithmes de tri (sélection, insertion, fusion)
    • introduction à la notion de complexité algorithmique

MCC

La note finale LIFAPSD est calculée comme suit, où CC1TD-CC2TD-CC3TD sont les trois contrôles continus de TD, CC1TP-CC2TP-CC3TP sont les trois contrôles continus de TP, TPNOTE est le TP noté:

LIFAPSD = (10 * CC1TD + 10 * CC2TD + 10 * CC3TD + 15 * CC1TP + 15 * CC2TP + 15 * CC3TP + 25 * TPNOTE) / 100

Les modalités de contrôle des connaissances pour les UE de licence sont disponibles sur le site de l'Université. Notez les points spécifiques importants suivants.
  • Une épreuve de seconde chance sera proposée à tous les étudiants
  • Une absence à 1 contrôle continu se remplacée par la note de la seconde chance (avec le coefficient du contrôle concerné)
  • En cas d'aucune absence, la note de seconde chance remplacera la plus mauvaise note des contrôles continus (CC TD, CC TP, TP noté), si elle est meilleure
  • En cas de 2 (ou plus) absences injustifiées, l’étudiant sera DEF à l’UE (et donc à l’année)
  • En cas de 2 (ou plus) absences justifiées, le responsable d’UE traitera au cas par cas et l’étudiant pourra soit être DEF soit sa note de seconde chance pourra remplacer plus que 1 absence. Également dans ce cas, si l’étudiant est absent à l’épreuve de seconde chance (justifiée ou injustifiée) il sera DEF à l’UE (et donc à l’année).
  • Dans tous les cas, il n’y a pas de session 2 (ni en janvier ni en juin).

Emploi du temps et groupes

Automne 2025 - Emplois du temps sur ADE :

Emploi du temps LIFAPSD groupes A1 et A2
Emploi du temps LIFAPSD groupes B1 et B2
Emploi du temps LIFAPSD groupes C1 et C2
Emploi du temps LIFAPSD groupes D1 et D2
Emploi du temps LIFAPSD groupes E1 et E2
Emploi du temps LIFAPSD groupes F1 et F2
Emploi du temps LIFAPSD groupes G1 et G2
Emploi du temps LIFAPSD groupes H1 et H2

Emploi du temps LIFAPSD tous les groupes

Ressources

Transparents de CM

CM1 - Introduction et rappels transparents CM1
CM2 - Allocation dynamique de mémoire transparents CM2
CM3 - Classes et objets (1/2) transparents CM3
CM4 - Classes et objets (2/2) transparents CM4
CM5 - Fichier, tri et complexité (1/2) transparents CM5
CM6 - Fichier, tri et complexité (2/2) transparents CM6
CM7 - TDA et programmation séparée transparents CM7
CM8 - Tableau Dynamique transparents CM8
CM9 - Liste transparents CM9
CM10 - Pile et file transparents CM10
CM11 - Arbre (1/2) transparents CM11
CM12 - Arbre (2/2) transparents CM12
CM12 (bonus) - Résumé sur les TDA transparents CM12 bonus

Exercices de TD

Polycopié entier des énoncés de TD et TP.

TD1 - Vie et mort des variables en mémoire (1/2) énoncé
TD2 - Vie et mort des variables en mémoire (2/2) énoncé
TD3 - Classe et objet (1/2) énoncé
TD4 - Classe et objet (2/2) énoncé
TD5 - Algorithme, invariant de boucle et complexité (1/2) énoncé
TD6 - Algorithme, invariant de boucle et complexité (2/2) énoncé
TD7 - Tri fusion (1/2) énoncé
TD8 - Tri fusion (2/2) énoncé
TD9 - Tableau dynamique énoncé
TD10 - Liste chaînée énoncé
TD11 - Pile et file énoncé
TD12 - Arbre binaire énoncé

Exercices de TP

Polycopié entier des énoncés de TD et TP

TP1 - De LIFAPI à LIFAPSD énoncé
TP2 - Vie et mort des variables en mémoire énoncé
TP3 - Classe et objet énoncé
TP4 - Fichier et complexité expérimentale énoncé random.txt, reverse.txt, sorted.txt
TP5 - Tableau dynamique énoncé ElementTD.h, ElementTD.cpp, TableauDynamique.h
TP6 - Liste doublement chaînée énoncé ElementL.h, ElementL.cpp, Liste.h
TP7 - Pile et file énoncé ElementL.h, ElementL.cpp, ElementTD.h, ElementTD.cpp, File.h, Pile.h
TP8 - Arbre binaire de recherche énoncé ElementA.h, ElementA.cpp, Arbre.h

Annexes


Annales d'examens et corrigés

  • Pas d'annale spécifique pour l'épreuve de seconde chance (nouvelle en 2025-2026), mais sera similaire à l'ECA des années passées :
  • ECA automne 2024-2025 : énoncé et corrigé
  • ECA automne 2023-2024 : énoncé et corrigé
  • ECA automne 2022-2023 : énoncé et corrigé

Littérature

Il existe des tonnes de ressources sur Internet et dans les librairies pour apprendre l'algorithmique et la programmation C++. Voici quelques livres disponibles à la BU de science, ainsi que quelques liens utiles.