Nombre de crédits
6 ECTS
Durée de la formation
50 heures
Modalité
-
L’objectif de ce cours est d’apprendre le paradigme de la programmation fonctionnelle et objet et de comprendre les avantages liés à cette approche.
Les mécanismes usuels des langages orientés objet (encapsulation, héritage, redéfinition, liaison tardive, ...) seront aussi revisités dans le cadre particulier de la programmation fonctionnelle. L'accent sera mis en particulier sur les avantages du typage statique et de la combinaison des styles de programmation objet et fonctionnel pour garantir des propriétés essentielles de sûreté.
Le langage utilisé pour illustrer ces concepts sera Java (ou un langage moderne équivalent comme Scala ou Kotlin). Une application majeure des techniques étudiées sera l'implantation d'algorithmes massivement parallèles dans le style classique Map-Reduce.
Maîtrise du paradigme fonctionnel/objet en Java. Compréhension du rôle et du fonctionnement du typage statique.
Avoir une expérience pratique de la programmation en Java ou en Python.
Les séances prendront la forme de "leçons" : les concepts seront présentés en cours puis illustrés directement à travers des exemples et des exercices de programmation.
• Valeurs et Objets
• Egalité et fonction de hachage
• Collections immutables
• Valeurs optionnelles
• Interfaces fonctionnelles
• Expressions lambda
• Types algébriques
• Filtrage (pattern matching) et patron "visiteur"
• Concurrence et calculs asynchrones
• Flots (streams) et patron "map-reduce"
Les cours en présentiel : ils ont lieu en présence des élèves et de l’enseignant dans un centre Cnam :
Aucun cours n’est enregistré ni diffusé via Internet. La présence physique des élèves est nécessaire.
Les examens se déroulent exclusivement dans le centre Cnam où se déroulent les cours.
La modalité hybride est une combinaison entre :
La modalité Foad est parfaitement adaptée à votre disponibilité :
Information non disponible, pour plus d'information veuillez contacter le cnam