1. Mise en contexte. 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

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

Soutien technique en informatique

ASR-2102 : Produits financiers: assurances et rentes

Courriel : waguih.laoun@collegeahuntsic.qc.ca

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

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

Technologie 9 e année (ébauche)

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

PLAN DE COURS CONCEPT ET MULTIMÉDIA JCW 06

COLLÈGE DE MAISONNEUVE

Guide du mémoire de fin d études

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

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

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

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

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

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

Cours d été Aux parents et élèves de 5 e secondaire

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

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Évaluation et implémentation des langages

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

APPROCHE PAR COMPÉTENCES

Synthèse «Le Plus Grand Produit»

Programmation C. Apprendre à développer des programmes simples dans le langage C

Faculté des sciences de l administration Automne 2005

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

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

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

Préparation au concours d assistant des bibliothèques GUIDE DU STAGIAIRE

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

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

T2GC. Enseignement secondaire technique Régime de la formation de technicien. Date: ANGLA6. Anglais 6

ECVET GUIDE POUR LA MOBILITÉ

PLAN DE COURS CEGEP DU VIEUX-MONTRÉAL

Guide du programme Transition vers l'après-secondaire

Vers l amélioration continue

POLITIQUE RELATIVE À L EMPLOI ET À LA QUALITÉ DE LA LANGUE FRANÇAISE

Formation Août 2013 Michèle Garello, IEN économie gestion Caroline Natta, professeur

UN EXEMPLE D EVALUATION DISCIPLINAIRE : EN ECONOMIE-GESTION (Droit)

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

PRÉSENTATION DU PROGRAMME. Le cœur à l école. PROGRAMME DE PRÉVENTION DE L ÉCHEC SCOLAIRE ET SOCIAL Volets préscolaire et 1 er cycle du primaire

RÉSULTAT DISCIPLINAIRE RÈGLE DE RÉUSSITE DISCIPLINAIRE Programme de formation de l école québécoise Secondaire - 1 er cycle

Document d accompagnement. de la 1 re à la 8 e année. Exemples de tâches et corrigés. 1 re année Tâche Corrigé... 7 Tâche Corrigé...

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

Sur la méthodologique et l organisation du travail. Difficultés d ordre méthodologique et d organisation

LE RENOUVEAU PÉDAGOGIQUE

curité des TI : Comment accroître votre niveau de curité

Politique des stages. Direction des études

Cours 1 : Qu est-ce que la programmation?

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

SECTION 5 BANQUE DE PROJETS

Atelier rédactionnel

Guide explicatif Nouveau barème d allocation des UFC

Évaluer la formation dans l entreprise

Offrez un avenir international à vos enfants

Guide d autoformation. Mon Gestionnaire de formation Un petit guide de survie devant toutes les formations individuelles sur Internet

Introduction à l algorithmique et à la programmation (Info 2)

I. LE CAS CHOISI PROBLEMATIQUE

LA BATTERIE DU PORTABLE

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

Cours Numération Mathématique de base 1 MAT-B Alphabétisation

Types de REA produites dans le cadre de la séquence pédagogique

Options, Futures et autres Produits Dérivés

BES WEBDEVELOPER ACTIVITÉ RÔLE

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

Présentation. Au programme. Fonctionnement. A l issue de ce module vous devriez...

DESS Arts, création et technologies

IFT2255 : Génie logiciel

Contenu disciplinaire (CK)

M221 Planification de projet TP n 1 DUT QLIO Semestre 2

Demande d admission au Centre pédagogique Lucien-Guilbault Secteur primaire

LES HABILETÉS DE SAVOIR ÊTRE

ÉCOLE SECONDAIRE PÈRE-RENÉ-DE-GALINÉE

Culture scientifique et technologique

LA METHODE DU COUT CIBLE (TARGET COSTING)

Manuel de formation de base. FP Solutions

Pas d installations ou d équipement particuliers.

guide d inscription SESSION HIVER 2015

CAHIER DE PROGRAMME SOINS INFIRMIERS (180.A0)

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

Gestion commerciale LCA.8Z. Information : (514) , poste 419

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

UML et les Bases de Données

Technologie 8 e année (ébauche)

LES REPRESENTATIONS DES NOMBRES

Application dans la formation des professionnels de l expertise comptable au Québec. Janie Bérubé, Annie Brisson et Patricia Michaud

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

Déclaration commune. Octobre portant engagement de bonnes pratiques sur la lisibilité des garanties de complémentaire santé

sous réserve de validation des modifications DROIT ECONOMIE GESTION SCIENCES DU MANAGEMENT FINANCE

Pistes d intervention pour les enfants présentant un retard global de développement

RÉFLÉCHIR AUX ENJEUX DU CRÉDIT

la Direction des ressources humaines et des relations de travail (langue du travail ; maîtrise du français par les employé(e)s)

Compte rendu de la formation

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

EXAMEN CRITIQUE D UN DOSSIER TECHNIQUE

Méthodes quantitatives en sciences humaines. 2 Pratique : 2 Étude personnelle : 2. BUREAU poste courriel ou site web

Transcription:

Faculté des sciences Centre de formation en technologies de l information Cours : INF 737 Conception orientée objets avancée Trimestre : Automne 2015 Enseignant : Patrice Roy 1. Mise en contexte Ce cours présume qu a priori, l étudiant(e) aura un bagage de connaissances sur : la programmation traditionnelle procédurale : découpage, procédures et fonctions, les diverses déclinaisons du passage de paramètres, etc. les idées fondamentales de la programmation orientée objet (POO) que sont la classe et l instance, les attributs, les méthodes, etc. les idées de base associées à la gestion de la mémoire allouée dynamiquement; certaines structures de données les plus connues, dont le tableau, la liste chaînée, la pile et la file. L étudiant(e) devrait aussi avoir une connaissance suffisante de la syntaxe du langage C ou C++ afin de pouvoir comprendre les exemples écrits dans ce langage qui seront présentés durant les cours et effectuer les travaux demandés. L approche OO étant le modèle dominant à plusieurs égards dans l industrie du développement logiciel et plus spécifiquement dans le développement de logiciels de jeux vidéo, ce cours visera à assurer l acquisition par l étudiant(e) d un bagage préalable à l ensemble des cours du programme impliquant ce type de développement logiciel spécialisé. 2. Place du cours dans le programme Le modèle objet est un incontournable de presque tout développement informatique en industrie aujourd hui. La pensée OO, en informatique, sauve du temps et de l argent. Comme pour la plupart des modes de pensée, bien comprendre le modèle objet implique l avoir appliqué au préalable pour en saisir les nuances et les enjeux. Se limiter à une couverture abstraite ne suffit pas à développer une compétence opérationnelle. C est pourquoi nous allons apprendre ici comment programmer selon le modèle OO, avec le langage le plus largement répandu dans le domaine des jeux vidéo. Le cours s intégrera conceptuellement aux cours de la même session à titre de fournisseur de stratégies de programmation et servira de fondation au cours INF739 Concepts avancés de programmation de la session suivante. INF 737 A2015 Page 1

3. Objectifs généraux Ce cours se propose de donner à l étudiant(e) une connaissance appliquée de la programmation et de la philosophie OO ainsi que de certains éléments de conception avancée. Connaissance appliquée signifiera à la fois le savoir permettant de comprendre les systèmes développés selon les principes sous-jacents au modèle OO qui seront couverts, et le savoir-faire requis pour en tirer soi-même profit dans un contexte de développement. Exprimé en termes généraux, nous présumerons de l étudiante ou de l étudiant une connaissance des bases de la programmation orientée objet et nous viserons à raffiner l application de ces connaissances face à des problèmes concrets et à l aide de stratégies éprouvées ou novatrices. Afin d atteindre cet objectif, nous développerons une compréhension opérationnelle du langage de programmation C++, qui est le plus répandu dans l industrie du jeu. 4. Objectifs spécifiques Au terme du cours, l étudiante ou l étudiant sera capable : d identifier quel type de problème se prête le mieux à une solution OO; d expliquer les avantages d une solution OO; d analyser un problème pour y offrir une solution OO; de rédiger un programme OO afin de résoudre un problème concret; de respecter des standards de programmation; de tirer profit des divers principes de la programmation OO; de développer à l aide d une hiérarchie de classes existante; de produire une hiérarchie de classes; de généraliser le comportement d une hiérarchie de classes par polymorphisme; d utiliser des conteneurs standard; d appliquer un schéma de conception (Design Pattern) et, de manière générale, le modèle OO à un problème de développement logiciel; de reconnaître une opportunité d application judicieuse d un schéma de conception. 5. Planification hebdomadaire Le cours suivra une philosophie appliquée. Nous commencerons par un volet révision mêlant concepts et exercices, puis nous plongerons dans des stratégies pour appliquer efficacement l approche OO et pour montrer qu il est possible d écrire du code à la fois propre et efficace. C est dans cette optique d application efficace que nous examinerons quelques schémas de conception et quelques idiomes de C++. INF 737 A2015 Page 2

La structure prévue pour la session suivra le schéma ci-dessous, avec ajustements au besoin (et il y en aura). Ce schéma se veut plus illustratif que directif, et nous prendrons des libertés en fonction du rythme de la classe. Notez que les minitests apparaîtront sans prévenir et ne sont donc pas identifiés dans le schéma. Thèmes Idiomes et schémas de conception S00 Introduction. Présentation du cours, du professeur, de la démarche pédagogique. TP00 remis par le professeur aux étudiant(e)s TP00 remis par les étudiant(e)s au professeur S03 S06 Révision appliquée quant à l écriture de programmes avec C++. Retour appliqué et philosophique sur les bases de l approche OO: vocabulaire encapsulation cycle de vie héritage polymorphisme abstraction Singletons (quelques variantes) Fabriques (bases) Intermédiaires (bases) L'idiome RAII Bases de programmation générique (teintera le reste de la session) Décorateurs (bases) TP01 remis par le professeur aux étudiant(e)s S09 Conteneurs et algorithmes standard (introduction; sera revu en profondeur dans le cours CPA) Itérateurs Observateurs et mécanismes d abonnement (bases) Opérateurs, classes concrètes et homogénéité du système de types TP01 remis par les étudiant(e)s au professeur Examen final S12 S14 Héritage sous plusieurs coutures (privé, protégé, multiple, virtuel, etc.) Refactorisation et réingénierie L'idiome Pimpl et quelques variantes Truc Barton-Nackman et l idiome CRTP INF 737 A2015 Page 3

6. Approche pédagogique préconisée Pour favoriser l intégration des nombreux concepts au menu, nous suivrons essentiellement le modèle suivant : exposés magistraux en classe, où les étudiant(e)s sont fortement encouragés à contribuer par leurs questions et commentaires; travaux pratiques et exercices à teneur formative, qui permettront aux étudiant(e)s de mesurer concrètement leur compréhension de la matière explorée, et qui pourront être corrigés par le professeur ou encore autocorrigés à l aide d une grille de vérification, selon le cas; travaux pratiques à teneur sommative, évalués par le professeur en fonction des mêmes critères que ceux appliqués dans le cadre des activités formatives; des questions de réflexion (et parfois à saveur technique) sur une base quasi hebdomadaire; et un contrôle théorique récapitulatif, en toute fin de parcours, vérifiant formellement l atteinte des objectifs. Les questions et contrôles présumeront que chaque membre d une équipe aura contribué activement à la réalisation de chacun des travaux pratiques et aura bien compris les implications philosophiques et techniques de ces travaux. INF 737 A2015 Page 4

7. Évaluation de l apprentissage Les évaluations sommatives seront réparties et pondérées comme suit. Au moins huit minitests, souvent d une seule question, auront lieu sur une base relativement régulière, soit une par semaine, la plupart des semaines. Chaque question portera sur le thème de la semaine précédente ou des deux semaines précédentes, Les questions seront surtout orientées sur la réflexion, mais la technique à proprement dit s y glissera à l occasion. Le poids de chacun de ces petits tests sera 5% de la note finale. En général, le temps alloué pour y répondre sera d environ 15 minutes, au début du cours. Si plus de huit minitests ont lieu, alors les huit meilleurs résultats seront conservés pour chaque étudiant(e). 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. En pratique, nous appliquerons les techniques et concepts du cours au petit projet de jeu vidéo réalisé dans les autres cours de la session. Ce que vous livrerez sera chaque fois un rapport individuel démontrant, code à l appui, votre capacité de réaliser un transfert de connaissances et d appliquer, de manière pertinente et imaginative, la matière du cours INF737. Chaque travail vaudra 15% de la note finale. Un examen final récapitulatif valant 30% de la note finale aura lieu lors de la dernière séance de la session. Aucun retard ne sera toléré dans la remise des travaux pratiques. Minitests (40%) Travaux pratiques (30%) Examen (30%) Tout travail devra être produit dans un français jugé de bonne qualité. Une pénalité allant jusqu à 5% 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 distribuées en cours de session seront applicables aux travaux pratiques et au code rédigé dans le cadre des contrôles. Un pourcentage de chaque extrant sera consacré à la qualité du français et au format (présentation). 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 plus grand qu une semaine avant l échéance de la remise. INF 737 A2015 Page 5

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 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 remise des travaux Patrice.Roy@USherbrooke.ca INF 737 A2015 Page 6

10. Médiagraphie Les notes de cours qui vous seront distribuées constitueront votre référence principale pour la session qui s annonce. D autres références vous sont proposées sous la forme d une médiagraphie commentée sur le site suivant : http://h-deb.clg.qc.ca/liens/suggestions-lecture.html Parmi les quelques suggestions que vous trouverez sur ce site, portez particulièrement attention aux volumes suivants : Effective C++, Effective Modern C++ et Effective STL, de Scott Meyers Exceptional C++, de Herb Sutter Modern C++ Design, par Andrei Alexandrescu C++ Coding Standards, par Herb Sutter et Andrei Alexandrescu The C++ Programming Language, par Bjarne Stroustrup; et The C++ Standard Library A Tutorial and Reference, 2 nd Edition, par Nicolai M. Josuttis Certaines de ces références ne couvrent pas les révisions de C++ depuis C++ 03, mais sachez que dans ce cours (et dans les notes de cours), nous couvrirons C++ 11 et C++ 14 (avec un avant-goût de C++ 17) Vous ne serez donc pas en reste. Site Web du cours et autres références Le site Web du cours devrait être, avec les notes de cours en tant que telles, votre référence principale : http://h-deb.clg.qc.ca/udes/coa/ Je déposerai entre autres sur ce site des références électroniques me semblant pertinentes. Je vous invite donc fortement à le consulter sur une base régulière. Mon site principal est : http://h-deb.clg.qc.ca/ Dans tous les cas, faites attention aux majuscules et aux minuscules puisque l adresse est sensible à la casse. INF 737 A2015 Page 7