Informatique et systèmes de communication
- Admission : /fr/formation/bachelor/informatique-et-systemes-de-communication/admission/
- Programme de formation : /fr/formation/bachelor/informatique-et-systemes-de-communication/programme-de-formation/
- Structure des études : /fr/formation/bachelor/informatique-et-systemes-de-communication/structure-des-etudes/
- Perspectives : /fr/formation/bachelor/informatique-et-systemes-de-communication/perspectives/
- Mobilité : /fr/formation/bachelor/informatique-et-systemes-de-communication/mobilite/
- Personnes : /fr/formation/bachelor/informatique-et-systemes-de-communication/personnes/
- Admission : /fr/formation/bachelor/informatique-et-systemes-de-communication/admission/
- Programme de formation : /fr/formation/bachelor/informatique-et-systemes-de-communication/programme-de-formation/
- Structure des études : /fr/formation/bachelor/informatique-et-systemes-de-communication/structure-des-etudes/
- Perspectives : /fr/formation/bachelor/informatique-et-systemes-de-communication/perspectives/
- Mobilité : /fr/formation/bachelor/informatique-et-systemes-de-communication/mobilite/
- Personnes : /fr/formation/bachelor/informatique-et-systemes-de-communication/personnes/
Programme de formation
Filière:
Informatique et systèmes de communication
Orientation:
Informatique logicielle
Module: Paradigmes de programmation 1
Descriptif de cours
Retour-
Objectifs
Les objectifs sont en prolongement de ceux du cours ''Algorithmique et structures de données 1'', en s'appliquant à un domaine de connaissances plus vaste.
A la fin du cours, l'étudiant a acquis les compétences suivantes :
- Ecrire et utiliser des structures de données complexes, et des algorithmes avancés impliquant des arbres
- Analyser un problème et concevoir une solution algorithmique efficace
- Exploiter les principes de hachage, algorithme probabiliste, et programmation dynamique
- Pratiquer la programmation Java, en professionnel (Java collections, stream programming...)
- S'initier aux divers outils du programmeur (tests, aide au diagnostic, debugging, analyse statique, code coverage...)
-
Contenu
- Complexité amortie, complexité espérée.
- Structures d'arbre : nodes, implicit chaining, left-child-right-sibling ...
- Heap, Skew-Heap
- Binary Search Tree, SplayTree, Treap, B-Tree
- Simulation discrète
- Pseudo-pointeurs
- Ensembles disjoints (union-find)
- String searching, edit distance, compression (Huffman, Lempel-Ziv)
- Quelques casse-tête (coding interview)
- Pratique de la programmation Java : code coverage, Java streams, ...
Forme d'enseignement et volume de travail
Cours magistral (y compris exercices)
12 périodes
Travaux pratiques / laboratoires
32 périodes
Théorie sous forme de vidéo (classe inversée
20 périodes
Travail personnel
41 périodes
Spécification du cours
Année de validité
2025-2026
Année du plan d'études
2ème année
Semestre
Automne
Programme
Français,Bilingue
Filière
Informatique et systèmes de communication
Langue d'enseignement
Français
Identifiant
B2C-ALG2-S
Niveau
Avancé
Type de cours
Fondamental
Formation
Bachelor
Modalités d'évaluation
- Contrôle continu: travaux écrits, TP/évaluation de rapports
Mode de calcul de la note de cours
La note du contrôle continu est la moyenne pondérée des évaluations du semestre (+/- un possible ajustement lié aux TPs). En cas d'examen de révision, la note finale du cours est la moyenne arithmétique de la note du contrôle continu et de celle de l'examen de révision.
Enseignant(s) et/ou coordinateur(s)
Frédéric Bapst