Programmation large échelle

Niveau Master 2, 3ème année école ingénieur. ancien support web, MOODLE UB

L'objectif de cet enseignement est de former les étudiants aux méthodes de programmation pour la manipulation des données massives. Dans ce contexte, les problèmes et les enjeux de la manipulation des BigData seront abordés. Dans le cours nous nous concentrerons sur l'éco-système Hadoop qui est la référence dans ce domaine. Nous commencerons par l'étude du système de fichier HDFS ainsi que de l'API JAVA permettant de le manipuler. Nous aborderons ensuite le paradigme de programmation MapReduce en utlisant l'API standard de Hadoop2 mais aussi SPARK. Les design pattern standards de programmation Map/Reduce seront étudiés dans ce contexte. Enfin, nous aborderons les API de programmation de la base de données de Hadoop HBASE.



Architecture logicielle

Niveau Master 1, ancien support web, MOODLE UB

L'objectif de cet enseignement est d'introduire les patrons de conception ("Design Pattern"). Les patrons de conception capitalisent l'expérience de nombreux développeurs et offrent ainsi une solution élégante pour concevoir des architectures logicielles. Ils sont largement utilisés dans de nombreux logiciels, leur connaissance aide ainsi à la compréhension ainsi qu'à l'extension des systèmes existants.
Dans le cours, tous les patterns de référence seront étudiés et illustrés par des cas d'études tirés d'expériences de développements de logiciels d'envergures. Au cours des travaux dirigées, plusieurs patterns de références seront mis en oeuvre en utilisant le langage JAVA. A l'issu de cet enseignement, l'étudiant devra être capable d'identifier clairement quel pattern doit être mis oeuvre en fonction de contraintes et d'objectifs précis. De plus, l'étudiant devra être capable de combiner plusieurs patterns ensembles pour concevoir des architectures logicielles extensibles, maintenables et évolutives.

Projet de fin d'étude

Niveau Master 2, support web

Les projets de fin d'études du M2 GL consistent à développer ou à remanier une application logicielle sous le processus de développement agile Scrum dans un environnemet développement proche de celui rencontré dans le milieu professionnel. Ils incluent :
* Cours-audits obligatoires toutes les semaines : retour d'expérience de chaque groupe sur la progression du projet et sur la mise en oeuvre de la méthode scrum. Cours magistral sur la méthode scrum. * Une soutenance de projet, * La rédaction d'un mémoire technique. * Utilisation de l'outil de gestion de projet scrum Jira et de l'outil de versioning GitLab.