Atelier logiciel, (2e industrielle et réseaux et télécommunications)
ARO, NVS, PBT, PMA
Présentation
L'objectif principal des ateliers logiciels de deuxième industrielle et industrielle réseaux est d'offrir une initiation à la programmation réseau. L'étudiant y apprend à mettre en œuvre le paradigme client-serveur en exploitant les services des sockets de la suite de protocoles TCP/IP. Cette compétence peut être vue comme une application pratique du cours "Modèles et Protocoles de Réseaux" de 1e année option industrielle.
Pour des raisons de productivité et de fiabilité, le choix des outils de développement s'est porté sur
- le langage Java (le cours de première LGJ1 - LAJ1 est donc un prérequis),
- l'utilisation d'un IDE, Netbeans,
- Swing, le toolkit graphique (GUI) de SUN sans l'outil d'assistance à la conception de Netbeans,
C'est pourquoi ce cours peut également être vu comme une suite à l'apprentissage de Java de premère année et un complément à l'apprentissage des langages orientés objets (C++ et Java) en ateliers logiciels.
En fin de semestre, l'étudiant doit être capable de concevoir et développer une application client-serveur simple interagissant avec ses utilisateurs. Pour ce faire, l'apprentissage comprend les étapes suivantes:
- TD1 Découverte et prise en main de l'EDI NetBeans. Réactivation des compétences Java.
- TD2 et TD3 Familiarisation avec les concepts de l'interface utilisateur graphique Swing (GUI) et de la programmation évènementielle associée.
- TD4 Compréhension de l'utilité des threads et leur exploitation en programmation réseau.
- TD5 Manipulations des classes entrées et sorties de flux de type fichier et réseau.
- TD6 Initiation aux applications client-serveur exploitant les sockets TCP/IP.
Chaque TD contient ses concepts théoriques, ses exemples de codage, ses directives d'apprentissage et ses exercices pratiques. Le rythme du cours est d'environ une séance et demie par TD mais dépend également de la motivation des étudiants de chaque groupe, de leur travail à domicile et de leurs interactions avec leur professeur. Par ailleurs, la pratique a démontré qu'un projet fil rouge pouvait faciliter l'apprentissage et contribuer à une intégration des compétences acquises étape par étape. Les étudiants peuvent, s'ils le désirent, convenir avec leur professeur des spécifications pour un projet de développement personnel d'une application client-serveur, voire d'"égal-à-égal" (peer-to-peer).
Supports de cours
Voici les énoncés des laboratoires
- ALG2ir-TD1 [pdf 2x1] [pdf] [zip]
- ALG2ir-TD2 [pdf 2x1] [pdf] [zip]
- ALG2ir-TD3 [pdf 2x1] [pdf]
- ALG2ir-TD4 [pdf 2x1] [pdf]
- ALG2ir-TD5 [pdf 2x1] [pdf]
- ALG2ir-TD6 [pdf 2x1] [pdf]
Ressources
- Le framework Java ainsi que d'autres documentations sont téléchargeables sur le site de SUN
- L'IDE Netbeans est téléchargeable sur leur site [download]
- Le livre Java Langage Specification [sun] [pdf]
- Document SUN à propos de la notion d'annotation [html]
- Document SUN à propos de la notion de reflection (introspection) [html]
- Conventions d'écriture du code en Java [pdf] [sun]
- La notion de generics [pdf]
- Les guides
Évaluation
Le cours est sanctionné par un examen oral machine.
Organisation de l'examen
L'examen (oral-machine) dure 4h (maximum). Tous les étudiants reçoivent une question commune à résoudre sur machine. Chaque étudiant est interrogé individuellement sur sa solution (tant sur des aspects pratiques que théoriques), il est amené à justifier ses choix.
Il doit être clair que
- l'enseignant est libre de demander d'implémenter d'autres éléments complètement ou partiellement,
- la question commune sera différente pour chaque groupe d'étudiants, ou plus exactement pour chaque "moment d'examen"
Archives
Quelques questions d'examens, d'interros ou autre ...