1/7 La description de module définit les conditions cadres du déroulement de l enseignement des matières du module. Filière(s) Orientation Public Informatique (INF) Développement Logiciel et Multimédia (dlm) Plein temps Unités Niveau d études 1 2 3 Période pédagogique (semestre) 1 2 3 4 5 6 N Type Désignation.1 CT+TP Java 4 4.2 CT+TP C++ avec Qt 4 4.3 TP Python 2 Examen Total 8 10 Indication en périodes hebdomadaires (45 min.) CT Cours théorique ; TP - Travail pratique ; PR Projet Programme Bachelor Executive Master Master of Advanced Studies Niveau Elémentaire Intermédiaire Avancé Spécialisé (Basic) (Intermediate) (Advanced) (Specialized) Type Central Lié Mineur (Core) (Related) (Minor) Volume de travail heures Enseignement 202 Travail personnel 218 Travail total 420 Crédits ECTS 14 Pré requis Avoir acquis les modules : - Programmation I (1240)
2/7 d apprentissage, compétences visées Les objectifs d apprentissage de ce module sont classés selon les trois degrés croissants de difficulté: (M) Mémorisation, (A) Application et compréhension, (R) Résolution de problèmes (analyse, synthèse, évaluation). A l issue du module, l'étudiant doit être capable de : - Exposer les connaissances de base des divers langages utilisés. (M) - Reproduire les exercices faits en classe. (M) - Appliquer leurs connaissances à des situations nouvelles. (A) - Réaliser, tester et programmer de petites applications selon un cahier des charges. (R) Plus globalement, l étudiant doit être capable de s intégrer dans une équipe de développement logiciel en Java, C++ ou Python (R). Il disposera de solides compétences dans la programmation orienté objet (A). Il sera en mesure de concevoir implémenter et tester de petites applications (R).
3/7 Validation Evaluation des apprentissages - Evaluations des différentes Unités d Enseignement (UE) - Examen semestriel de Java II et de C++ avec Qt II Note finale du module : 2 m 2 m m M 5 J Q P avec les définitions : m J n e 2 J J m Q n e Q Q 2 n J = moyenne des notes de Java e J = note de l'examen écrit de Java n Q = moyenne des notes de C++ avec Qt e Q = note de l'examen écrit de C++ avec Qt IDE m P = moyenne des notes de Python Toutes les notes et moyennes sont précisées au dixième de point. Conditions de réussite : Note finale du module Moyennes M 4.0 (arrondie au demi-point) m i 3.0 (arrondies au dixième de point) La note finale du module, calculée au dixième de point, permet d établir la note ECTS. Modalités de remédiation Ce module ne fait pas l objet d une remédiation
4/7 Unité Java Identifiant.1 Méthode spécifiques Cours et exercices A l'issue du cours, l'étudiant sera en mesure de Développer une application desktop graphique évènementielle multithreadée orienté objet. Tester son application (test unitaire). Déployer son application (hors IDE). Plus particulièrement, l étudiant sera en mesure d utiliser efficacement les techniques de programmation orientée objet. Les notions d héritages et de polymorphismes n auront plus de secret pour lui, y compris dans les situations complexes. Il saura les utiliser efficacement pour rendre ces codes plus simples, plus robustes et avec un degré élevé de réutilisabilité des composants développés. Il s efforcera d utiliser toutes les possibilités du langage pour que son code possède un haut degré de lisibilité et de maintenance. Il saura mettre en œuvre des méthodes agiles tel que le refactoring pour garantir une structure et cohésion optimale de ses packages et de ses classes. Il emploiera les génériques et utilisera des noms (paquetages, classes, méthodes, variables) les plus pertinents possibles. Il s aura s aider des collections pour résoudre des problèmes à priori complexes. Il sera sensibilisé au problème de synchronisation simple. L étudiant maitrisera les tests unitaires et sera en mesure d établir la couverture de code associé. Il s aura se documenter pour utiliser des composants tiers dans ses projets. Finalement il disposera d une méthodologie lui permettant d implémenter efficacement ces idées dans le riche écosystème java. Il s appuiera sur un IDE évolué lui permettant de coder le plus efficacement possible. A partir du second semestre, l étudiant sera en mesure de développer des applications graphiques contenant les composants usuels d un GUI et de gérer les événements permettant de contrôler l application. Il sera en mesure de réaliser des animations graphiques, en particulier sur les images. Il saura utiliser efficacement des timers et des threads pour exploiter au mieux la puissance des machines multi-core. Il sera sensibilisé à l utilisation du design pattern modèle vue contrôleur. Ses applications utiliseront des objets distribués. Il maitrisera les mécanismes de sérialisation, et les flux pour transférer de l information entre deux entités. Il sera en mesure de développer une application utilisant à la fois du java et du C++ (dans un sens ou dans l autre). Il sera à même d exploiter en java une dll dont il ne dispose pas du code source.
5/7 Modalités d évaluation - Minimum 3 contrôles principaux (CP) écrits, annoncés et obligatoires. - Un examen écrit à la fin du semestre de printemps. La taxation peut dépendre du déroulement du travail personnel et de travaux pratiques réalisés en cours. La méthode de prise en compte sera clairement indiquée par le professeur au début du cours. Description du contenu (mots-clés) - Spécificité d une machine virtuelle - La syntaxe du langage (types, structures de contrôles, ) - Le paradigme objet (encapsulation, héritage, polymorphisme, ) - Les collections - Les génériques - La réflexion - Les tests unitaires (Junit et couverture de code) - La gestion de projet (jar, doc, package, classpath) - Le monitoring d une JVM - Le profiling d une application - Déploiement d une application - Utilisation d un IDE évolué - Programmation parallèle (thread, pool de thread,, synchronisation simple) - Programmation graphique (Swing, Layouts, java2d, animation, timer, ) - Les flux (IO,.txt,.bin) - La persistance (Propriétés/Préférences) - La sérialisation Les objets distribués (RMI) - L API java-comm (selon temps disponible) - L interopérabilité avec du code natif (C++) et des dll (selon temps disponible) Supports de cours Outils utilisés Au choix de l enseignant Les outils utilisés sont précisés par l'enseignant au début du cours Bibliographie - Au cœur de Java, JDK 5.0, Volume 1 (Notions fondamentales), Volume 2 (Fonctions avancées), CampusPress, 2006 - Java, Tête la première, 2ème édition, Kathy Sierra, Bert Bates, O'Reilly, 2006 - Le langage Java, Concepts et pratique - le JDK 5.0, 3ème édition revue et augmentée, Irène Charon, Éditions Hermès, 2006 - Swing, la synthèse, Développement des interfaces graphiques en Java. 2ème édition, Valérie Berthié, Jean-Baptiste Briaud, Dunod, 2005 Particularité d organisation Rien de particulier
6/7 Unité C++ avec Qt Identifiant.2 Méthode Cours et exercices (laboratoire) de programmation. spécifiques Modalités d évaluation Décrire le modèle événementiel de Windows et de Qt. Développer des applications graphiques en y intégrant des ressources. Réaliser des animations simples en 2D. Utiliser le GraphicsViewFramework pour réaliser des animations graphiques. Utiliser des modules de Qt comme QtNetwork, QtXml, QtOpenGL. Réaliser des interfaces utilisateur simples en QML avec Qt Quick. - Minimum 3 contrôles principaux (CP) écrits, annoncés et obligatoires. - Présentation par les étudiants de concepts non traités en cours - Un examen écrit à la fin du semestre de printemps. La taxation peut dépendre du déroulement du travail personnel et en cours. La méthode de prise en compte sera clairement indiquée par le professeur au début du cours. Description du contenu (motsclés) Supports de cours - Programmation événementielle, interfaces graphiques, fenêtres, souris, menus, boîtes de dialogue, Qt Designer, graphisme 2D, animations, impressions (C++, Qt, POO). - QGraphicsView, conteneurs et itérateurs, entrées / sorties, QtNetwork, parsing XML, bibliothèques dynamiques, introduction au module Qt Quick (C++, Qt, POO, sérialisation, XML). Au choix de l'enseignant Outils utilisés Ce cours s appuie sur l utilisation du toolkit Qt (http://qt-project.org/). Bibliographie - Qt4 et C++ : Programmation d interfaces GUI, J. Blanchette, M. Summerfield, Pearson Education (2007) - An Introduction to design patterns in C++ and Qt4 2nd, A.+P. Ezust, Prentice Hall PTR (2012) Particularité d organisation Rien de particulier
7/7 Unité Python Identifiant.3 Méthode Cours, exercices et travaux pratiques en laboratoire spécifiques Modalités d évaluation - Écrire un programme ou un script en python pour l analyse de données textuelles en utilisant les expressions régulières, les générateurs et les gestionnaires de contextes. - Maîtriser les particularités de la programmation Python liées essentiellement au typage dynamique, à sa nature interprétée et au développement rapide d applications - Réutiliser des programmes, scripts existants et modules en Python - Exercer la programmation fonctionnelle avec Python - 2 contrôles principaux (CP) écrits, annoncés et obligatoires Description du contenu (mots-clés) Supports de cours Outils utilisés Bibliographie - Prise en main des éléments de base du langage Python (types de données, contrôle de flux, instruction répétitives, fonctions, manipulation des fichiers, programmation orientée objets) - Structures avancées en python (exceptions, surcharge des opérateurs, itérateurs, générateurs, gestionnaires de contextes) - Aspects fonctionnels de python («list comprehensions», décorateurs) Au choix de l enseignant Les outils utilisés sont précisés par l'enseignant au début du cours -Gérard Swinnen. Apprendre à programmer avec Python. Edition Eyrolles. 2010. -Tarek Ziadé, Programmation Python, Edition Eyrolles, 2006 Particularité d organisation Rien de particulier