Libellé du cours : | Introduction à la programmation orientée objet |
---|---|
Département d'enseignement : | MIN / Mathématiques - Informatique |
Responsable d'enseignement : | Monsieur MAXIME OGIER |
Langue d'enseignement : | Français |
Ects potentiels : | 0 |
Grille des résultats : | |
Code et libellé (hp) : | LE2_3_IF_MIN_IOP - Intro. à la Prog. orientée Obj |
Equipe pédagogique
Enseignants : Monsieur MAXIME OGIER / Monsieur GAEL GUILLOT
Intervenants extérieurs (entreprise, recherche, enseignement secondaire) : divers enseignants vacataires
Résumé
Ce cours vise à apporter de nouvelles connaissances autour du paradigme de la programmation orientée objet (POO). 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), ainsi que de l’algorithmique. Ce cours s’appuie sur le langage Java. En particulier, nous utilisons l’API Swing afin de réaliser des interfaces graphiques. Nous nous attachons aussi 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. Le contenu résumé du cours est le suivant : - fondements de la programmation orientée objet et lien avec la conception orientée objet ; - gestion des collections de type liste ; - tris des éléments d’une collection et algorithmique ; - gestion des collections de types ensemble et table associative ; - gestion des exceptions et des entrées/sorties ; - algorithmique ; - interface graphique et programmation événementielle.
Objectifs pédagogiques
À l’issue du cours, l’élève sera capable de : - développer un programme selon le paradigme de la programmation orientée objet ; - connaître les bonnes pratiques de développement en programmation orientée objet ; - choisir et utiliser les bonnes structures de données (liste, ensemble, table associative) ; - développer une interface graphique simple avec le langage Java ; - utiliser le principe de gestion d’exception du langage Java ; - implémenter un algorithme simple dans un programme orienté objet. Contribution du cours au référentiel de compétences ; à l’issue du cours, l’étudiant aura progressé dans : - concevoir un système ; - réaliser, développer un système ; - mettre en place des protocoles de tests ; - réaliser et exécuter des jeux de tests ; - réaliser des documentations techniques de projet. Connaissances travaillées: - vocabulaire de la programmation orientée objet ; - bonnes pratiques de développement en programmation orientée objet ; - notions de classe, attribut, méthode ; - notions d’héritage, classe abstraite, interface ; - implémentation des structures de données (liste, ensemble, table associative) ; - traitement des exceptions ; - programmation événementielle. Compétences développées: - bonnes pratiques de développement en programmation orientée objet ; - réaliser des tests unitaires ; - réaliser du code propre ; - commenter son code ; - concevoir un programme dans un langage de programmation orientée objet.
Objectifs de développement durable
Modalités de contrôle de connaissance
Contrôle Continu / Dernier Contrôle Bloqué du cours
Commentaires: Ce cours est évalué par un test d'environ une demi-heure à mi parcours (CC) et par une soutenance de 30 minutes individuelle (CT).
CC : Les élèves doivent répondre à des questions courtes et réaliser un code avec les éléments de base de la POO. Ceci permet d'évaluer la compréhension des concepts de base de la POO nécessaire à la suite du cours.
CT : 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
- Polycopié introductif disponible sur Moodle. - Pour chaque séance, sujets disponibles sur Moodle.
Pédagogie
- Le polycopié d’introduction est à lire avant le début du cours. - Chaque séance, un sujet, sous forme d’une étude de cas, permet de découvrir au fur et à mesure les nouvelles notions : d’abord l’aspect théorique, puis on implémente en pratique. - L’enseignant ne fait pas une correction systématique, mais il peut répondre à toutes les questions des élèves. Les élèves doivent donc être actifs. - Un travail en dehors des séances est nécessaire. - La qualité du code développé a une grande importance.
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 : | 0 |
Nombre d'heures en Demi-séminaire : | 40 |
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
- Notions d’algorithmique. - Connaître les structures de données de base (tableau, liste chaînée, ensemble). - Savoir développer un programme dans un langage impératif (C par exemple). - Comprendre un diagramme de classe UML.