Libellé du cours : | Programmation orientée objet: interfaces graphiques et bases de données |
---|---|
Département d'enseignement : | MIN / Mathématiques - Informatique |
Responsable d'enseignement : | Madame ISABELLE LE GLAZ |
Langue d'enseignement : | Français |
Ects potentiels : | 0 |
Grille des résultats : | |
Code et libellé (hp) : | LA1_A_IF_MIN_POO1 - Programmation orientée objet |
Equipe pédagogique
Enseignants : Madame ISABELLE LE GLAZ
Intervenants extérieurs (entreprise, recherche, enseignement secondaire) : divers enseignants vacataires
Résumé
L’objectif principal de ce cours est de pouvoir développer une application avec une interface graphique et une connexion à une base de données, en utilisant le paradigme de la programmation orientée objet (POO). Par ailleurs, ce cours permet aussi de consolider les connaissances autour de la POO acquises en deuxième année : encapsulation, héritage, polymorphisme, modularité, structures de données. Nous nous attachons également dans ce cours à développer du code de qualité : indentation correcte, respects des conventions Java dans les noms des classes, attributs, méthodes et variables, commentaires pertinents au format Javadoc, tests au fur et à mesure du développement. Ce cours s’appuie sur le langage Java mais pourrait être appliqué à n'importe quel autre langage de type objet. Les notions principales abordées dans ce cours sont les suivantes : - requêtes sur une base de données (API JDBC) ; - mapping objet-relationnel : JPA (Java Persistence API) ; - réalisation d’une interface graphique (API Swing). De plus, le cours permettra d’aborder les notions suivantes : - exploitation d’un stockage de données de type fichiers json ; - mise en œuvre de Design Pattern reconnus pour les différents points évoqués ci-dessus : singleton, DAO, factory.
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éfinir un modèle de données dans un langage objet à partir d’un modèle relationnel provenant d’une base de données ; -effectuer des requêtes sur une base de données depuis une application Java ; -développer une interface graphique contenant des éléments de base : listes, boutons, tables, arbres ; -utiliser le principe de gestion d’exception du langage Java ; -utiliser des threads dans un programme Java ; 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 ; -implémentation des structures de données (liste, ensemble, table associative) ; -traitement des exceptions ; -requêtes sur une base de données ; -utilisation avancée des éléments pour réaliser une interface graphique ; -mapping objet relationnel. Compétences développées : -bonnes pratiques de développement en programmation orientée objet ; -réaliser des tests ; -réaliser du code propre ; -commenter son code ; -concevoir un programme dans un langage de programmation orientée objet ; -à partir d’une base de données, développer une interface graphique qui permet d’interagir avec la base.
Objectifs de développement durable
Modalités de contrôle de connaissance
Contrôle Continu / Dernier Contrôle Bloqué du cours
Commentaires: Il s’agit d’un contrôle terminal sous forme d’une soutenance par groupe afin de présenter ce qui a été réalisé dans un projet.
Cette soutenance finale a lieu à la fin du projet. Cette soutenance est commune avec les membres, mais chacun des membres du groupe peut être interrogé individuellement.
La note est individualisée, et peut donc tout à fait être différente pour les membres d’un même groupe.
Ressources en ligne
- Pour chaque séance, sujets disponibles sur Moodle.
Pédagogie
Pour 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. Les dernières séances permettent de réaliser un projet de synthèse, en groupe.
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) : | 36 |
Nombre d'heures en Séminaire : | 0 |
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
- Notions d’algorithmique. - Connaître les structures de données de base (tableau, liste chaînée, ensemble). - Savoir développer un programme en programmation orientée objet. - Comprendre un diagramme de classe UML. - Savoir faire des requêtes SQL sur une base de données.