GLO-2100 : Algorithmes et structures de données pour ingénieurs

Transcription

GLO-2100 : Algorithmes et structures de données pour ingénieurs
GLO-2100 : Algorithmes et structures de données
pour ingénieurs
NRC 88120
Automne 2014
Mode d'enseignement : Présentiel
Temps consacré : 3-2-4
Crédit(s) : 3
Préalables : GIF 1003
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.
Plage horaire :
Cours en classe
mardi
09h30 à 12h20 PLT-2751
Laboratoire
vendredi 12h30 à 14h20 PLT-3928
Du 2 sept. 2014 au 12 déc. 2014
Du 2 sept. 2014 au 12 déc. 2014
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=54977
Coordonnées et disponibilités
Mario Marchand
Enseignant
PLT-3764
[email protected]
Disponibilités :
jeudi 09h00 à 12h00 PLT-3764
Frank Manirakiza
Auxiliaire - Labos
Du 1 sept. 2014 au 19 déc. 2014
[email protected]
Disponibilités :
Sur demande
Prudencio Tossou
Auxiliaire - Labos
[email protected]
Disponibilités :
Sur demande
Soutien technique :
Pour recevoir du soutien technique relatif à l'utilisation du Portail des Cours,
contactez :
Comptoir LiberT (FSG)
Pavillon Adrien-Pouliot, Local 3709
[email protected]
418-656-2131 poste 4651
© Université Laval
Mis à jour le 17 nov. 2014 19:49
Page 1 de 13
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 17 nov. 2014 19:49
Page 2 de 13
Sommaire
Description du cours ......................................................................................................................... 4
Description sommaire ..................................................................................................................... 4
Objectifs ....................................................................................................................................... 4
Objectifs spécifiques ....................................................................................................................... 4
Méthodologie ................................................................................................................................. 4
Contenu et activités .......................................................................................................................... 5
Évaluations et résultats .................................................................................................................... 6
Consignes sur les examens .............................................................................................................. 6
Consignes sur les travaux ................................................................................................................ 6
Modalités d'évaluation ..................................................................................................................... 7
Informations détaillées sur les évaluations sommatives ....................................................................... 7
Intra ........................................................................................................................................ 7
Final ........................................................................................................................................ 7
Travail pratique 1 ...................................................................................................................... 7
Travail pratique 2 ...................................................................................................................... 8
Travail pratique 3 ...................................................................................................................... 8
Appréciation du cours (Évaluation de l'enseignement) ..................................................................... 8
Échelle des cotes ............................................................................................................................ 8
Modalités sur les laboratoires ........................................................................................................... 9
Politique sur les travaux .................................................................................................................. 9
Politique sur les examens ................................................................................................................ 9
Politique sur les cotes ................................................................................................................... 10
Politique sur l'utilisation d'appareils électroniques ............................................................................. 10
Politique sur le plagiat et la fraude académique ................................................................................ 10
Étudiants ayant un handicap, un trouble d’apprentissage ou un trouble mental ..................................... 11
Matériel didactique ......................................................................................................................... 11
Matériel obligatoire ....................................................................................................................... 11
Matériel complémentaire ............................................................................................................... 11
Logiciels ...................................................................................................................................... 11
Médiagraphie et annexes ................................................................................................................ 12
Bibliographie ................................................................................................................................ 12
© Université Laval
Mis à jour le 17 nov. 2014 19:49
Page 3 de 13
Description du cours
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.
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.
L'appréciation du cours a pour but de développer en vous l'aptitude à poser un regard critique sur la
formation reçue afin d'assurer une amélioration continue du cours.
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
À la maison
Lecture et résolution des exercices proposés dans le semainier sur le site Web du cours.
Réalisation des 3 travaux pratiques obligatoires à faire durant toute la session. Ils seront corrigés,
© Université Laval
Mis à jour le 17 nov. 2014 19:49
Page 4 de 13
commentés et notés (ils contribueront à la note finale). Ces travaux peuvent être également faits aux
laboratoires qui vous sont assignés tout le long de la session.
En classe (3 heures par semaine)
Présentation de la matière par le professeur.
Les étudiants et les étudiantes interviennent durant le cours pour demander des explications
supplémentaires relativement à un sujet traité 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++. Programmation d'exercices et de certaines parties des
travaux pratiques dont vous aurez au préalable conçu l'algorithme.
Activités d'apprentissage
Sur le site du cours (dans la section «Contenu et activités»), le semainier présente :
les thèmes abordés dans la semaine;
les objectifs spécifiques 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,...);
À chaque semaine, 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.
Rétroaction écrite
La rétroaction écrite est prévue : suite aux travaux pratiques (TP) que vous aurez transmis en utilisant l'outil
offert cette fin sur le site Web du cours.
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.
Contenu et activités
Le tableau ci-dessous présente les semaines d'activités prévues dans le cadre du cours.
Titre
Date
Avant-propos
25 août 2014
Accès aux laboratoires (en présentiel et à distance)
25 août 2014
Machine virtuelle, tutoriels et normes de programmation
25 août 2014
Semaines 1 à 15
Semaine 1 - Analyse d'algorithmes
25 août 2014
Semaine 2 : Éléments du C++ pour les structures de données
25 août 2014
© Université Laval
Mis à jour le 17 nov. 2014 19:49
Page 5 de 13
Semaine 3 : Le type abstrait liste
25 août 2014
Semaine 4 : Les types abstraits pile et file. Récursivité.
25 août 2014
Semaine 5 : Les graphes (1ière partie)
25 août 2014
Semaine 6 : Les graphes (2ière partie)
25 août 2014
Semaine 7 - Rattrapage ou révision de mi-session
25 août 2014
Semaine 8 - Examen intra
25 août 2014
Semaine 9 - Semaine de lecture
25 août 2014
Semaine 10 - Les structures arborescentes et les monceaux
25 août 2014
Semaine 11 - Les arbres binaires de tri et de recherche. Les arbres AVL
25 août 2014
Semaine 12 - Les tables de dispersion
25 août 2014
Semaine 13 : Les algorithmes de tri
25 août 2014
Semaine 14 - Rattrapage ou révision de fin de session
25 août 2014
Semaine 15 - Examen Final
25 août 2014
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
Consignes sur les examens
Important :
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
Les travaux paratiques (TP) sont à faire obligatoirement seul.
Tout travail pratique non remis dans les délais prévus se verra accordé la note de zéro.
Toute révision de note devra être demandée au professeur dans un délai de 10 jours ouvrables après la
remise du travail corrigé.
Pour accéder à l'énoncé du TP, vous devez cliquer sur le lien du travail pratique situé ci-dessous à la
section «Modalités d'évaluation».
Les TP doivent être remis via le lien "Boîte de dépôt" adjacant au lien du TP ci-dessous.
Vous devez remettre, dans une archive ".zip," tous les fichiers sources (".cpp", ".h", ".hpp") qui sont
nécessaires à la compilation de votre programme, ainsi que tous les fichiers utilisés par votre programme
(selon le cas).
Ne pas inclure d'autres fichiers dans votre archive. Donc, pas d'exécutable, pas de module objets etc.
Nous générerons l'exécutable à partire de vos fichiers sources.
Votre code doit respecter nos normes de programmation à la lettre. Il doit donc être documenté selon
ces normes. Cependant, ne pas inclure la documentation généré par Doxygene.
Vous devez obligatoirement respecter les directives particulières se trouvant dans l'énoncé de chaque
travail pratique à réaliser.
Important: Votre TP sera évalué dans l'environnement de développement inclus dans la
machine virtuelle du cours. Donc, vos programmes doivent absolument pouvoir être compilés et
exécutés sans erreurs dans cet environement. Utilisez donc cet environement pour faire votre TP.
Vos programmes doivent contenir zéro erreurs de syntaxe. Un programme qui ne compile pas
sans erreur, peu importe la raison, se verra attribué la note zéro. Un travail se verra donc attribué la
note zéro même si les seules erreurs de compilation sont attribuées à une incohérence par rapport à
l'emplacement des fichiers de code source, aux instructions "#include" et à la structure des répertoires
de votre travail pratique. Nous exigeons que vous remettiez une archive dans laquelle les fichiers sont
bien placés dans les répertoires en conformité avec vos instructions "#include". D'ailleurs, les
© Université Laval
Mis à jour le 17 nov. 2014 19:49
Page 6 de 13
avertissements du compilateur (warnings) sont généralement pénalisants pour le travail. Nous parlons
bien sûr des avertissements qui surviennent avec les options par défaut pour la plupart des compilateurs
(nous n'irons pas jusqu'à employer l'option "-Wall" de gcc et pénaliser tous les avertissements qui sont
alors générés).
Modalités d'évaluation
Note pour les étudiants en génie: En conformité avec les exigences du BCAPG, ce cours évaluera le degré
d'atteinte de la qualité Q1 (Connaissances en génie) selon selon ces critères et de la qualité Q3 (Investigation)
ces critères. La qualité Q3 sera évalué au TP3 alors que la qualité Q1 sera évalué lors des examens.
Évidemment, tous les étudiants du cours, peu importe leur programme de formation, devront faire tous les TPs
et examens. Mais ceux en génie auront ces évaluations supplémentaires (requises par le BCAPG) pour ces
mêmes travaux et examens qu'auront fait tous les étudiants.
Sommatives
Titre
Date
Mode de travail
Pondération
72 %
Examens (Somme des évaluations de ce regroupement)
Intra
Le 21 oct. 2014 de 09h30 à 12h20
Individuel
36 %
Final
Le 9 déc. 2014 de 09h30 à 12h20
Individuel
36 %
28 %
Travaux (Somme des évaluations de ce regroupement)
Travail pratique 1
Dû le 7 oct. 2014 à 23h59
Individuel
9 %
Travail pratique 2
Dû le 14 nov. 2014 à 23h59
Individuel
9 %
Travail pratique 3
Dû le 5 déc. 2014 à 23h59
Individuel
9 %
Appréciation du cours (Évaluation
de l'enseignement)
Dû le 5 déc. 2014 à 15h32
Individuel
1 %
Informations détaillées sur les évaluations sommatives
Intra
Date et lieu :
Mode de travail :
Pondération :
Remise de l'évaluation :
Le 21 oct. 2014 de 09h30 à 12h20, PLT-2751
Individuel
36 %
Local de l'examen
Final
Date et lieu :
Mode de travail :
Pondération :
Remise de l'évaluation :
Le 9 déc. 2014 de 09h30 à 12h20, PLT-2751
Individuel
36 %
Local d'examen
Travail pratique 1
Date de remise :
Mode de travail :
Pondération :
Remise de l'évaluation :
7 oct. 2014 à 23h59
Individuel
9 %
Boîte de dépot
Directives de l'évaluation :
Veuillez prendre connaissance des sections «Consignes sur les travaux» et «Politique sur les travaux».
Description à venir.
Fichiers à consulter :
© Université Laval
Mis à jour le 17 nov. 2014 19:49
Page 7 de 13
Fichiers à consulter :
TP1-A14.pdf
431,7 Ko, déposé le 22 sept. 2014
Travail pratique 2
Date de remise :
Mode de travail :
Pondération :
Remise de l'évaluation :
14 nov. 2014 à 23h59
Voir l'archive ci-jointe. Vous y trouverez le description du TP est les fichiers
nécessaires à sa réalisation.
Individuel
9 %
Boîte de dépot
Directives de l'évaluation :
Veuillez prendre connaissance des sections «Consignes sur les travaux» et «Politique sur les travaux».
Ouvrez l'archive ci-jointe. Vous y trouverez la description du TP et les fichiers nécessaires à sa réalisation.
Fichiers à consulter :
TP2.zip
211,7 Ko, déposé le 30 oct. 2014
Travail pratique 3
Date de remise :
Mode de travail :
Pondération :
Remise de l'évaluation :
5 déc. 2014 à 23h59
Individuel
9 %
Boîte de dépot
Directives de l'évaluation :
Veuillez prendre connaissance des sections «Consignes sur les travaux» et «Politique sur les travaux».
Pour étudiants en génie! Ce TP est requis pour mesurer le degré d'atteinte de la Qualité 3 (Investigation) du
BCAPG. La réussite de ce TP est donc nécessaire pour être éventuellement admis dans l'Ordre des Ingénieurs du
Québec.
Description à venir.
Fichiers à consulter :
Archive.zip
203,08 Ko, déposé le 16 nov. 2014
Appréciation du cours (Évaluation de l'enseignement)
Date de remise :
Mode de travail :
Pondération :
Remise de l'évaluation :
5 déc. 2014 à 15h32
Individuel
1 %
À faire sur le portail Pixel de la FSG
Directives de l'évaluation :
L'évaluation de l'enseignement (appréciation du cours) doit être effectué sur le portail Pixel de la FSG durant la
période allouée à cet effet. Vous avez tous vos points si vous la faites à temps. si non, vous n'avez aucun point!
Échelle des cotes
© Université Laval
Cote
% minimum
% maximum
Cote
% minimum
% maximum
A+
90
100
C+
66
69,99
Mis à jour le 17 nov. 2014 19:49
Page 8 de 13
A+
90
100
C+
66
69,99
A
85
89,99
C
63
65,99
A-
80
84,99
C-
60
62,99
B+
76
79,99
D+
57
59,99
B
73
75,99
D
55
56,99
B-
70
72,99
E
0
54,99
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 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.
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
© Université Laval
Mis à jour le 17 nov. 2014 19:49
Page 9 de 13
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 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.
Politique sur l'utilisation d'appareils électroniques
L'utilisation d'appareils électroniques (cellulaire ou autre appareil téléphonique sans fil, pagette, baladeur,
agenda électronique, etc.) est interdite au cours d'une séance d'évaluation et de toute autre activité durant
laquelle l'enseignant l'interdit.
De plus, lorsque l'usage de la calculatrice est permis, alors seuls certains modèles de calculatrices sont
autorisés durant les séances d'évaluation.
Les modèles suivants sont autorisés :
Hewlett Packard
HP 20S, HP 30S, HP 32S2, HP 33S, HP 35S
Texas Instrument TI-30Xa, TI-30XIIB, TI-30XIIS, TI-36X, BA35
Sharp
EL-531*, EL-535-W535, EL-546*, EL-510 R, EL-520*
Casio
FX-260, FX-300 MS, FX-350 MS, FX-300W Plus, FX-991MS, FX-991ES
* Calculatrices Sharp: sans considération pour les lettres qui suivent le numéro
Dans tous ces cas, la calculatrice doit être validée par une vignette autocollante émise par la COOP étudiante
ZONE.
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
© Université Laval
Mis à jour le 17 nov. 2014 19:49
Page 10 de 13
i. é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
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) se trouve sur le site Web de
cours dans la section «Contenu et activités».
Matériel complémentaire
Matériel facultatif:
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
Logiciels
Dans le cadre de ce cours, vous devez utiliser une 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.
© Université Laval
Mis à jour le 17 nov. 2014 19:49
Page 11 de 13
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
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/
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/
© Université Laval
Mis à jour le 17 nov. 2014 19:49
Page 12 de 13
C++ Virtual Course of the Globewide Network Academy
The C++ Virtual Library
Cours C++ de Christian Casteyde
C++ FAQ LITE - Frequently Asked Questions
© Université Laval
Mis à jour le 17 nov. 2014 19:49
Page 13 de 13