Session Bigdata

B1 - erlang/elixir

Dirigé par Antoine Reyt

La programmation fonctionnelle offre de très nombreux avantage dans le développement de systèmes complexes: l'absence d'effet de bord permet d'envisager facilement des applications largement scalables, stables et surtout faciles à maintenir. C'est ainsi que tout ou partie des concepts de la programmation fonctionnelle sont aujourd'hui présents dans de nombreux langages aux communautés extrêmement dynamiques: Haskell, Scala, Javascript, OCaml, Go, erlang ou elixir. Encore faut-il que l'environnement de développement soit complet, stable et performant pour envisager l'utiliser dans des développements visant la production.

Elixir, basé sur le même runtime que erlang, en est très probablement le plus abouti et le plus mature aujourd'hui pour des applications en production C'est ainsi que les plus grandes plate-formes web l'utilisent pour leur infrastructure:What's App, Heroku, Rakuten (PriceMinister), Github, etc. Ce tutoriel vise à comprendre et maîtriser les principes de base du langage elixir, de la plate-forme de développement OTP et des outils associés (debogage, édition, etc). Pré-requis: bases de programmation, make

B2 - REST backend

Dirigé par Antoine Reyt

Originellement destiné à donner accès à des documents de manière portable et efficace par internet, le web est aujourd'hui utilisé massivement pour construire les plupart des applications que nous utilisons au quotidien: réseaux sociaux, stockage en ligne, données ouvertes ("open data"), "apps" et même internet des objets. Le web étant à la base une architecture client-serveur, nous vous proposons, dans ce tutoriel, de développer la partie serveur, qui prend la forme de ce qu'on appelle une "API REST".

Pour cela, nous poserons les bases de ce type d'API et mettrons à profit la plate-forme elixir pour la mettre en oeuvre.

Pré-requis: bases erlang/elixir (cf T1), architecture client-serveur

B3 - Base de données NoSQL et Map/Reduce

Dirigé par  Arnaud Wetzel

Les bases de données NoSQL ont remplacé depuis quelques années les bases de données classiques (SQL) pour de nombreuses applications. Ce nouveau paradigme regroupe en fait plusieurs familles de base de données : orienté ligne, orienté document, etc.

Chacune de ces familles répond de manière plus efficace à des problématique spécifiques de résilience, performance en écriture, performance en lecture, scalabilité, etc.

Après avoir présenté ces différentes familles de bases de données, nous illustrerons ce paradigme à travers l'utilisation d'une base de données assez polyvalente, Riak, et son interrogation avec des algorithmes de type Map/Reduce.
Pré-requis: interrogation d'API REST, notions de bases de données.

B4 - Initiation pratique au Machine learning

L'intelligence artificielle, le big data, le machine learning, ne sont pas de simples buzzwords. Ils représentent une évolution dans la conception de solutions. Après l'ère de l'algorithme : "le concepteur automatise un traitement en formalisant le mécanisme de résolution du problème pour un acteur exécutant", vient l'ère de l'adaptation au réel : "le concepteur formalise le mécanisme qui associe l'observation de faits, de données, à la résolution d'un problème".Nous présenterons ici cette évolution par une courte partie théorique, présentant l'état de l'art dans ce domaine, et ensuite l'illustrerons de cas réels de résolution de problème dans le domaine du commerce, de la logistique,
et des organisations.

Pré-requis: notions de statistique, Python débutant