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