Le langage Scala : introduction, programmation fonctionnelle, programmation parallèle

 

Dates : 21 mai, 4 juin, 11 juin  2013 de 18h15 à 20h

 

Enseignant : Jean-Luc Falcone, enseignant-chercheur au Centre universitaire d'informatique (Université de Genève) et au centre CADMOS (Center for advanced modeling science).

 

Site du cours : https://github.com/paradigmatic/cours_scala

 

Lieu : Université de Genève, UNI-MAIL, salle M R070 – Genève

Prix :  Le cours est gratuit pour les membres de la S-I, CHF 80 pour les non-membres.

Programme:

 

Séance 1. Introduction au langage Scala

Le langage Scala est un langage hybride faisant la synthèse entre la programmation orientée objet et la programmation fonctionnelle. Compilés en /bytecode/ java, les programmes sont exécutables sur la machine virtuelle JVM et compatibles avec les librairies Java existantes.

Bien que relativement récent, il est actuellement utilisé en production par plusieurs entreprises d'envergure tels que Twitter, Foursquare ou encore LinkedIn. En effet, sa syntaxe légère, l'inférence de types ainsi que l'approche fonctionnelle permettent un accroissement rapide de la productivité, notamment en réduisant le temps de débogage.

Ce cours s'adresse à un public familier avec les langages orientés objets tels que Java, C++ ou Python.  Il propose une introduction à Scala centrée sur la syntaxe de base et la programmation orientée objet. Les outils de développement majeurs seront brièvement présentés.

Séance 2. Programmation fonctionnelle en Scala

La programmation fonctionnelle rend le processus de développement plus sûr en s'affranchissant des effets de bord et en se concentrant sur les transformations de données. Longtemps relégué au monde académique, ce style de programmation a bénéficié ces dernières années d'un gain d'intérêt croissant de la part de l'industrie.

Ce cours introduit les concepts de bases de la programmation fonctionnelle au moyen du langage Scala. A travers des exemples concrets, nous examinerons des notions telles que les fonctions
anonymes, les collections standards de Scala, ainsi que les /typeclasses/.
Il est nécessaire de pouvoir lire la syntaxe de base de Scala pour profiter de ce cours.

Séance 3. Programmation parallèle en Scala

L'émergence des processeurs multi-coeurs permet de bénéficier des méthodes de la programmation parallèle pour accélérerl'exécution des programmes. Cependant, si les bénéfices en termes de performances sont intéressants, la programmation parallèle et concurrente pose de nombreux problèmes: /deadlocks/, conditions de course, contention, etc. De plus, les programmes parallèles sont souvent considérés comme difficile à appréhender (et donc à déboguer) par rapport aux programmes séquentiels.
Durant ce cours, nous verrons trois abstractions de haut niveau permettant de paralléliser efficacement du code Scala: les collection parallèles, les futures et les acteurs. Ces trois modèles permettent de profiter pleinement des processeurs d'une machine tout en conservant un style proche de la programmation séquentielle.
Il est nécessaire de pouvoir lire la syntaxe de base de Scala pour profiter de ce cours.

Inscription

L'inscription est obligatoire et se fait sur la page https://cms2.unige.ch/outils/limesurvey2/index.php/823418/lang-fr .

N.B. Les personnes qui ne sont pas membres de la S-I doivent en outre :

  • soit payer l'inscription en versant la somme de CHF 80 sur le compte de la SISR (section romande de la S-I)
    Banque  Cantonale de Genève, IBAN: CH86 0078 8000 H115 1512 9, clearing: 788
    adresse:SISR, case postale 31, 1283 La Plaine
    CCP de la Banque  12-1-2
    mentionner COURS SCALA et son nom dans la partie "motif versement" du formulaire de paiement