Vous êtes sur la page 1sur 11

PLAN DE COURS

Hiver 2009

IFT-10541 A - Structures de donnes

Informations gnrales

Crdits : Temps consacr : Formule pdagogique : Pralable(s) : Concomitant(s) : Site Web : Intranet Pixel : Enseignant(s) : Responsable :

4 4-0-2-6 LT IFT-17582 aucun https://cours.ift.ulaval.ca/2009h/10541 https://pixel.fsg.ulaval.ca Alikacem, Abderrahim alikacem@ift.ulaval.ca Alikacem, Abderrahim alikacem@ift.ulaval.ca

Description sommaire Notion de type abstrait: encapsulation, dissimulation de l'information; sparation du comportement et de l'implantation. Description en termes de type abstrait et reprsentation en mmoire des structures de donnes. Notion de pointeur et d'allocation dynamique de la mmoire. Structures de donnes classiques et leur implantation en C: les listes, les piles, les files (avec et sans priorit), les arborescences, les graphes et les tables de dispersion. Algorithmes de tri et de recherche. Analyse de la complexit des algorithmes: complexits spatiale et complexit temporelle; notation grand O, comportement du meilleur cas, du cas moyen et du pire cas. Passage de la programmation modulaire et structure la programmation par objets. Introduction au langage orient objet Java. Travaux de programmation effectus en C et en Java.

Horaire et disponibilits

Plages normales : Mardi 08h30 12h20 PLT-3775 Dpannages : Vendredi 08h30 10h20 PLT-3920 Disponibilit de l'enseignant : Mercredi 08h30 15h30 PLT-3960

(du 14 janv. au 22 avril)

Objectifs

1/11

Une application informatique utilise gnralement trs intensment les donnes qui lui sont lies. La reprsentation et l'organisation de ces donnes sont donc vitales l'efficacit de l'application qui s'en sert. Consquemment, partir de contraintes relies une application, il faut que l'informaticien et l'informaticienne soient en mesure d'effectuer un choix de structures qui rencontrent ces contraintes. Ce cours a pour but de prsenter l'tudiant et l'tudiante diffrents types de structures de donnes : linaires, non linaires, dynamiques, etc., chacune rpondant un type de besoins. Il a pour but galement de relever l'importance de la spcification rigoureuse des structures de donnes, le pourquoi de l'tude de la complexit des algorithmes qui les manipulent et amener effectuer des choix clairs pour la mise en oeuvre de ces structures. Enfin, ce cours servira comme tremplin pour le transfert des connaissances de la programmation modulaire et structure la programmation oriente objet. Importance dans le programme Ce cours est obligatoire dans tous nos programmes de formation de 1er cycle en informatique et en gnie logiciel. Les donnes tant souvent au cur des applications informatiques, leur organisation est ncessaire leur manipulation efficace. Bien que certaines structures de donnes de base soient offertes dans les langages de programmation (tels les tableaux par exemple), le dveloppement de logiciel de grande envergure ncessite souvent l'adaptation de leur modle d'implantation afin de rencontrer certaines contraintes dterminantes pour l'application. Cette tche de conception de structures de donnes adaptes et de modles d'implantation inhrents l'environnement et aux besoins des applications qu'elles visent desservir est indissociable de la tche d'un informaticien.

Objectifs spcifiques l'issue du cours, l'tudiant sera en mesure : 1. de rsoudre des problmes en programmant efficacement des structure de donnes utiles; a. modliser les structures de donnes en terme de types abstraits; b. dcider adquatement d'un modle pour leur reprsentation en mmoire; c. implanter leurs oprations de base tant donn le modle choisi; d. construire des algorithmes pour la rsolution des problmes en se basant sur l'interface des types abstraits. 2. de manipuler des structures de donnes de base tels les listes, les arbres et les graphes; a. les dcrire en terme de types abstraits; b. implanter leurs algorithmes de gestion (oprations de base); c. valuer la complexit de ces algorithmes. 3. de comparer en terme de complexit et utiliser judicieusement diffrents algorithmes de tri et de recherche. 4. de passer de la programmation modulaire et structure la programmation oriente objet . Habilets transversales qui seront acquises : gestion adquate des diffrentes classes de la mmoire utile lors de l'excution d'un programme; application des mthodes standard de rsolution de problme tels la rcursivit, le retour arrire, etc.; 2/11

analyse de la complexit thorique d'un algorithme et la vrifier exprimentalement; conception de solutions abstraites en distinguant spcification et implmentation; matrise du langage C; bonne connaissance de la syntaxe du langage Java.

Contenu Semaine 1 (12 janvier) Prsentation du cours Structures de donnes et programmation Types de donnes abstraits Dfinition Encapsulation de donnes et abstraction Formalisme de spcifications Modles d'implantation Exemple: le type liste ordonne, implantation dans un tableau de la classe automatique Semaine 2 (19 janvier) Les pointeurs Modles d'implantation par chanage dynamique Semaine 3 (26 janvier) Retour au type liste ordonne: implantation par des listes simplement chanes listes doublement chanes (listes bidirectionnelles) les listes circulaires (anneaux) Gestion dynamique de la mmoire: Organisation de la mmoire et politiques d'allocation Morcellement de la mmoire et ramasse-miettes Semaine 4 (2 fvrier) Les piles Introduction et exemples d'application Description en termes de type abstrait et implantation Les files Introduction Description en termes de type abstrait et implantation Les files prioritaires Rappel sur la rcursivit Semaine 5 (9 fvrier) Les graphes (1re partie): Description en termes de type abstrait Modles d'implantation Clture transitive, algorithme de Warshall, algorithme de Floyd 3/11

Parcours d'un graphe: algorithme de parcours par contagion, par sondage Tri topologique Semaine 6 (16 fvrier) Les graphes (2ime partie): Composantes connexes d'un graphe Plus court chemin: algorithme de Dijkstra, algorithme de Bellman-Ford Une application des graphes: les rseaux (flots) Semaine 7 (23 fvrier) Algorithmes: complexit, compromis espace-temps et notation asymptotique Les algorithmes de recherche et leur complexit Semaine 7 (2 mars) : Semaine de lecture Semaine 9 (9 mars) Les arbres binaires (1re partie) Description en termes de type abstrait et implantation: Dans un tableau Par chanage dynamique Parcours d'arbres Arbres binaires complets ou feuillus Semaine 10 (16 mars) Les arbres binaires (2 ime partie) Arbres ordonns. Arbres de tri et de recherche Arbres AVL et principaux algorithmes pour leur manipulation Algorithme de rebalancement Semaine 11 (23 mars) Arbres cousus ou enchans Arbres n-aires ou gnraliss Arbres-B et ses variantes Arbre de Huffman: introduction la compression de donnes Semaine 12 (30 mars) Tables de dispersion Fonctions de dispersion Rsolution de conflits (collisions) par chanage externe Rsolution de conflits par chanage interne Rsolution de conflits par regroupement Semaine 13 (6 avril) Les tris: Dfinitions 4/11

Tris internes versus tris externes Rappel de quelques algorithmes de tris simples et de leur complexit Tris complexes et leur complexit tri par monceau (HeapSort), tri dans un arbre binaire (TreeSort) tri rapide (QuickSort) tri fusion (MergeSort) Semaine 14 (13 avril) Du type abstrait la programmation par objets Prsentation de la programmation orient objet Un langage orient objet: Java Prsentation Environnement et syntaxe Semaine 15 (20 avril) Java Tableaux Chanes de caractres Classes enveloppes (wrapper) Classe Vector Packages Documentation

Modalits d'valuation

Examen

Date

Heure

Pondration de la note finale 5.00% 27.00% 5.00% 5.00% 28.00%

Document(s) autoris(s)

Test #1 Examen intra Test #2 Test #3 Examen final

Mardi 3 fvrier 2009 Vendredi 27 fvrier 2009 Mardi 24 mars 2009 Mardi 21 avril 2009 Vendredi 24 avril 2009

11h00 12h20 18h30 21h20 11h00 12h20 10h30 12h20 18h30 21h20 Date

Aucun Notes de cours Aucun Aucun Notes de cours

Travail quipes TP#1 12

Heure 17h00

Pondration de la note finale 10.00%

Lundi 23 fvrier 2009

5/11

TP#2 TP#3

12 12

Lundi 23 mars 2009 Lundi 20 avril 2009

17h00 17h00

10.00% 10.00%

Politiques sur les examens Concernant une absence un examen, le plus rapidement possible, et ce dans un dlai maximal de 3 jours ouvrables l'tudiant doit utiliser le formulaire Web cet effet qu'il ou elle trouvera sur son guichet tudiant. Sans quoi, une note de 0 sera automatiquement alloue pour cet examen. Seuls motifs acceptables pour s'absenter un examen : 1. incapacit pour l'tudiant de passer l'examen durant la plage horaire de cet examen, tre mentionn comme tel par un billet prcis d'un mdecin (incluant les coordonnes de ce dernier), suite une consultation mdicale. Ce billet doit tre prsent la direction du dpartement (tel qu'indiqu dans les instructions associes au formulaire Web remplir), qui le dposera au dossier de l'tudiant. L'enseignant n'intervient pas dans ce processus mais en est inform automatiquement, d'o la ncessit pour l'tudiant de remplir ce formulaire Web le plus rapidement possible, car dans l'attente, une note de 0 est automatiquement attribue l'tudiant pour cette preuve. 2. mortalit d'un proche, tre document par une preuve de dcs de la personne et une lettre d'une tierce personne attestant du lien de parent ou autre entre l'tudiant et la personne dcde. Ces pices doivent galement tre prsentes la direction du dpartement (tel qu'indiqu dans les instructions associes au formulaire Web remplir). L'enseignant n'intervient pas dans ce processus mais en est inform automatiquement, d'o la ncessit pour l'tudiant de remplir ce formulaire Web le plus rapidement possible, car dans l'attente, une note de 0 est automatiquement attribue l'tudiant pour cette preuve. Aucune justification d'absence relie des vnements sportifs (sauf pour les athltes du Rouge et Or ou d'quipes nationales, sur approbation pralable de la direction du Dpartement), un travail, un conflit d'horaire avec d'autres cours ou examens, des horaires de voyage conflictuels (selon des billets d'avion dj achets par exemple), ou des motifs religieux quelconques n'est acceptable. Les conflits d'horaire doivent tre rsolus au tout dbut de la session, avant la fin de la priode de modification de choix de cours, par l'tudiant lui-mme. Un tudiant inscrit l'un de nos cours aprs cette date est rput ne pas avoir de conflit d'horaire pour passer ses examens. Toute absence justifie un examen entrane l'obligation pour l'tudiant de passer un examen report. Cet examen se droulera normalement durant le week-end (soit entre le vendredi aprs-midi et le dimanche soir) de la premire semaine de cours de la session acadmique suivante. L'tudiant a l'obligation de se rendre disponible cette date, sans quoi il obtiendra la note de 0 pour cet examen. Les examens reports de l'automne 2008 auront lieu le samedi 17 janvier 2009, ceux de l'hiver 2009 doivent avoir lieu le samedi 9 mai et ceux de l't 2009 devraient normalement avoir lieu le samedi 5 septembre.

Politiques sur les travaux

6/11

Dans le cadre d'un travail, toute communication entre quipes est strictement dfendue. Toute personne prise plagier, tricher, activement ou passivement, ou contrevenir aux directives donnes dans le cadre d'un examen ou d'un travail not et contributoire la note finale du cours, peu importe la pondration attribue l'examen ou au travail en question, fera face aux consquences de ses gestes, qui peuvent aller jusqu' l'exclusion de son programme de formation. Une politique stricte de tolrance zro est applique en tout temps et sous toutes circonstances. Tous les cas seront rfrs la direction du Dpartement. L'tudiant trouvera sur son guichet tudiant la politique dpartementale relative aux examens; il ou elle est rput(e) en avoir pris connaissance.

Consignes sur les examens

Dans le cas de cours plusieurs sections, les examens se drouleront au mme moment pour permettre d'offrir un examen commun toutes les sections du cours. Les calculatrices ainsi que les ordinateurs portables seront interdits lors des examens. Toute documentation sera interdite lors des tests en classe et au laboratoire. Toute rvision de note devra tre demande au professeur dans un dlai de 10 jours ouvrables aprs l'affichage des rsultats d'un examen.

Consignes sur les travaux

Tout travail pratique non remis dans les dlais prvus se verra pnalis suivant les modalits qui seront indiques dans l'nonc du travail pratique (la date et l'heure d'chance seront indiques sur l'nonc du travail). Toute rvision de note devra tre demande au professeur dans un dlai de 10 jours ouvrables aprs la remise du travail corrig.

chelle des cotes

chelle des cotes A+ [ 92.00 - 100 ] B+ [ 80.00 - 83.99 ] C+ [ 70.00 - 72.99 ] D+ [ 62.00 - 63.99 ] E [ 0.00 - 59.99 ] X A [ 88.00 - 91.99 ] B [ 76.00 - 79.99 ] C [ 67.00 - 69.99 ] D [ 60.00 - 61.99 ] A- [ 84.00 - 87.99 ] B- [ 73.00 - 75.99 ] C- [ 64.00 - 66.99 ] Russite Russite Russite Russite chec Abandon sans chec (dans les dlais prvus)

7/11

Politique sur les cotes L'enseignant se rserve le droit d'ajuster quelque peu cette rpartition des cotes afin de rflter l'valuation juste des tudiants du cours.

La note de passage est de 60%. Rvision de cote : selon les rglements du premier cycle.

Modalits sur les laboratoires Des laboratoires sont mis votre disposition par le dpartement d'informatique et de gnie logiciel pour des accs facultatifs 24h sur 24, 7 jours sur 7. Ils sont situs au 3920-PLT, 3928-PLT et 3966-PLT. La description des quipements mis votre disposition dans ces laboratoires peut tre consult ici: http://www.ift.ulaval.ca/enseignement/laboratoires_d_enseignement/.

Mthodologie la maison Lecture et rsolution des exercices proposs dans le semainier sur le site Web du cours. Ralisation des 3 travaux pratiques obligatoires faire durant toute la session ( effectuer obligatoirement en quipe de 2 personnes). Ils seront corrigs, comments et nots (ils contribueront la note finale). Ces travaux peuvent tre galement faits aux laboratoires qui vous sont assigns tout le long de la session. En classe (4 heures par semaine) Prsentation de la matire par le professeur. Les tudiants et les tudiantes interviennent durant le cours pour demander des explications supplmentaires relativement un sujet trait en cours, une lecture faite la maison, une solution d'un exercice donn ou bien au travail pratique en cours. Au laboratoire (2 heures par semaine) Mise en pratique, par petit groupe, des concepts vus en classe avec un environnement de programmation en langage C et en Java. Programmation d'exercices et de certaines parties des travaux pratiques dont vous aurez au pralable conu l'algorithme. Les inscriptions ces laboratoires doivent se faire auprs de A. Alikacem (voir coordonnes sur la premire page de ce syllabus).

Logiciels Les logiciels Visual C++ 6.0 (Windows) et Eclipse (Windows et Linux) sont les compilateurs officiels dans le cadre de notre cours en ce qui a trait la programmation en C. Les tudiants peuvent utiliser d'autres environnements de programmation en C, comme .Net par exemple. Dans tous les cas, la ralisation de programmes portables est une des exigences dans le cours.

8/11

Eclipse est galement un environnement suggr pour la programmation en Java. C'est un environnement de dveloppement intgr (un IDE) devenant rellement utile qu'une fois les bases du langage matrises. Pour dmarrer l'apprentissage de Java, l'utilisation de l'diteur TextPad, disponible l'adresse : www.textpad.com, est fortement suggre.

De plus, et pour effectuer les travaux de programmation, chaque quipe doit utiliser un compte Subversion, un systme d'archivage, de gestion de versions et de partage de fichiers entre utilisateurs autoris. La procdure pour l'obtention d'un comptes Subversion sur le serveur dpartemental, un compte par quipe, sera explique en temps opportun (avant le dbut du premier travail pratique).

Bibliographie Algorithmes et structures de donnes en C. T.A Standish (1995). Data Structures, Algorithms & Software Principles in C. Addison-Wesley. ISBN: 0-201-59118-9. Autres rfrences Robert Sedgewick (2002). Algorithms in C (Parts 1-5). Addison-Wesley. En Franais : "Algorithmes en langage C", trad. par J.M. Moreau, InterEditions, 1990. Michel Divay (1999). Algorithmes et structures de donnes. Cours et exercices en langage C. Dunod. Geoff Whale (1996). Data Structures and abstraction using C. PWS Publishing company. Van Wyk, C. J., (1988). Data Structures and C Programs. Addison-Wesley. Weiss, M. A., (1997). Data Structures and Algorithm Analysis in C. Addison Wesley. E. Horowitz, S. Sahni, S. Anderson-Freed (1993). Fundamentals of data structures in C, Computer Science Press. Programmation en Java. Tous les ouvrages cits ci-aprs sont adapts la dernire version (1.5) du JDK. Deitel & Deitel (2005). Java, how to program, sixth edition. Prentice Hall. ISBN: 0-13-148398-6. Autres rfrences Cay Horstmann (2005). Java concepts, fourth edition. John Wiley. C. Thomas Wu (2006). An Introduction to Object-Oriented Programming with Java, 4/e. Mcgraw-Hill. Bruce Eckel (2006). Thinking in Java, 4th edition. Cette version est disponible gratuitement partir d'ici : http://mindview.net/Books/TIJ4 (en anglais seulement).

Manuel de cours A. Alikacem, M. Aoun-Allah, D. Genest, J. Harvey. IFT-10541: Structures de donnes (version rvise : t 2003). Manuel de cours. Notez bien: La vente de notes de cours se fera durant la premire semaine de la session au local 3370 du pavillon Pouliot. Les heures sont de 8h 19h du lundi au jeudi et de 8h 17h le vendredi. La vente se poursuivra par la suite chez Zone, au local 0128 du pavillon 9/11

Adrien-Pouliot.

Le livre Penser en Java, la version franaise de Thinking in Java de Bruce Eckel (2ime dition) tlchargeable gratuitement partir d'ici : http://penserenjava.free.fr/. Malgr que cet ouvrage en est sa 4ime dition (disponible uniquement en anglais), cette seconde dition couvre trs bien les objectifs de la partie Java dans notre cours.

Politique sur l'utilisation d'appareils lectroniques pendant une sance d'valuation L'utilisation d'appareils lectroniques (cellulaire ou autre appareil tlphonique sans fil, pagette, baladeur, agenda lectronique, etc.) est interdite au cours d'une sance d'valuation et de toute autre activit durant laquelle l'enseignant l'interdit. De plus, seuls certains modles de calculatrices sont autoriss durant les sances d'valuation. Pour l'anne 2008-2009, les modles suivants sont autoriss : Hewlett Packard HP 20S, HP 30S, HP 32S2, HP 33S TI-30Xa, TI-30XIIB, TI-30XIIS, TI-36X, Texas Instrument BA35 Sharp EL-531*, EL-546*, EL-520* Casio ASIO FX-300 MS, FX-300W Plus * Calculatrices Sharp: sans considration pour les lettres qui suivent le numro Dans tous ces cas, la calculatrice doit tre valide par une vignette autocollante mise par la COOP tudiante ZONE. Information spcifique aux tudiants de l'cole d'actuariat Les calculatrices autorises lors des examens sont uniquement les modles rpondant aux normes de la Society of Actuaries et de la Casualty Actuarial Society pour leurs examens, soit les modles Texas Instruments suivants : BA-35 (solaire ou pile) BA II Plus BA II Plus Professional TI-30Xa TI-30X II (IIS ou IIB) TI-30X MultiView (XS ou XB)

Politique sur le plagiat et la fraude acadmique L'Universit Laval possde des dispositions relatives au plagiat et la fraude acadmique. Le Rglement disciplinaire l'intention des tudiants de l'Universit Laval est disponible cette adresse http://www.ulaval.ca/sg/reg/Reglements/Disc. Ce texte encadre les activits sanctionnes sur le plan du plagiat, de la tricherie et de la fraude acadmique. Ces mesures ont t mises en place afin de protger l'intgrit acadmique au sein de l'institution dans le but de prserver la crdibilit des attestations ou des diplmes dlivrs et afin de s'assurer que les relevs de notes et les diplmes tmoignent de la comptence et de la formation relle des tudiants . Parmi les infractions 10/11

acadmiques, l'article 28 rpertorie diffrentes infractions relies au plagiat: copier un document; utiliser l'oeuvre d'autrui, en tout ou en partie, sans en mentionner la source; soumettre le mme travail dans deux cours diffrents l'insu des enseignants; etc. Ce rglement s'attribue toutes les activits exiges de l'tudiant dans le cadre de son cours et de son programme d'tudes. Les consquences peuvent mener une rprimande, une mise en probation, l'attribution d'une cote R , une suspension d'inscription l'Universit, le congdiement, une expulsion ou au rappel du diplme de l'individu.

11/11

Vous aimerez peut-être aussi