Objectifs
* Concevoir et réaliser un algorithme correct et efficace pour un problème donné.
* Faire un choix argumenté sur l'utilisation de telle ou telle structure de données ainsi que sur l'algorithme qui la manipule.
* Mettre en oeuvre des structures de données et les algorithmes associés dans des programmes Java de qualité professionnelle.
* Appliquer à bon escient les principes de la programmation orientée-objet tels que généricité, abstrac-tion, composition et réutilisation.
* Travailler efficacement en équipe pour l'analyse du problème posé, la conception, l'implémentation et la documentation des programmes résolvant les problèmes posés.
Cahier des charges
* Mesures de complexité d'un algorithme et méthodes d'analyse de complexité.
* Méthodes de conception de programmes : spécifications et conception orientée-objet.
* Structures de données de base (listes, arbres, arbres binaires de recherche) : étude de leurs propriétés abstraites, de leurs représentations concrètes, de leur application et des principaux algorithmes qui les manipulent.
* Introduction aux Design Patterns liés à la manipulation de structures de données.
* Structures de données avancées (tables de hachage, tas, arbres binaires équilibrés, représentation et manipulation de graphes, traitement de données textuelles, dictionnaires).
Résumé
* Complexité calculatoire et équations de récurrence.
* Arbres, arbres binaires de recherche, arbres AVL, 2-4 Trees.
* Dictionnaires et tables de hachage.
* Files de priorité et tas.
* Graphes (représentations, algorithmes de parcours, plus court chemin).
* Manipulation de données textuelles (arbres de suffixes, pattern matching, compression)
* Design patterns en Java.
Autres informations du cahier des charges
- Pré-requis:
* Maîtrise de la programmation dans un langage orienté-objet tel que Java et connaissance de structures de données élémentaires (piles, files, listes, etc.) OU
* LINF1150 Introduction à l'algorithmique et la programmation: 1ère partie B. LeCharlier
* LINF1251 Introduction à l'algorithmique et à la programmation : 2ème partie P. VanRoy
- Références
Ouvrage(s) obligatoire(s)
Goodrich et Tamassia, "Data Structures and Algorithms in Java, Second Edition" , John Wiley & Sons, 2001.
Ouvrage(s) recommandé(s)
Cormen T.H. et al. , "Introduction to Algorithms, Second Edition" , MIT Press, 2001. Brassard G. & Bratley P., "Fundamentals of Algorithms" , Prentice Hall, 1996.
- Modalités d'organisation
* La méthode pédagogique suivie dans ce cours est celle de l'Approche par Problèmes (APP) décrite à l'adresse http://www.fsa.ucl.ac.be/candis . Les étudiants travaillent alternativement en groupe (analyse du problème, point sur les connaissances théoriques à acquérir, définition des tâches de chacun, mise en commun de solutions partielles, analyse critique des résultats, etc.) et individuellement (étude et acquisition personnelle du contenu théorique, prise en charge d'une partie de la programmation et de la documentation des programmes, réflexion personnelle sur les questions posées, etc.). La majorité des séances de travail en groupe sont encadrées par un tuteur (le titulaire ou un assistant).
* Evaluation continue des travaux de groupes (réponses aux questions relatives à chaque problème donné, programme résultat et sa documentation).
* Examen écrit individuel
- Remarques:
Voir aussi : http://www.ucl.ac.be/etudes/cours/linf2121.html
Voir site WEB des informations pratiques relatives au cours
Le cours LINF2121 est mentionné dans les programmes suivants :
ECGE3DS/IG
|
Diplôme d'études spécialisées en économie et gestion (informatique de gestion - Master in Information Systems)
|
| |
FSA2DC
|
Diplôme d'études complémentaires en sciences appliquées
|
| |
INFO2
|
Ingénieur civil informaticien
|
| |
LINF2
|
Licence en informatique
|
| |
Valeurs ECTS de l'activité
ECGE3DS/IG
|
Diplôme d'études spécialisées en économie et gestion (informatique de gestion - Master in Information Systems)
|
(5 ECTS)
|
Obligatoire
|
FSA2DC/AP
|
Diplôme d'études complémentaires en sciences appliquées (algorithmique et programmation)
|
(5 ECTS)
|
Obligatoire
|
FSA2DC/IN
|
Diplôme d'études complémentaires en sciences appliquées (informatique)
|
(5 ECTS)
| |
INFO21
|
Première année du programme conduisant au grade d'ingénieur civil informaticien
|
(5 ECTS)
|
Obligatoire
|
LINF21
|
Première licence en informatique
|
(5 ECTS)
|
Obligatoire
|
LINF21/GN
|
Première licence en informatique (informatique générale)
|
(5 ECTS)
| |
LINF21/GS
|
Première licence en informatique (informatique de gestion)
|
(5 ECTS)
| |
MAP23
|
Troisième année du programme conduisant au grade d'ingénieur civil en mathématiques appliquées
|
(5 ECTS)
| |
MATH21/G
|
Première licence en sciences mathématiques (Général)
|
(5 ECTS)
| |
Valeur ECTS par défaut
|
(5 ECTS)
| |
|