% INF8214 — Programmation avancée % UQAM — Département d'informatique % Plan de cours — Hiver 2023 * Horaires, locaux et enseignants: Responsable(s) du cours ======================= Coordination ------------ Makarenkov, Vladimir PK-4815 Enseignement ------------- Boc, Alix PK-4115 Groupes: 040 Description du cours ==================== Ce cours vise à initier aux concepts fondamentaux de la programmation orientée objet, avec le même langage que le cours INF8212. Préalables académiques : Comprendre les possibilités et les limites du langage choisi. Orientation objet (OO) comme technique d'emballage de composants réutilisables. Lignes directrices de conception et de programmation. Introduction aux librairies de base et mathématiques. Introduction aux librairies bioinformatiques et aux accès automatisés aux ressources en ligne. Notions de client et de serveur, survol des protocoles d'échange d'information, accès à des bases de données distantes. Introduction aux bases de données relationnelles: tables, enregistrements, colonne, langage d'interrogation. Ce cours intègre la théorie et la pratique sur des postes informatiques. Il comporte une séance supplémentaire obligatoire de laboratoire. Objectif du cours ================= CE COURS VISE À : 1. Présenter la terminologie et les concepts de l'approche orientée objet. 2. Amorcer une réflexion sur la conception orientée objet. 3. Utiliser concrètement un langage de programmation orienté objet pour la réalisation de systèmes simples : - en concevant des classes; et - en réutilisant des classes existantes ; - apprécier les avantages de l'approche. 4. Comprendre la structrure des applications WEB. 5. Faire un survol des technologies Web modernes et les utiliser adéquatement. LES COMPÉTENCES DÉVELOPPÉES DANS LE CADRE DE CE COURS RENDRONT L'ÉTUDIANT, L'ÉTUDIANTE CAPABLE DE : - Comprendre une explication mettant en cause la description d'un système orienté objet. - Expliquer les différentes sections d'un diagramme statique de classe présenté en UML. - Concevoir un diagramme en UML représentant une hiérarchie d'agrégation/composition et/ou de spécialisation/généralisation de classes dans le processus de résolution d'un problème avec l'approche orientée objet. - Discriminer les contextes suivants de réutilisation de code : agrégation/composition, spécialisation ou simple dépendance. Effectuer la trace des instructions impliquées dans un programme Java utilisant des classes. - Acquérir une certaine "culture générale" des bibliothèques de code reliées au domaine d'application. - Rechercher et intégrer des classes dans un projet de développement logiciel. Élaborer une stratégie de tests. Effectuer la codification en Python. - Appliquer la stratégie de tests. - Mettre en place des infrasctures Web simples de bout en bout (backend et frontend). Contenu du cours ================ - semaine 01 : Présentation du cours / La Programmation Orientée Objet - semaine 02 : Programmation Orientée Objet I - semaine 03 : Programmation Orientée Objet II - semaine 04 : Programmation Orientée Objet III - semaine 05 : Programmation Orientée Objet IV - semaine 06 : Introduction à la programmation WEB - semaine 07 : HTML - semaine 08 : Examen Intra - semaine 09 : Flask - semaine 10 : Javascript - semaine 11 : JQuery - semaine 12 : Bootstrap - semaine 13 : Étude de cas - semaine 14 : Étude de cas - semaine 15 : Examen Final Modalités d'évaluation ====================== 1. Trois travaux pratiques : - TP1 : 15 % - TP2 : 15% - TP3 : 10% 2. Deux examens : - intra : 30% - final : 30% Médiagraphie ============ UO NOTES DE COURS : UR SITE OFFICIEL DU LANGAGE PYTHON : UR SITE OFFICIEL DU FRAMEWORK FLASK :