2019-2020 / 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 crédits 

Enseignant

Samuel Hiard, Laurent Mathy

Langue(s) de l'unité d'enseignement

Langue française

Organisation et évaluation

Enseignement au premier quadrimestre, examen en janvier

Horaire

Horaire en ligne

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 de l'unité d'enseignement

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
  • Une introduction à différents concepts (Threads, programmation GUI, complexité spatiale et temporelle, ...) 
  • Les règles de bonne pratique de programmation
  • La programmation défensive
(cette liste n'est pas exhausive)

Acquis d'apprentissage (objectifs d'apprentissage) de l'unité d'enseignement

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 note finale sera calculée à l'aide d'une moyenne géométrique pondérée. La pondération des projets est la suivante :

  • 10% pour le premier projet
  • 30% pour le second projet
  • 60% pour le dernier projet
Les deux premiers projets sont à rendre pendant l'année. La présentation du troisième projet peut faire office 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 : Guillaume Philibert (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.