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.

LIFAPSD = (10 * CCTD + 20 * CCTP + 30 * QCM + 40 * TPNOTE) / 100

CCTD est un contrôle en début de séance de TD le 21/09, CCTP est un contrôle en début de séance de TP le 09-10/11, QCM est un contrôle sous forme de QCM le 13/10, et TPNOTE est un TP noté le 07/12.
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 en fin de semestre
  • En cas d'aucune absence aux contrôles continus, la note de seconde chance remplacera la plus mauvaise note des contrôles continus (CC TD, CC TP, QCM, TP noté), uniquement si elle est meilleure
  • En cas d'absences (justifiées ou injustifiées) aux contrôles, la note de seconde chance remplacera les absences aux contrôles (avec les coefficients des contrôles concernés)
  • Si le cumul des coefficients des absences aux contrôles dépasse strictement 40% de la note d'UE, la note de seconde chance ne sera pas utilisée et l’étudiant sera DEF à l’UE (et donc à l’année)
  • Il n’y a pas de session 2 (ni en janvier ni en juin)

Groupes et emplois du temps

Automne 2025 :

Groupe

Créneau TD

Encadrant TD

Salle TD

Créneau TP

Encadrant TP

Salle TP

Lien EDT

A1

lundi 8h00 – 9h30

Thémis 49

lundi 9h45 – 13h00

Ariane 03

EDT A1

A2

Ariane 04

EDT A2

B3

lundi 8h00 – 9h30

Thémis 50

lundi 9h45 – 13h00

Ariane 12

EDT B3

B4

Ariane 13

EDT B4

C5

lundi 8h00 – 9h30

Thémis 51

lundi 9h45 – 13h00

Ariane 14

EDT C5

C6

Ariane 15

EDT C6

D7

lundi 8h00 – 9h30

Thémis 63

lundi 9h45 – 13h00

Ariane 06

EDT D7

D8

Ariane 05

EDT D8

E9

lundi 9h45 – 11h15

Thémis 49

mardi 15h45 - 19h

Ariane 05

EDT E9

E10

Ariane 06

EDT E10

F11

lundi 9h45 – 11h15

Thémis 50

mardi 15h45 - 19h

Ariane 11

EDT F11

F12

Ariane 12

EDT F12

G13

lundi 9h45 – 11h15

Thémis 51

mardi 15h45 - 19h

Ariane 04

EDT G13

G14

Ariane 03

EDT G14

H15

lundi 9h45 – 11h15

Thémis 63

mardi 15h45 - 19h

Ariane 13

EDT H15

H16

Ariane 14

EDT H16


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
CM4 - Classes et objets (2/2)
CM5 - Fichier, tri et complexité (1/2) transparents CM5-CM6
CM6 - Fichier, tri et complexité (2/2)
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
CM12 - Arbre (2/2)
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


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.