Programme des cours 2015-2016
INFO0951-2  
Programmation d'applications distribuées et en réseau
Durée :
15h Th, 45h Labo., 10h Proj.
Nombre de crédits :
Master en architecture des systèmes informatiques5
Nom du professeur :
Samuel Hiard, Laurent Mathy
Langue(s) du cours :
Langue française
Organisation et évaluation :
Enseignement au premier quadrimestre, examen en janvier
Unités d'enseignement prérequises et corequises :
Les unités prérequises ou corequises sont présentées au sein de chaque programme
Contenus du cours :
Le cours comporte quelques exposés théoriques (8 leçons de 2 heures) et divers problèmes (dont 3 interviennent dans le calcul de la note finale) de programmation que les étudiants doivent résoudre. Les problèmes sont résolus en groupe pour les premiers projets et individuellement pour le dernier projet. Les projets sont à développer sur les machines personnelles des étudiants. Les exposés théoriques servent à présenter, aux étudiants, les outils utiles à la résolution des problèmes.
Pratiquement, l'étudiant recevra un enseignement concernant, notamment :
  • Le système RMI
  • Les sockets NIO
  • Les règles de bonne pratique de programmation
  • La programmation défensive
(cette liste n'est pas exhausive)
Acquis d'apprentissage (objectifs d'apprentissage) du cours :
L'objectif du cours est de permettre aux étudiants d'appliquer la matière vue dans le cadre du cours afin de développer des applications distribuées et en réseau en utilisant le langage Java. A la fin du cours, l'étudiant sera capable
  • d'utiliser le système RMI spécifique à Java
  • d'utiliser les sockets NIO
  • de mettre ces systèmes en pratique afin de développer des programmes dont l'architecture est de type client/serveur en Java
  • de réfléchir à la manière optimale d'ajouter une fonctionnalité ou de gérer les erreurs dans un programme de type client/serveur
  • De matrisier la différence entre un service "boîte noire" et un service bas niveau.
Savoirs et compétences prérequis :
  • Connaissance de base de la programmation (structures de données de base et algorithmique) et du langage Java.
  • Bonne connaissance du français (oral et écrit)
  • Bonne connaissance de l'anglais (écrit)
Activités d'apprentissage prévues et méthodes d'enseignement :
Apprentissage par la pratique (i.e., résolution de problèmes)
Mode d'enseignement (présentiel ; enseignement à distance) :
Les cours théoriques se donnent en présentiel avec des slides.
Les projets peuvent être réalisés pendant les heures de laboratoire ou à son domicile.
Le cours se donne durant le 1er quadrimestre.
Lectures recommandées ou obligatoires et notes de cours :
Les notes de cours ainsi que les énoncés des projets seront mis à disposition des étudiants sur la plate-forme Chamilo.
La lecture de tout ou partie de la documentation java (javadoc) ainsi que les tutoriels, fournis par Oracle/Sun est recommandée.
Modalités d'évaluation et critères :
Les étudiants sont évalués sur base des projets à rendre. La pondération des projets est la suivante :
  • 30% pour le premier projet
  • 30% pour le second projet
  • 40% pour le dernier projet
Il n'y a pas d'examen. En cas d'échec en première session, les projets obtenant un note inférieure à 10/20 doivent être refaits par l'étudiant durant l'été. Durant la seconde session, aucun support (réponse aux questions, aide, ...) ne sera offert aux étudiants.
Stage(s) :
Remarques organisationnelles :
Samuel Hiard donnera les leçons théoriques ainsi que quelques heures d'encadrement de labo. Des partenaires MASI se partageront les heures d'encadrement de labo restantes.
Contacts :
Co-titulaires : Laurent Mathy (ULg) et Samuel Hiard (Ulg)
Suppléance : Arnaud Ligot (Hénallux)
Notes en ligne :
Chamilo
Les supports de cours et les énoncés des projets seront mis à disposition dans la section "Documents" du cours correspondant sur la plate-forme Chamilo.