IFT339 - Informatique

Transcription

IFT339 - Informatique
IFT339
Structures de données
(Hiver 08)
Jean Goulet ~ D4-1010-23 ~ 819-821-8000 x62039 ~ [email protected]
Mise en contexte, place du cours dans le programme, objectifs
Ce cours est obligatoire dans les programmes d’informatique, d’informatique de gestion, de
mathématiques et d'imagerie et médias numériques. Il est à option dans plusieurs baccalauréats de
la Faculté des sciences. C’est donc dire qu’il s’adresse à un éventail important d’intérêts différents,
et de préparations différentes auxquelles il faut s'adapter. Toutes et tous ne le suivent pas avec la
même intention. Il fait suite à un cours de base en analyse et programmation. Il vise à faire
apprendre et à mettre en pratique la notion de type abstrait de données, et les techniques de
représentation des données complexes (pile, liste, arbre, arbre de recherche, graphe, etc.) C’est un
cours de trois crédits, qui doit donc représenter environ 135 heures de travail au total, soit 45
heures de cours et 90 heures de travail personnel*.
Ce cours comporte des aspects théoriques (types abstraits et structures), techniques (implantation
en C++), et méthodologiques (technique d’analyse et de résolution de problèmes). Chacun de ces
aspects sera évalué dans les examens.
Méthodes pédagogiques, modalités d’évaluation
Deux périodes de deux heures chacune sont placées à l’horaire de chaque semaine (les lundis et
vendredis, malheureusement les deux jours où il y a le plus de congés!). Au total, 48 périodes seront
consacrées à des cours magistraux (expression un peu prétentieuse!). Cela donne une certaine
marge de manoeuvre pour faire des exercices et de la consultation pour les travaux et les examens,
si on ne prend pas trop de retard. Il y a quatre travaux pratiques à remettre (codés en C++), aux
dates indiquées au calendrier.
Les travaux suivants sont évalués :
Travaux pratiques
20
Examen de mi-session 35
Examen final
45
L’attribution de la cote finale se fait en fonction du total des résultats numériques accumulés à la fin
du trimestre. Les cotes de “C” à “A” sont attribuées linéairement entre le seuil minimal d’atteinte des
objectifs du cours et des résultats jugés excellents en fonction de la difficulté des travaux et
examens. La cote “D” n’est jamais attribuée : c’est la pire cote à obtenir! La moyenne et l’écarttype n’entrent pas dans ce calcul. Le poids des travaux pratiques n’est évidemment pas
proportionnel à la quantité de travail qu’ils impliquent. Par contre, la compréhension d’un travail
pratique facilitera la réussite aux examens. On peut discuter des problèmes soumis comme travaux
pratiques, sans aller jusqu’au plagiat. Chacun doit utiliser son jugement des limites acceptables :
c’est pourquoi il y a peu de points accordés aux travaux pratiques.
Chaque travail est corrigé sur 10 points. L’expérience passée a démontré que si on réussit à faire
seul tous les travaux, on est pratiquement assuré d’avoir de bons résultats aux examens. La remise
des travaux se fait dans le meuble du sous-sol du bloc D4. La remise est indiquée pour un samedi :
c'est qu'elle est ramassée tôt le lundi matin. Jusqu'à 20% de la valeur d'un travail peut être attribué
au respect de normes de présentation. Ces normes sont décrites à :
http://www.dmi.usherb.ca/~frappier/normes/norme-programmation.pdf
*
Évidemment, ce nombre d’heures s’applique à l’étudiante ou l’étudiant moyen qui désire obtenir un résultat moyen dans le cours. Ce
n’est pas un absolu.
Contenu du cours
Voici une distribution approximative du temps consacré à chaque sujet (l'ordre des sujets peut varier
de l'ordre de cette liste). Cette prévision peut aussi varier en fonction des questions et des
problèmes soulevés en classe. Il ne faut pas se gêner pour passer un peu plus de temps sur un sujet
particulier qui a été mal compris à la première approche.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Généralités sur les Types abstraits et les Structures de données
Retour sur la sémantique de C++
La classe comme mécanisme d’abstraction des objets
Entrées-sorties orientées objet
Tableaux et pointeurs
Allocation automatique et dynamique
Tableaux dynamiques
Pile
File, double-file
Liste et itérateurs de liste
Arbres, Arbres binaires, Arbres binaires de recherche
Équilibre des arbres binaires de recherche
Parcours et itérateurs d’arbres
Arbres balancés (B-tree), Arbres exotiques
Adressage dispersé
Graphes
Bibliothèque normalisée (STL)
2
2
4
2
2
2
3
3
2
2
3
3
3
4
4
2
5
Calendrier
Les cours ont lieu les lundis (8h30 à 10h20) au D7-2021 et les vendredis
(10h30 à 12h20) au D7-2023.
7 janvier
26 janvier
23 février
3 fév au 7 mars
29 mars
14 avril
xx avril
Premier cours
Remise du TP1
Remise du TP2
Relâche
Remise du TP3
Dernier cours
Remise du TP4 (avant l'examen final!)
Bibliographie
Des notes de cours sont disponibles au guichet à l’entrée de la Faculté, au coût de 7,50 $. Elles
couvrent la totalité de ce qui est vu en classe, et vous évite d’avoir trop de matériel à recopier
inutilement. Un "Résumé C++" est donné avec les notes : c'est la documentation pour les examens.
La bibliothèque des sciences contient beaucoup de livres concernant les structures de données,
l’algorithmique qui leur est associée, et la programmation en C++. Normalement, on peut y trouver
réponse aux questions plus techniques. Il ne faut pas se gêner pour communiquer avec le
professeur. Le courriel demeure le moyen le plus sûr d’avoir une réponse rapide. Si la réponse que
je vous ferai n'est pas personnelle, j'en enverrai alors copie à toute la classe.
À mesure qu’ils sont disponibles, les énoncés des travaux pratiques, ainsi que ce plan de cours, sont
placés dans le site web suivant:
http://www.DMI.USherb.CA/~goulet/
Jean Goulet