Acquis d'apprentissage

A la fin du cours, l’étudiant aura acquis une connaissance approfondie des concepts, techniques et paradigmes de programmation nécessaires au développement d’une application réactive et contextuelle.
 
Une partie du cours consiste en la réalisation d'un projet en groupe, ce qui permet à l'étudiant de développer des "soft skills".

 

 

Objectifs

Les objectifs du cours est d'étudier les paradigmes de programmation sous-jacents à la réalisation d'applications mobiles, réactives et contextuelles.

Contenu

Outre l'aspect novateur d'utiliser le cadre du logiciel libre pour concevoir un système d'exploitation pour appareils mobiles dans un domaine jusque là hautement propriétaire, le projet Android a eu, dès son lancement en 2003, le mérite de vouloir fournir à l'utilisateur une expérience riche de ses préférences et de son environnement. Ceci s'est popularisé, depuis lors, au travers du développement de nombreuses "app" tant sur Android que sur d'autresplateformes telles que iOS ou Windows Mobile. L'informatique ambiante a pour ambition d'accentuer encore ce phénomène en permettant à l'utilisateur de bénéficier de services intelligents fournis par des objets communicants.

Au niveau de la programmation, cette évolution nécessite la prise en compte de nouveaux paradigmes. Le cours se propose d'aborder les principaux au travers de deux parties, consacrées, d'une part, à la programmation réactive et, d'autre part, à la programmation contextuelle.

La première partie, consacrée à la programmation réactive, sera dédiée aux principes sous-jacents à la propagation de changements et d'autres effets en programmation comme l'échec et la latence. On abordera les éléments-clés des paradigmes FRP (Functional Reactive Programming) et OORP (Object-Oriented Reactive Programming) et leur incarnation dans le langage Scala.

La seconde partie, consacrée à la programmation contextuelle, sera organisée selon trois axes complémentaires. Dans le premier, on étudiera tout d'abord deux modèles principaux de coopération: le modèle des acteurs et le modèle de coordination basé sur des espaces partagés. Des incarnations dans le langage Scala seront ensuite examinées. Enfin, un lien sera fait avec la programmation déclarative d'une application web mobile mise en évidence par le framework React Native.

 

Méthodes d'enseignement

Le cours est basé sur une série d'exposés théoriques complétée par des séances d'exercices et des projets à réaliser par les étudiants.

Méthode d'évaluation

L'étudiant est évalué sur base de travaux à remettre ainsi que d'un examen en fin de semestre.

Langue d'instruction