Libellé du cours : | Programmation orientée objet |
---|---|
Département d'enseignement : | MIN / Mathématiques - Informatique |
Responsable d'enseignement : | Monsieur MAXIME OGIER |
Langue d'enseignement : | Anglais |
Ects potentiels : | 4 |
Grille des résultats : | Grade de A+ à R |
Code et libellé (hp) : | G1G2_ED_MIN_POO - Programmation orientée objet |
Equipe pédagogique
Enseignants : Monsieur MAXIME OGIER / Monsieur DIEGO CATTARUZZA / Monsieur FREDERIC SEMET / Monsieur PABLO TORREALBA GONZALEZ
Intervenants extérieurs (entreprise, recherche, enseignement secondaire) : divers enseignants vacataires
Résumé
Ce cours (en anglais) vise à apporter de nouvelles connaissances autour du paradigme de la programmation orientée objet (POO), en se basant sur le langage Java. Les principaux concepts abordés concernent les notions de classe, d’attribut et de méthode, l’encapsulation, l’héritage et le polymorphisme. Nous étudions également l’utilisation de structures de données classiques (listes, ensembles, tables associatives), de l’algorithmique pour la résolution d’un problème concret à l’aide de l’informatique, les interfaces graphiques et l’utilisation de bases de données. Dans ce cours nous ne nous limitons pas à concevoir des systèmes d’information, mais nous allons aussi aborder des concepts d’optimisation de base. Ces derniers se traduisent par le développement de procédures algorithmiques à intégrer au sein des applications développées dans le cours. Nous nous attachons également dans ce cours à développer du code de qualité : indentation correcte, respects des conventions Java dans les noms de classe, attributs, méthodes et variables, commentaires pertinents au format Javadoc, tests unitaires au fur et à mesure du développement
Objectifs pédagogiques
À l’issue du cours, l’élève sera capable de : - développer une application avec une interface graphique et une interaction avec une base de données ; - comprendre les concepts fondamentaux de la programmation orientée objet (encapsulation, héritage, polymorphisme) ; - choisir des structures de données adaptées, et d’utiliser ces structures de données ; - résoudre un problème concret à l’aide d’un langage informatique (Java) ; - développer du code de qualité (indentation, respect des conventions, commentaires, tests unitaires). Contribution du cours au référentiel de compétences ; à l’issue du cours, l’étudiant aura progressé dans : - la capacité à concrétiser ou à réaliser un prototype (1.9) ; - la capacité à organiser la résolution d’un problème (2.3, 2.4, 2.5) ; - la capacité à développer des méthodes de travail, à organiser (3.5).
Objectifs de développement durable
Modalités de contrôle de connaissance
Contrôle Continu / Dernier Contrôle Bloqué du cours
Commentaires: L’évaluation finale est réalisée sous forme d'un oral individuel de 30 minutes.
Les élèves doivent réaliser du code en direct pendant la soutenance, et répondre aux questions de l'enseignant.
Ceci permet d'évaluer la compréhension des concepts fondamentaux de la POO, ainsi que les compétences d'implémentation en POO.
Ressources en ligne
Un polycopié d’introduction à la programmation orientée objet et au langage Java sera fourni aux élèves et disponible sur Moodle. Pour chaque séance, des sujets détaillés seront mis à disposition sur Moodle. Ces sujets mêlent des parties de cours et des questions guidées qui permettent d’appréhender les nouveaux concepts.
Pédagogie
Les bases du cours sont disponibles dans un polycopié que les élèves doivent lire (en travail personnel) avant la première séance. Des séances en salle machine permettent de mettre en œuvre, sur ordinateur, l’étude de cas présentée dans le sujet. Il est indispensable que chaque élève puisse coder seul sur une machine. Par ailleurs, afin de pouvoir discuter des choix d’implémentation et de la qualité du code développé, il est nécessaire que la taille des groupes soit limitée à 16 élèves afin que les enseignants aient suffisamment de temps à consacrer à chaque élève. Des sujets détaillés seront fournis aux élèves pour chaque séance. Ces sujets contiennent des nouvelles notions théoriques, qui seront explicitées par l’enseignant. Les enseignants pourront avoir recours à du live-code afin de présenter aux élèves comment mettre en pratique les notions théoriques. Cette partie live-code sera réduite au fur et à mesure de l’avancement du cours pour permettre aux élèves de monter en autonomie. A la fin de l’électif, les élèves doivent absolument être capables de développer entièrement une petite application par eux-mêmes.
Séquencement / modalités d'apprentissage
Nombre d'heures en CM (Cours Magistraux) : | 0 |
---|---|
Nombre d'heures en TD (Travaux Dirigés) : | 0 |
Nombre d'heures en TP (Travaux Pratiques) : | 0 |
Nombre d'heures en Séminaire : | 4 |
Nombre d'heures en Demi-séminaire : | 0 |
Nombre d'heures élèves en TEA (Travail En Autonomie) : | 0 |
Nombre d'heures élèves en TNE (Travail Non Encadré) : | 0 |
Nombre d'heures en CB (Contrôle Bloqué) : | 0 |
Nombre d'heures élèves en PER (Travail PERsonnel) : | 0 |
Nombre d'heures en Heures Projets : | 0 |
Pré-requis
Connaissances de base d’algorithmique (qui peuvent être acquis en classe préparatoire et dans le cours de socle commun de AAP). Des connaissances supplémentaires en conception des systèmes d’information (UML) et bases de données (SQL) seront appréciées (électif Systèmes d’Information au S6a), mais ne sont pas indispensables.
Nombre maximum d'inscrits
64