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