IFT-2008 : Algorithmes et structures de données - Pixel

Transcription

IFT-2008 : Algorithmes et structures de données - Pixel
IFT-2008 : Algorithmes et structures de données
NRC 55974
Été 2015
Mode d'enseignement : À distance
Temps consacré : 3-2-4
Crédit(s) : 3
Préalables : GIF 1003
Notions d'ordre : comportement du meilleur cas, du cas moyen et du pire cas.
Notion de types abstraits et modularité. Programmation générique. Structures
de données classiques : les listes, les piles, les files (avec et sans priorité), les
arborescences, les graphes, les tables de dispersion et les monceaux binaires.
Algorithmes de tri.
Ce cours est offert à distance. Pour plus d’informations, consultez la page du
cours à l’adresse www.distance.ulaval.ca ».
Plage horaire :
Classe virtuelle synchrone
lundi
14h00 à 15h50
Du 4 mai 2015 au 19 juil. 2015
mardi
11h00 à 12h50
Du 4 mai 2015 au 19 juil. 2015
vendredi 08h30 à 10h20
Du 4 mai 2015 au 19 juil. 2015
Il se peut que l'horaire du cours ait été modifié depuis la dernière
synchronisation avec Capsule. Vérifier l'horaire dans Capsule
Site de cours :
https://www.portaildescours.ulaval.ca/ena/site/accueil?idSite=61457
Coordonnées et disponibilités
Mondher Bouden
Enseignant
Veuillez s.v.p. utiliser cette adresse pour me contacter et ne pas utiliser mon
courriel personnel :
[email protected]
Disponibilités :
jeudi 12h00 à 13h00 PLT-3728
jeudi 16h00 à 17h00 PLT-3728
Du 4 mai 2015 au 19 juil. 2015
Du 4 mai 2015 au 19 juil. 2015
Mario Marchand
Professeur responsable du
cours
[email protected]
Jean-Francis Roy
Auxilaire d'enseignement:
Travaux dirigés
[email protected]
Franck Manirakiza
Auxilaire d'enseignement:
Service CARÉ
[email protected]
Soutien technique :
Pour recevoir du soutien technique relatif à l'utilisation du Portail des Cours,
contactez :
Comptoir LiberT (FSG)
Pavillon Adrien-Pouliot, Local 3709
© Université Laval
Mis à jour le 5 mai 2015 10:44
Page 1 de 12
Pavillon Adrien-Pouliot, Local 3709
[email protected]
418-656-2131 poste 4651
Toutes sessions (du 1 janvier au 31 décembre)
Lundi
08h00 à 18h45
Mardi
08h00 à 18h45
Mercredi
08h00 à 18h45
Jeudi
08h00 à 18h45
Vendredi
08h00 à 16h45
© Université Laval
Mis à jour le 5 mai 2015 10:44
Page 2 de 12
Sommaire
Description du cours ......................................................................................................................... 4
Objectifs ....................................................................................................................................... 4
Objectifs spécifiques ....................................................................................................................... 4
Méthodologie ................................................................................................................................. 4
Description sommaire ..................................................................................................................... 5
Contenu et activités .......................................................................................................................... 5
Évaluations et résultats .................................................................................................................... 6
Modalités d'évaluation ..................................................................................................................... 6
Informations détaillées sur les évaluations sommatives ....................................................................... 6
Intra ........................................................................................................................................ 6
Final ........................................................................................................................................ 6
Travail pratique 1 ...................................................................................................................... 7
Travail pratique 2 ...................................................................................................................... 7
Travail pratique 3 ...................................................................................................................... 7
Politique sur les examens ................................................................................................................ 7
Politique sur les travaux .................................................................................................................. 8
Consignes sur les examens .............................................................................................................. 8
Consignes sur les travaux ................................................................................................................ 8
Échelle des cotes ............................................................................................................................ 9
Politique sur les cotes ..................................................................................................................... 9
Modalités sur les laboratoires ........................................................................................................... 9
Politique sur l'utilisation d'appareils électroniques ............................................................................... 9
Politique sur le plagiat et la fraude académique .................................................................................. 9
Étudiants ayant un handicap, un trouble d’apprentissage ou un trouble mental ....................................... 9
Matériel didactique ......................................................................................................................... 10
Matériel obligatoire ....................................................................................................................... 10
Matériel complémentaire ............................................................................................................... 10
Logiciels ...................................................................................................................................... 10
Médiagraphie et annexes ................................................................................................................ 10
Bibliographie ................................................................................................................................ 10
© Université Laval
Mis à jour le 5 mai 2015 10:44
Page 3 de 12
Description du cours
Objectifs
Une application informatique utilise généralement très intensément les données qui lui sont liées. La
représentation et l'organisation de ces données sont donc vitales à l'efficacité de l'application qui s'en sert.
Conséquemment, à partir des contraintes reliées à une application, il faut effectuer un choix de structures qui
rencontrent ces contraintes.
Ce cours a pour but de présenter à l'étudiant et l'étudiante les différents types de structures de données,
chacune répondant à un type de besoins. Il a pour but également de relever l'importance de la spécification
rigoureuse des structures de données et de l'étude de la complexité des algorithmes qui les manipulent afin
d'effectuer des choix éclairés pour la mise en oeuvre de ces structures.
Importance dans le programme Ce cours est obligatoire dans tous les programmes de formation de 1er cycle en informatique et en génie
logiciel. Les données étant souvent au coeur des applications informatiques, leur organisation est nécessaire à
leur manipulation efficace. Bien que certaines structures de données de base soient offertes dans les langages
de programmation, le développement de logiciel de grande envergure nécessite souvent l'adaptation de leur
modèle d'implantation afin de rencontrer certaines contraintes déterminantes pour l'application. Cette tâche de
conception de structures de données adaptées et de modèles d'implantation inhérents à l'environnement et aux
besoins des applications qu'elles visent à desservir est indissociable de la tâche d'un informaticien.
Objectifs spécifiques
À l'issue du cours, l'étudiant sera en mesure :
1. de résoudre des problèmes en programmant efficacement des structure de données utiles;
1. modéliser les structures de données en terme de types abstraits;
2. décider adéquatement d'un modèle pour leur représentation en mémoire;
3. implanter leurs opérations de base étant donné le modèle choisi;
4. construire des algorithmes pour la résolution des problèmes en se basant sur l'interface des
types abstraits
2. de manipuler des structures de données de base tels les listes, les piles, les files, les arbres et
les graphes;
1. les décrire en terme de types abstraits;
2. implanter leurs algorithmes de gestion (opérations de base);
3. évaluer la complexité de ces algorithmes.
3. de comparer en terme de complexité et utiliser judicieusement différents algorithmes de tri et
de recherche.
Méthodologie
Cours théorique (2 séances par semaine: lundi de 14h à 15h50 et mardi de 11h à 12h50)
Présentation de la matière par l'enseignant.
Les étudiants et les étudiantes interviennent durant le cours pour demander des explications
supplémentaires relativement à un sujet traité en cours.
Exception: La séance du lundi 1er juin sera donnée la même journée de 15h à 16h50 et la séance du
mardi 2 juin sera donnée le mercredi 3 juin de 11h à 12h50.
Travaux dirigés (1 séance par semaine: vendredi de 8h30 à 10h20)
Mise en pratique des concepts vus en classe avec un environnement de programmation en langage C++.
Programmation d'exercices dont vous aurez au préalable conçu l'algorithme.
Exception: la séance du vendredi 8 mai sera donnée la même journée de 14h et 15h50.
Séances de dépannages supplémentaires (2 séance par semaine: lundi de 19h à 20h et jeudi de 19h
à 20h)
Ces séances commeceront le 11 mai et elles ne seront pas enregistrées.
© Université Laval
Mis à jour le 5 mai 2015 10:44
Page 4 de 12
Ces séances commeceront le 11 mai et elles ne seront pas enregistrées.
Un auxiliaire d'enseignement sera présent afin de répondre à vos questions (p.ex. des questions sur le
C++, des questions sur les TPs, etc.). En fait, c'est le service CARÉ de l'été pour ceux qui ont en besoin
surtout ceux qui travaillent le jour et ne peuvent donc pas assister aux autres séances en direct.
À la maison
Consultez le guide d'études pour savoir ce qu'il y a à faire chaque semaine.
Il est primordial d'être à jour dans votre révision de la matière et surtout dans la réalisation des
exercices proposés sur le site Web du cours. Il faut également commencer les travaux pratiques aussitôt
qu'ils seront disponibles, sinon vous ne serez pas capable de les remettre à temps.
Activités d'apprentissage
Sur le site du cours (dans la section «Contenu et activités»), chaque module présente:
les objectifs spécifiques du module
les thèmes abordés du module;
les lectures à faire, des commentaires et explications sur des notions difficiles, etc.;
les activités d'intégration (ex. : séries d'exercices, etc.).
Après avoir pris connaissance des thèmes et des objectifs du module, nous vous conseillons de faire une lecture
attentive des textes proposés. Vos lectures vous auront familiarisé avec les notions abordées durant la séance
de cours. Vous les comprendrez donc plus facilement et vous serez plus attentif. Les questions que vous
poserez seront aussi plus profitables.
Courrier électronique
Une adresse de courrier électronique vous est fournie par l'Université Laval. Vous devrez utiliser cette adresse
pour toutes vos communications dans les cours du baccalauréat en informatique de l'Université Laval. Cette
adresse est composée du prénom du nom et d'un nombre, ces trois éléments étant séparés par un point, suivi
de l'arobas (a commercial) et de ulaval.ca (exemple: l'adresse de Jean Til est [email protected]). Le nombre
indique la nième personne portant ce nom et ce prénom à l'Université Laval. Pour connaître votre adresse de
courriel et relever votre courriel ulaval.ca, veuillez consulter http://www.capsule.ulaval.ca
Il est à noter qu'étant donné le très grand volume de courrier à traiter quotidiennement, il se peut que vous
n'obteniez une réponse à l'une de vos questions que quelques jours ouvrables après avoir envoyé votre
message. Dans ces cas, nous apprécierons votre compréhension. Nous vous recommandons toutefois de ne pas
attendre à la dernière minute pour nous contacter; SVP planifiez ce délai lorsque vous nous envoyez un
message. De plus, afin d'éviter des délais supplémentaires, il est recommandé d'être explicite dans vos
questions et commentaires (ex. : spécifiez les noms des documents et les pages auxquelles vous vous référez),
de vous identifier (nom prénom, matricule) pour permettre une réponse personnalisée.
Description sommaire
Conception et analyse d'algorithmes : notions d'ordre; comportement du meilleur, du moyen et du pire cas.
Conception et développement d'algorithmes : notion de types abstraits et modularité, programmation
générique, structures de données classiques : les listes, les piles, les files (avec et sans priorité), les
arborescences, les graphes, les tables de dispersion et les monceaux binaires, algorithmes de tri.
Contenu et activités
Le tableau ci-dessous présente les semaines d'activités prévues dans le cadre du cours.
Titre
Date
Classe virtuelle Adobe Connect
Enregistrements classe virtuelle
Machine virtuelle, tutoriels et normes de programmation
Accès à votre espace disque personnel
Guide d'études
© Université Laval
Mis à jour le 5 mai 2015 10:44
Page 5 de 12
Les modules du cours
Module 1 - Analyse d'algorithmes
Module 2 : Éléments du C++ pour les structures de données
Module 3 : Le type abstrait liste
Module 4 : Les types abstraits pile et file. Récursivité.
Module 5 - Les structures arborescentes
Module 6 - Les arbres binaires de tri et de recherche. Les arbres AVL
Module 7 - Les tables de dispersion
Module 8 : Les graphes (1ière partie)
Module 9 : Les graphes (2ière partie)
Module 10 : Les algorithmes de tri
Note : Veuillez vous référer à la section Contenu et activités de votre site de cours pour de plus amples détails.
Évaluations et résultats
Modalités d'évaluation
Sommatives
Titre
Date
Mode de travail
Pondération
70 %
Examens (Somme des évaluations de ce regroupement)
Intra
Le 13 juin 2015 de 09h00 à 11h50
Individuel
35 %
Final
Le 18 juil. 2015 de 09h00 à 11h50
Individuel
35 %
30 %
Travaux (Somme des évaluations de ce regroupement)
Travail pratique 1
Dû le 10 juin 2015 à 17h00
Individuel
10 %
Travail pratique 2
Dû le 2 juil. 2015 à 17h00
Individuel
10 %
Travail pratique 3
Dû le 17 juil. 2015 à 17h00
Individuel
10 %
Informations détaillées sur les évaluations sommatives
Intra
Date :
Mode de travail :
Pondération :
Remise de l'évaluation :
Matériel autorisé :
Le 13 juin 2015 de 09h00 à 11h50
Individuel
35 %
Local de l'examen
Une feuille manuscrite 8 et 1/2 par 11 recto-verso
Final
Date :
Mode de travail :
Pondération :
Remise de l'évaluation :
Matériel autorisé :
Le 18 juil. 2015 de 09h00 à 11h50
Individuel
35 %
Local d'examen
Une feuille manuscrite 8 et 1/2 par 11 recto-verso
Travail pratique 1
© Université Laval
Mis à jour le 5 mai 2015 10:44
Page 6 de 12
Travail pratique 1
Date de remise :
Mode de travail :
Pondération :
Remise de l'évaluation :
10 juin 2015 à 17h00
Individuel
10 %
Boîte de dépot
Directives de l'évaluation :
Veuillez prendre connaissance des sections «Consignes sur les travaux» et «Politique sur les travaux».
Travail pratique 2
Date de remise :
Mode de travail :
Pondération :
Remise de l'évaluation :
2 juil. 2015 à 17h00
Individuel
10 %
Boîte de dépot
Directives de l'évaluation :
Veuillez prendre connaissance des sections «Consignes sur les travaux» et «Politique sur les travaux».
Travail pratique 3
Date de remise :
Mode de travail :
Pondération :
Remise de l'évaluation :
17 juil. 2015 à 17h00
Individuel
10 %
Boîte de dépot
Directives de l'évaluation :
Veuillez prendre connaissance des sections «Consignes sur les travaux» et «Politique sur les travaux».
Politique sur les examens
Les étudiants qui ont une lettre d'Attestation d'accommodations scolaires obtenue auprès d'un conseiller du
secteur Accueil et soutien aux étudiants en situation de handicap (ACSESH) doivent compléter un rapport
d'anomalie sur Pixel à cet effet au début de la session. Les étudiants doivent également rencontrer leur
professeur au début de la session afin que des mesures d'accommodations en classe ou lors des évaluations
puissent être prévues et planifiées suffisamment à l'avance puis mises en place. Ceux qui ont une déficience
fonctionnelle ou un handicap, mais qui n'ont pas cette lettre doivent contacter le secteur ACSESH au
656-2880 le plus tôt possible.
Les étudiants inscrits dans un cours à distance et résidant, durant leurs études, à plus de 100 km de la ville de
Québec doivent procéder à l'inscription pour le lieu d'examen au plus tard le 6 mai à l'adresse suivante : www.distance.ulaval.ca/lieu_examen
Concernant une absence à un examen, le plus rapidement possible, et ce dans un délai 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 allouée 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 précis d'un médecin (incluant les coordonnées de ce dernier), suite à
une consultation médicale. Ce billet doit être présenté à la direction du département (tel qu'indiqué dans
les instructions associées au formulaire Web à remplir), qui le déposera au dossier de l'étudiant.
L'enseignant n'intervient pas dans ce processus mais en est informé automatiquement, d'où la
nécessité pour l'étudiant de remplir ce formulaire Web le plus rapidement possible, car dans
l'attente, une note de 0 est automatiquement attribuée à l'étudiant pour cette épreuve.
2. mortalité d'un proche, à être documenté par une preuve de décès de la personne et une lettre d'une
tierce personne attestant du lien de parenté ou autre entre l'étudiant et la personne décédée. Ces pièces
doivent également être présentées à la direction du département (tel qu'indiqué dans les instructions
associées au formulaire Web à remplir). L'enseignant n'intervient pas dans ce processus mais en est
© Université Laval
Mis à jour le 5 mai 2015 10:44
Page 7 de 12
2. associées au formulaire Web à remplir). L'enseignant n'intervient pas dans ce processus mais en est
informé automatiquement, d'où la nécessité pour l'étudiant de remplir ce formulaire Web le plus
rapidement possible, car dans l'attente, une note de 0 est automatiquement attribuée à l'étudiant pour
cette épreuve.
Aucune justification d'absence reliée à des événements sportifs (sauf pour les athlètes du Rouge et Or ou
d'équipes nationales, sur approbation préalable de la direction du Département), à un travail, à un
conflit d'horaire avec d'autres cours ou examens, à des horaires de voyage conflictuels (selon des billets
d'avion déjà achetés par exemple), ou à des motifs religieux quelconques n'est acceptable. Les conflits
d'horaire doivent être résolus au tout début de la session, avant la fin de la période de modification de
choix de cours, par l'étudiant lui-même. Un étudiant inscrit à l'un de nos cours après cette date est
réputé ne pas avoir de conflit d'horaire pour passer ses examens.
Toute absence justifiée à un examen entraîne l'obligation pour l'étudiant de passer un examen reporté.
Cet examen est planifié le samedi de la première semaine de cours de la session académique
suivante. L'étudiant a l'obligation de se rendre disponible à cette date, sans quoi il obtiendra la
note 0 pour cet examen. Pour les cours à distance, les examens de reprise n'auront lieu qu'à
l'Université Laval.
Politique sur les travaux
Dans le cadre d'un travail, toute communication entre équipes est strictement défendue.
Toute personne prise à plagier, à tricher, activement ou passivement, ou à contrevenir aux directives
données dans le cadre d'un examen ou d'un travail noté et contributoire à la note finale du cours, peu
importe la pondération attribuée à l'examen ou au travail en question, fera face aux conséquences de ses
gestes, qui peuvent aller jusqu'à l'exclusion de son programme de formation. Une politique stricte de
tolérance zéro est appliquée en tout temps et sous toutes circonstances. Tous les cas seront référés à la
direction du Département.
L'étudiant trouvera sur son guichet étudiant la politique départementale relative aux examens; il ou elle
est réputé(e) en avoir pris connaissance.
Consignes sur les examens
Les étudiants qui veulent faire leur examen sous surveillance à l'extérieur du campus doivent obligatoirement
s'inscrire au lieu d'examens avant le 15 mai 2015. Pour plus d'informations, consultez le site Web de la
formation à distance.
Notez que le Bureau de la formation à distance ne produit plus d’avis de convocation pour les examens sous
surveillance des cours à distance. Les informations relatives à la tenue des examens sont disponibles dans le dossier d’examens de chacun des étudiants.
Important :
Toute révision de note devra être demandée à l'enseignant dans un délai de 10 jours ouvrables après
l'affichage des résultats d'un examen. Il est à noter que les examens reportés suite à toute absence justifiée ne
seront en aucun cas moins difficiles que les examens réguliers.
Consignes sur les travaux
Tous les travaux doivent être remis selon les modalités décrites à la fin de l'énoncé de chaque travail
pratique à réaliser. Les énoncés seront publiés sur le site Web du cours. Nous insistons ici pour vous
rappeler que l'accomplissement des travaux pratiques est une activité vitale à l'apprentissage dans ce
cours.
Tout travail se verra pénalisé de 25% par jour de retard. Chaque journée de retard débute dès la limite
de remise dépassée (dès la première minute). Un retard excédant 2 jours provoquera le rejet du travail
pour la correction et la note de 0 pour ce travail. La remise doit se faire par voie électronique
uniquement en vous connectant à votre portail du cours ENA (aucun travail envoyé par courriel n'est
accepté).
Toute révision de note devra être demandée à l'enseignant dans un délai de 10 jours ouvrables après la
remise du travail corrigé.
© Université Laval
Mis à jour le 5 mai 2015 10:44
Page 8 de 12
remise du travail corrigé.
Échelle des cotes
Cote
% minimum
% maximum
Cote
% minimum
% maximum
A+
90
100
C+
72
73,99
A
86
89,99
C
69
71,99
A-
82
85,99
C-
65
68,99
B+
80
81,99
D+
61
64,99
B
77
79,99
D
60
60,99
B-
74
76,99
E
0
59,99
Politique sur les cotes
L'enseignant se réserve le droit d'ajuster quelque peu cette répartition des cotes afin de réfléter l'évaluation
juste des étudiants du cours.
Modalités sur les laboratoires
Tous les étudiants inscrits aux cours du Département d'informatique et de génie logiciel ont accès aux
laboratoires d'enseignement. Pour avoir de l'information sur ces laboratoires, consultez la page Web du
Département : http://www.ift.ulaval.ca.
Politique sur l'utilisation d'appareils électroniques
La politique sur l'utilisation d'appareils électroniques de la Faculté des sciences et de génie peut être consultée
à l'adresse : http://www.fsg.ulaval.ca/fileadmin/fsg/documents/PDF/Calculatrices-autorisees-FSG.pdf.
Politique sur le plagiat et la fraude académique
Règles disciplinaires
Tout étudiant qui commet une infraction au Règlement disciplinaire à l'intention des étudiants de l'Université
Laval dans le cadre du présent cours, notamment en matière de plagiat, est passible des sanctions qui sont
prévues dans ce règlement. Il est très important pour tout étudiant de prendre connaissance des articles 28 à
32 du Règlement disciplinaire. Celui-ci peut être consulté à l'adresse suivante:
http://www.ulaval.ca/sg/reg/Reglements/Reglement_disciplinaire.pdf
Plagiat
Tout étudiant est tenu de respecter les règles relatives au plagiat. Constitue notamment du plagiat le fait de:
i. copier textuellement un ou plusieurs passages provenant d'un ouvrage sous format papier ou
électronique sans mettre ces passages entre guillemets et sans en mentionner la source;
ii. résumer l'idée originale d'un auteur en l'exprimant dans ses propres mots (paraphraser) sans en
mentionner la source;
iii. traduire partiellement ou totalement un texte sans en mentionner la provenance;
iv. remettre un travail copié d'un autre étudiant (avec ou sans l'accord de cet autre étudiant);
v. remettre un travail téléchargé d'un site d'achat ou d'échange de travaux scolaires.
L'Université Laval étant abonnée à un service de détection de plagiat, il est possible que l'enseignant soumette
vos travaux pour analyse.
Étudiants ayant un handicap, un trouble d’apprentissage ou un trouble mental
© Université Laval
Mis à jour le 5 mai 2015 10:44
Page 9 de 12
Les étudiants qui ont une lettre d'Attestation d'accommodations scolaires obtenue auprès d'un conseiller du
secteur Accueil et soutien aux étudiants en situation de handicap (ACSESH) doivent impérativement se
conformer à la politique d'Accommodations scolaires aux examens de la Faculté des sciences et de génie qui
peut être consultée à l'adresse : http://www.fsg.ulaval.ca/fileadmin/fsg/documents/PDF/Politique-Facultaire-Accommodements.pdf
Matériel didactique
Matériel obligatoire
Tout le matériel obligatoire (incluant les notes de cours, tutoriels et exercices) va se trouver au fur et à
mesure sur le site Web de cours dans la section «Contenu et activités».
Matériel complémentaire
Data structures and algorithm analysis in C++
Auteur : Mark Allen Weiss
Éditeur : Addison-Wesley (Boston, Mass., 2012)
ISBN : 9780132847377
Data structures and algorithms in C++
Auteur : Michael T. Goodrich, Roberto Tamassia and David Mount
Éditeur : Wiley (Hoboken, N.J., 2010)
ISBN : 0470383275
Objects, abstraction, data structures and design using C++
Auteur : Elliot B. Koffman ; Paul A.T. Wolfgang
Éditeur : Wiley (Hoboken, NJ, 2006)
ISBN : 9780471467557
Algorithms in C++.
Auteur : Robert Sedgewick
Éditeur : Addison-Wesley (Reading, Mass., 1998)
ISBN : 9780201350883
Matériel facultatif:
Logiciels
Dans le cadre de ce cours, il est conseillé d'utiliser la machine virtuelle Linux qui contient tous les logiciels utiles
au cours (Eclipse, Google Test, Doxygene, etc...). Cette machine viruelle (gratuite) est disponible en
téléchargement à partir du site Web du cours et peut être installée sur votre ordinateur personnel (que ce soit
un PC ou MAC). Pour exécuter cette machine virtuelle, vous devez installer le lecteur VMware qui est gratuit
pour tous les étudiants de la FSG ayant une licence LiberT.
Médiagraphie et annexes
Bibliographie
Livres recommandés (mais non obligatoires)
Mark Allen Weiss, Data Structures and Algorithm Analysis in C++, 3rd edition, Addison Wesley, 2006
Très bon livre sur les structures de données, un des rares livres qui en parle sans trop s'enfarger
© Université Laval
Mis à jour le 5 mai 2015 10:44
Page 10 de 12
Très bon livre sur les structures de données, un des rares livres qui en parle sans trop s'enfarger
dans le C++
Corrigé des exercices du livre
Les codes source
Thomas H. Cormen et al. Introduction to algorithms, Third Edition. MIT 2009. Livre de référence
incontournable sur l'algorithmique indépendent de tout langage de programmation. Il aborde les
principales structures de données et leurs algorithmes. Il vous servira également pour le cours de
conception et d'analyse d'algorithmes IFT-3001.
Autres ouvrages très intéressants sur les structures de données en C++:
Michael Goodrich, Roberto Tamassia, David Mount. Data Structures and Algorithms in C++. 2006.
C'est mon deuxième choix, livre très rigoureux sur les principes de base de la programmation.
Koffman, Wolfgang: Objects, Abstraction, Data Structures and Design: Using C++. ISBN:
978-0-471-46755-7 ©2006
Intéressant mais trop de codes (en C++)...
Ça aurait été mon premier choix s'il n'était pas si "sec", il présente vraiment très peu d'exemples en
C++, c'est l'autre extrême. Excellent livre tout de même!
Robert Sedgewick, Algorithms in C++, Addison Wesley, 3rd Ed., Vol.1,Parts 1-4; Vol.2, Part
Programmation en C++
Bjarne Stroustrup: The C++ Programming Language, Addison-Wesley, ISBN 0-201-88954-4 and
0-201-70073-5. Écrit par le fondateur du C++ lui-même, une bonne référence, bien complète. Mais ça ne va pas
tellement en profondeur pour les templates.
Scott Meyers: Effective STL: 50 specific Ways to Improve Your Use of the Standard Template Libary Extrêmement intéressant pour bien comprendre comment vraiment préparer nos classes à
l'utilisation des algorithmes que fournit la STL. Donne des techniques très avancées sur tout ce
qu'on peut faire avec les templates.
David Abrahams, Aleksey Gurtovoy: C++ Template Metaprogramming: Concepts, Tools, and Techniques
from Boost and Beyond Herb Sutter: Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Solutions H.M. Deitel, P.J. Deitel, Comment programmer en C++, éditions Goulet, 3e édition.
Horstmann, Budd: Big C++, 2nd Edition
Webographie
C++ Language Tutorial http://www.cplusplus.com/doc/tutorial/
http://fr.openclassrooms.com/informatique/cours/programmez-avec-le-langage-c
http://cpp.developpez.com/faq/cpp/
The C++ Programming Language (Bjarne Stroustrup) http://public.research.att.com/~bs/C++.html
FAQ de Bjarne Stroustrup
Standard Template Library Programmer's Guide http://www.sgi.com/tech/stl/index.html
C++ Reference http://www.cppreference.com/wiki/
C++ Virtual Course of the Globewide Network Academy
The C++ Virtual Library
Cours C++ de Christian Casteyde
C++ FAQ LITE - Frequently Asked Questions
http://www.learncpp.com/
http://www.cprogramming.com/tutorial/c++-tutorial.html
http://www.pvtuts.com/cpp/cpp-introduction
© Université Laval
Mis à jour le 5 mai 2015 10:44
Page 11 de 12
http://www.pvtuts.com/cpp/cpp-introduction
http://www.tutorialspoint.com/cplusplus/
http://xoax.net/cpp/
© Université Laval
Mis à jour le 5 mai 2015 10:44
Page 12 de 12