Plan de cours. INF-731, Programmation orientée objet. Trimestre : Hiver 2016. 1. Contexte du cours. 2. Place du cours dans le programme



Documents pareils
Plan de cours. 1. Mise en contexte. 2. Place du cours dans le programme. 3. Descripteur du cours

Technologie 9 e année (ébauche)

PLAN DE COURS. Reconnaître le rôle des mathématiques ou de l informatique dans la société contemporaine (0011)

CHARGÉE DE COURS : Catherine Pelletier, MBA, chargée de communication, Service des communications et des relations avec le milieu, FSA

Plan de cours. Chiffriers et bases de données en gestion commerciale

Devenez un véritable développeur web en 3 mois!

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

PLAN DE COURS DÉPARTEMENT ÉLECTRONIQUE INDUSTRIELLE. TITRE DU COURS Ordinateur Outil RA 1-4-2

Technologie 8 e année (ébauche)

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

PLAN DE COURS CONCEPT ET MULTIMÉDIA JCW 06

L enseignement de méthodes agiles dans un contexte d apprentissage actif

Patrons de Conception (Design Patterns)

Université de Bangui. Modélisons en UML

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

ASR-2102 : Produits financiers: assurances et rentes

RÈGLEMENT NUMÉRO 12 RÈGLEMENT SUR L UTILISATION DES TECHNOLOGIES INFORMATIQUES ET INTERNET

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

J ai des idées pourquoi plagier?! Campagne de sensibilisation sur le plagiat

Évaluation et implémentation des langages

Consignes pour les travaux d actualité Premier quadrimestre

Analyse et programmation 1

Courriel : waguih.laoun@collegeahuntsic.qc.ca

COLLÈGE DE MAISONNEUVE

eduscol Ressources pour la voie professionnelle Français Ressources pour les classes préparatoires au baccalauréat professionnel

IFT2255 : Génie logiciel

Référentiel d'activités professionnelles et référentiel de certification Diplôme d'état de professeur de musique

ÉCOLE DES SCIENCES DE LA GESTION DE L UQAM MBA pour cadres spécialisés en gestion des villes et métropoles

Faire parvenir les documents suivants à l agent de soutien du programme

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

Guide du mémoire de fin d études

Guide d auto-évaluation

Soutien technique en informatique

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

ACCOMPAGNEMENT A LA CERTIFICATION ISO 9001 DE L AGENCE POUR LA RECHERCHE ET L INNOVATION EN CHAMPAGNE-ARDENNE - CARINNA

APPROCHE PAR COMPÉTENCES

ENVIRONNEMENT NUMÉRIQUE D APPRENTISSAGE TIC PÉDAGOGIE APPRENTISSAGE ENA

ECVET GUIDE POUR LA MOBILITÉ

MRK A : Méthodes d Analyse de Données en Marketing Automne 2010

Les diagrammes de modélisation

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

A.E.C. - Gestion des Applications, TI LEA.BW

Options, Futures et autres Produits Dérivés

E-Forum sur l Approche par les Compétences

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

Ligne directrice du cours menant à une qualification additionnelle. Musique instrumentale (deuxième partie)

Chapitre VI- La validation de la composition.

GEP 360 Recherche terrain sur les sites de pouvoir (3 crédits) Été 2013

SIO Page 1 de 5. Applications Web dynamiques. Prof. : Dzenan Ridjanovic Assistant : Vincent Dussault

Une stratégie d enseignement de la pensée critique

PLAN DE COMMUNICATION TACTIQUE COMM Faculté des lettres : Département d'information et de communication PLAN DE COURS

GUIDE DE SOUMISSION D UN PROJET DE RECHERCHE

GESTION DES AFFAIRES Ventes et Marketing - LCA.7N

GOL502 Industries de services

Pas d installations ou d équipement particuliers.

Dessin Technique GMEC1311. PROFESSEUR Gabriel Cormier, Ph.D. Bureau : 217G2 Tél : Courriel : gabriel.cormier@umoncton.ca

Guide d utilisation en lien avec le canevas de base du plan d intervention

Guide du/de la candidat/e pour l élaboration du dossier ciblé

Métriques de performance pour les algorithmes et programmes parallèles

Directives pour le travail de fin d études août b) DIRECTIVES POUR LE TRAVAIL DE FIN D ETUDES. (Mémoire)

Évaluation de Reading, de la lecture et des notions de calcul des élèves de 3 e année et évaluation de la lecture des élèves de 4 e année d immersion

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

Directives aux surveillants des contrôles périodiques

RÉSUMÉ DES NORMES ET MODALITÉS D ÉVALUATION AU SECONDAIRE

Techniques de l informatique 420.AC. DEC intensif en informatique, option gestion de réseaux informatiques

Théories criminologiques II (CRM 3701 B)

CQP Développeur Nouvelles Technologies (DNT)

Faculté des sciences de l administration Automne 2005

LES 7 REGLES DE CONDUITE D UN ADMINISTRATEUR PERFORMANT

Cours 1 : Qu est-ce que la programmation?

Formation continue obligatoire

ANNEXE A LA CIRCULAIRE SUR LE CONTROLE INTERNE ET L AUDIT INTERNE TABLE DES MATIERES

Bernard FOURNIER. Chargé de cours au Département de Sciences politiques. Faculté de Droit. Université de Liège.

SIO-6029-Z1 : Gestion de projet et du changement

COLLÈGE D'ENSEIGNEMENT GÉNÉRAL ET PROFESSIONNEL BEAUCE-APPALACHES POLITIQUE RELATIVE À LA FORMATION GÉNÉRALE COMPLÉMENTAIRE

UML et les Bases de Données

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

RAPPORT DE STAGE NUMERIQUE : Aide-mémoire PREPARATION DU RAPPORT AU COURS DU STAGE

Bonnes pratiques de l'ocde pour la gestion des sinistres d assurance

DIRIGEZ MIEUX. AMÉLIOREZ VOTRE COACHING AUPRÈS DES LEADERS. INSTAUREZ UNE MEILLEURE CULTURE DE LEADERSHIP.

Section des Formations et des diplômes

Rapport de Synthèse. Création d un Générateur de modèle PADL pour le langage C++ Sébastien Colladon

as Architecture des Systèmes d Information

Gauthier, Benoît (dir.) Recherche sociale : de la problématique à la collecte des données. Québec : Presses de l Université du Québec.

DES ACQUIS ET DES COMPÉTENCES

Créer et partager des fichiers

Éléments de programmation et introduction à Java

Programmation en Java IUT GEII (MC-II1) 1

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

PLAN DE COURS. GPA750 Ordonnancement des systèmes de production aéronautique

Modernisation et gestion de portefeuilles d applications bancaires

C++ Programmer. en langage. 8 e édition. Avec une intro aux design patterns et une annexe sur la norme C++11. Claude Delannoy

SECTION VI OUTILS DE GESTION DU RENDEMENT POUR DES FAMILLES D EMPLOIS COMMUNES POUR LES COMPÉTENCES COMPORTEMENTALES

Vers l amélioration continue

RÈGLEMENT FACULTAIRE SUR LA RECONNAISSANCE DES ACQUIS. Faculté des lettres et sciences humaines

Génie Logiciel avec Ada. 4 février 2013

Concours $ de prix en argent offerts par le Programme d assurance automobile et habitation CIBC (le «Concours»)

ASSOCIATION DES COMPTABLES GÉNÉRAUX ACCRÉDITÉS DU CANADA. Norme de formation Professionnelle continue Version 1.1

Transcription:

Faculté des sciences Centre de formation en technologies de l information Cours : Trimestre : Hiver 2016 Enseignant : Plan de cours INF-731, Programmation orientée objet Pierre Prud homme 1. Contexte du cours La programmation orientée objet, bien que datant en principe des années 70, est devenue au cours des années 90 le paradigme dominant du développement de systèmes. Bien qu on observe une résurgence des langages de script dans la programmation Web (PHP 1 et JavaScript sont de bons exemples), les langages orientés objet ont une approche qui les rend plus aptes à la conception rapide de systèmes complexes; la philosophie derrière les applications les plus vendues est orientée objet; l analyse orientée objet a pris une place importante dans les façons de faire. Comprendre les principes fondamentaux de la programmation orientée objet est devenu un passage nécessaire pour agir dans le monde du développement en entreprise. Dans votre futur rôle, diriger les professionnels du développement fera partie de votre description de tâche. Être capable, par la mise en pratique, de comprendre les considérations auxquelles ils doivent faire face sera un atout significatif qui contribuera à établir votre crédibilité en entreprise. 2. Place du cours dans le programme Ce cours présume qu a priori, l étudiant(e) comprend et sait utiliser: les concepts de programmation que sont la séquence, l alternative et la répétitive; les concepts de variable et de constante; les concepts de procédure et de fonction, y compris la notion intimement liée de paramètre par valeur et par référence; les types de données, au moins les types primitifs, les enregistrements et les tableaux. L étudiant(e) est considéré avoir une connaissance suffisante de la syntaxe du langage C# qui sera notre outil de développement dans le cadre du cours. L approche objet étant le modèle dominant à plusieurs égards dans l industrie du développement logiciel et de l analyse contemporains, ce cours visera à assurer l acquisition par l étudiant(e) d un bagage préalable aux cours du programme impliquant une part de développement logiciel. Le cours est formellement préalable au cours Applications Internet (INF 777) et aidera à mieux saisir les notions vues dans les cours Conception et évaluation 1 Langage de script n exclut pas la notion d orienté objet. Le support objet a été amélioré en PHP 5 et il existe des outils qui intègrent la philosophie objet à PHP, par exemple yiiframework. INF 731 Page 1

d IPM (INF 753) et, dans une moindre mesure, Méthodes d analyse et de conception ( INF 755). 3. Objectifs généraux du cours Ce cours vise à donner à l étudiant(e) une connaissance appliquée de la programmation et de la philosophie orientée objet. Connaissance appliquée signifiera à la fois le savoir permettant de comprendre le fonctionnement des systèmes développés selon les principes du modèle orienté objet, et également le savoir-faire requis pour en tirer soi-même profit dans un contexte de développement. Afin d atteindre cet objectif, nous développerons une compréhension opérationnelle d un langage de programmation facilitant la mise en pratique des principes exposés. Le langage de programmation retenu pour ce cours est le C#. Parenthèse Le modèle objet est un incontournable de presque tout développement informatique en industrie aujourd hui. La pensée objet, en informatique, sauve du temps et de l argent. Il s agit d une manière d aborder les problèmes avec laquelle vos employés versés sur le plan technique seront familiers et que vous devrez comprendre suffisamment pour être en mesure d en discuter avec eux et de gagner leur respect. Comme pour la plupart des modes de pensée, bien comprendre le modèle objet demande de l avoir suffisamment appliqué pour en saisir les principales considérations se limiter à un simple survol est un bon moyen de mal paraître. C est pourquoi nous allons apprendre ici comment programmer selon le modèle orienté objet, avec un langage largement répandu, de manière à en saisir au moins partiellement les enjeux et subtilités. Notre but n est toutefois pas de vous permettre de développer une expertise suffisante pour remplacer les membres de votre équipe de développement. Contenu Historique et fondements du modèle OO. Bases du C#. Classes et instances. Constructeur, destructeur. Méthodes, attributs. Encapsulation. Surcharge d'opérateurs. Héritage simple. Gestion de la mémoire. Abstraction. Méthodes virtuelles et polymorphisme. Considérations de design. INF 731 Page 2

4. Objectifs spécifiques Au terme du cours, l étudiant(e) sera capable de: {1} établir de quelle manière le problème à résoudre se prête à une solution orientée objet; {2} analyser un problème pour développer une solution orientée objet; {3} rédiger un programme orienté objet résolvant un problème concret; {4} respecter des standards de programmation; {5} tirer profit de grands principes du modèle (e.g. l encapsulation, la composition et l agrégation, l héritage d implantation et d interface etc.); {6} produire une hiérarchie de classes et considérer la performance; {7} généraliser le comportement d une hiérarchie de classes par polymorphisme; {8} utiliser des collections et appliquer des éléments de programmation générique; {9} appliquer le modèle objet à un problème de développement logiciel ou matériel impliquant plusieurs intervenants. 5. Organisation du cours Le cours sera organisé sous forme de courts chapitres d une ou deux séances environ, énumérés ci-après dans l ordre où ils seront couverts. Pour chaque thème, le livre obligatoire du cours fournira un complément de théorie. Pour ajouter à la documentation fournie par le livre de référence, l enseignant fournira généralement d autres documents d appoint pour mieux couvrir certains concepts. Planification des séances hebdomadaires Séance(s) Contenu prévu du cours Entrée en matière Présentation du professeur, du plan de cours, de l approche retenue pour le cours. Place du cours dans votre programme. Formule utilisée pour l évaluation. S1 Rappel de notions supposées connues de l outil de programmation Rappel des grandes lignes de la syntaxe du langage C# sur le plan que l on pourrait qualifier de structuré. Le rythme de la séance sera soutenu puisqu il est présumé que les étudiant(e)s ont tous et toutes la base de programmation requise et qu il s agit pour l essentiel d un rappel. Formule pédagogique : cette séance aura lieu en classe. Référence(s): P1 chapitres 3 et 4 du livre. INF 731 Page 3

S2 S3, S4 S5 Introduction à l approche de développement et aux outils à utiliser Distinction entre le modèle procédural et le modèle objet. Manière d aborder la solution à développer. Notions fondamentales de la POO. Pile et tas. Instanciation. Usage de classes existantes. Développement de classes simples. Arrimage aux objectifs: cette séance touche aux points {1} à {5} des objectifs spécifiques. Formule pédagogique : cette séance aura lieu en partie en classe et en partie en laboratoire. Référence(s): P1 chapitre 4 et 5 (et quelques éléments des chapitres 1 à 3). Notions fondamentales des objets Introduction du concept et de la terminologie objet utilisée. Interface publique d une classe. Élaboration d un objet. Attributs et méthodes. Encapsulation. Accesseurs et mutateurs. Propriétés. Qualificatifs d accès. Classe et instances. Membre de classe et membre d instance. Constantes. Instances immuables. Application à des problèmes simples. Arrimage aux objectifs: cette séance touche aux points {2} à {5} des objectifs Formule pédagogique : une partie de certaines séances aura lieu en laboratoire, le reste en classe théorique. Référence(s): P1 chapitre 5 Construction et destruction Examiner et appliquer la mécanique de construction sous ses différentes déclinaisons, dans un contexte sans héritage. Comprendre les implications de la construction dans le fonctionnement d un programme. Construction explicite et implicite. Règles de substitution des constructeurs automatiques. Destruction des instances dans un contexte managé. Arrimage aux objectifs: cette séance touche aux points {2} à {5} des objectifs Référence(s): P1 chapitres 5 et 13 S6 Composition et agrégation; fichiers Examiner l organisation d une relation d agrégation ou de composition. Distinguer la composition de l agrégation. Construction des instances. Application. Usage des classes disponibles pour interagir avec les fichiers de texte. Lecture et écriture dans un fichier. Arrimage aux objectifs: cette séance touche aux points {2} à {5} des objectifs Référence(s): P1 chapitre 20 INF 731 Page 4

Programmation générique; collections Généralisation de l idée de type. Exploitation des possibilités de la collection List<>. S7 S8 S9 Arrimage aux objectifs: cette séance rejoint touche aux points {5} à {8} des objectifs Référence(s): P1 chapitre 9 Gestion des exceptions Notion d exception. Catégories d exception. Hiérarchie disponible dans l environnement de développement. Lever une exception. Traiter une exception. Relancer une exception. Arrimage aux objectifs: cette séance touche aux points {2} à {5} des objectifs Référence(s): P1 chapitre 7 Héritage d implantation Comprendre la raison d être de l héritage d implantation. Examiner les relations entre parent et enfant et, de manière plus large, entre un ancêtre et sa descendance. Distinguer l héritage de la composition. Surcharge de méthodes. Emploi explicite des membres d un parent. Qualificatif d accès protected. Emploi simplifié de la notation UML pour représenter une classe. Arrimage aux objectifs: cette séance touche surtout les points {5} et {6} des objectifs Référence(s): P1 chapitre 6 S10 Polymorphisme et abstraction Examiner la notion de polymorphisme et voir comment procéder à son implantation dans une hiérarchie de classes. Saisir l impact du polymorphisme sur notre manière de développer et de voir les systèmes complexes. Établir les nuances entre polymorphisme et classe abstraite. Arrimage aux objectifs: cette séance touche surtout les points {5} à {7} des objectifs Référence(s): P1 chapitre 6 INF 731 Page 5

S11 S12 S13 S14 S15 Héritage d interface Différence entre classe abstraite et interface. Interfaces fréquemment utilisées du système. Déclaration d une interface. Définition des méthodes imposées par l interface. Règles d héritage multiple. Arrimage aux objectifs: cette séance touche aux points {5} à {7} des objectifs Référence(s): P1 chapitre 8 Délégués et expressions Lambda Présentation du concept de délégué. Présentation des expressions Lambda et leur utilisation en conjonction avec les collections. Bref aperçu de LINQ. Arrimage aux objectifs: ce chapitre touche aux points {4} à {8} des objectifs spécifiques du cours. Référence(s): P1 chapitre 10, P2 chapitre 4 Surcharge des opérateurs et conversions de type Examiner l implantation de la surcharge d opérateurs et appliquer les règles propres à l outil. Implications de la surcharge des opérateurs. Conversion de type. Importance relative de la surcharge dans le langage utilisé. Arrimage aux objectifs: cette séance touche aux points {2} à {5} des objectifs Référence(s): P1 chapitre 11 Modèles de conception courants Présentation. Avantages d utiliser des modèles courants dans le développement à petite et à grande échelle. Singleton, clonage et autres modèles en fonction du temps que nous aurons. Arrimage aux objectifs: ce chapitre rejoint les points {5} à {9} des objectifs spécifiques du cours. Référence(s): [P4]en adaptant les idées à l outil du cours Examen final 6. Approche pédagogique Pour favoriser l intégration des nombreux concepts à présenter, nous suivrons essentiellement le modèle suivant: exposés en classe fondés sur l application des concepts dans le langage; les étudiant(e)s seront encouragé(e)s à contribuer par leurs questions et commentaires; présentation d exemples et de problèmes à résoudre pour illustrer les concepts introduits; INF 731 Page 6

exercices qui permettront aux étudiant(e)s de mesurer concrètement leur compréhension de la matière présentée; le chargé d exercice pourra donner des indications supplémentaires au besoin sur ces exercices; les exercices ne seront pas formellement évalués; deux (2) travaux pratiques évalués par le professeur de façon formelle et dont le résultat contribuera à votre note finale; des tests assez courts qui auront lieu à intervalle régulier; et un contrôle théorique final vérifiant formellement l atteinte des objectifs. Les tests et le contrôle final sont des évaluations individuelles et présumeront que chaque membre d une équipe a contribué activement à la réalisation de l ensemble de chaque travail pratique et a bien compris les notions reliées à ces travaux. 7. Évaluation des apprentissages Description Pondération Mini-tests Des petits tests courts auront lieu à intervalle régulier; il y en cinq durant la session, normalement aux séances impaires, i.e. 3, 5, 7, 9 et 11. Chaque mini-test portera essentiellement sur les thèmes des semaines récentes toutefois les bonnes pratiques apprises précédemment devront continuer à être utilisées. Les questions seront généralement axées sur l application pratique de la POO en C#. Le poids total de ces petits tests sera de 40% de la note finale. S il y a quatre tests, la pondération sera de 15, 10, 10 et 5, votre meilleure note étant pondérée sur 15 et votre moins bonne sur 5 sur une base individuelle. S il y a cinq tests, la note du moins bon de vos tests sera soustraite du calcul et les quatre tests restants seront sur 10. En général, le temps alloué pour faire le test sera d environ 20 minutes. 40% Aucune documentation ne sera permise durant les mini-tests. Les mini-tests sont bien entendu des évaluations individuelles. INF 731 Page 7

Travaux pratiques et laboratoires Deux travaux pratiques seront à réaliser au cours de la session. Chacun vous demandera, à partir d un problème concret, d appliquer le modèle objet à l élaboration et à la réalisation de sa solution. Chacun demandera une part importante de programmation. Le premier travail sera à réaliser par équipe de deux (2) personnes, et vaudra 12% de la note finale. 30% Le second travail sera à réaliser par équipe de trois (3) à cinq (5) personnes, et vaudra 18% de la note finale. Les modalités de ce travail seront précisées au moment où le travail sera distribué aux étudiants. Examen final Un examen final récapitulatif valant 30% de la note finale aura lieu lors de la dernière séance de la session. Cet examen portera sur l ensemble de la matière de la session. Toute documentation personnelle traditionnelle sera permise livres, notes de cours, notes personnelles imprimées, etc. Les dispositifs électroniques comme l ordinateur portable et le cellulaire seront interdits. L examen final est une évaluation individuelle. 30% Toute modification reliée à une date de remise doit avoir été acceptée par le groupe et la direction du CeFTI dans un délai de plus d une semaine avant l échéance de la remise tel que prévu par les politiques en vigueur. Modalités : Aucun retard ne sera toléré dans la remise des travaux pratiques. Tout travail devra être produit dans un français jugé de bonne qualité. Une pénalité allant jusqu à 10% des points pourra être appliquée à un travail produit dans un français ne rencontrant pas les standards de qualité de la Faculté des sciences. Les règles de qualité des programmes qui seront mentionnées en cours de session seront applicables aux travaux pratiques et au code rédigé dans le cadre des contrôles. L absence à un mini-test donne droit (!) à la note 0. Il n y a pas d évaluation de reprise mais des motifs sérieux pourront être pris en considération et un arrangement pourra alors être proposé. 8. Plagiat Un document dont le texte et la structure se rapportent à des textes intégraux tirés d'un livre, d'une publication scientifique ou même d'un site Internet, doit être référencé adéquatement. Lors de la correction de tout travail individuel ou de groupe une attention spéciale sera portée au plagiat, défini dans le Règlement des études comme "le fait, dans une activité pédagogique évaluée, de faire passer indûment pour siens des passages ou des idées tirés de l œuvre d'autrui." Le cas échéant, le plagiat est un délit qui contrevient à l'article 8.1.2 du Règlement des études : "tout acte ou manœuvre visant à tromper quant au rendement scolaire ou quant à la réussite d'une exigence relative à une activité pédagogique.". À titre de sanction disciplinaire, les mesures suivantes peuvent être imposées: a)l'obligation de reprendre un travail, un INF 731 Page 8

examen ou une activité pédagogique et b) l'attribution de la note E ou de la note 0 pour un travail, un examen ou une activité évaluée. Tout travail suspecté de plagiat sera référé à la vice-doyenne à l'enseignement de la Faculté des sciences. 9. Adresse électronique pour les remises de travaux Mon adresse officielle de courriel de l Université est pierre.prudhomme@usherbrooke.ca Il est à noter que les serveurs de l Université, dans un souci de grande prudence, filtrent les pièces jointes et spécialement les pièces jointes de type.zip qui ont tendance à être mises en quarantaine. Pour contourner ce problème, toute pièce jointe de type.zip à me faire parvenir ne devra pas contenir de fichier exécutable.exe et devra être renommée pour porter plutôt l extension.zi- ce qui évitera d éveiller les soupçons des programmes de détection. Mon adresse personnelle, le p.prudhomme@gmail.com, est celle que je consulte le plus souvent. Je vous conseille d utiliser cette dernière plutôt que l adresse officielle de l Université pour me rejoindre plus efficacement. Vous aurez sans doute une réponse plus rapidement en procédant par cette voie. 10. Bibliographie et médiagraphie Ce qui suit se veut une référence complète des manuels et documents électroniques à se procurer ou à consulter pour le cours. Support dédié au cours Le site Web suivant est accessible aux étudiants du diplôme et est maintenu au prix d efforts remarquables de Patrice Roy que je félicite et remercie au passage. Bien que son organisation soit encore perfectible, on y trouve souvent des articles de fond très fouillés et très pertinents sur le sujet du cours et autres sujets d intérêt pour futurs chargés de projets. Ce site se trouve à l adresse suivante: http://h-deb.clg.qc.ca/udes/ Références papier P1 TROELSEN, ANDREW; Pro C# 5.0 and the.net 4.5 Framework 6 th Edition, Apress, 2012. ISBN 978-1-4302-4233-8. Livre obligatoire du cours, qui couvre beaucoup plus de notions que ce que nous aurons le temps de voir. INF 731 Page 9

P2 ALBAHARI, JOSEPH & ALBAHARI, BEN; C# In a Nutshell, The Definitive Reference 5th Edition, O Reilly, 2012. ISBN 978-1-449-32010-2. Ce livre va droit au but en omettant trop souvent les explications qui rendraient le tout compréhensible à un débutant. L organisation des concepts est perfectible. Une version de poche en guise de référence est également disponible et peut être pratique lorsqu un rappel d une notion connue est requis. P3 SKEET, JON; C# In Depth 2 nd Edition, Manning Publications Co., 2011. ISBN 978-1-935182-47-4. Un aperçu des évolutions de C# au fil du temps. Plusieurs approfondissements sur des sujets intéressants mais pas nécessairement à la portée d un étudiant débutant au DTI. Demande une perspective de l informatique et de la programmation pour en tirer tout le sens. Pour les intéressé(e)s. P4 FREEMAN, ERIC & FREEMAN ELISABETH & AL.; Head First Design Patterns, O Reilley Media, 2004. ISBN 978-05-96007126. Un livre très intéressant sur divers modèles de conception courants. A été écrit pour Java ce qui suppose une adaptation pour C# mais rien de majeur. Va plus loin que les objectifs fondamentaux du cours. Pour les intéressé(e)s. Références électroniques Bien que certaines de ces références ne soient pas spécifiques à l outil utilisé, elles me semblent encore pertinentes. Pour les intéressé(e)s. E1 BJARNE STROUSTRUP; What is Object Oriented Programming?, 1991. http://www.research.att.com/~bs/whatis.pdf Ce document explique la programmation orientée objet d un point de vue pragmatique, utilisant C++ à des fins démonstratives. E2 Sun Microsystems; Object-Oriented Programming Concepts. http://java.sun.com/docs/books/tutorial/java/concepts/index.ht ml Exercices et explications pouvant servir d inspiration, et offrant un biais différent sur certains dossiers propres à la POO. INF 731 Page 10