NFP101
Titre Officiel Cnam : Programmation fonctionnelle en Java
-
Nombre d’heures
51
-
Crédits ects
6
Prérequis :
Avoir une expérience de la programmation orientée objets ou avoir le niveau des unités d'enseignement VARI (NFP135 et NFP136).
Objectifs :
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.
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.
Délais d'accès :
Inscription 1er semestre et annuel :
- Modalité présentiel/hybride : de juillet à mi-octobre
- Modalité FOAD (100% à distance) : de juillet à mi-novembre
Inscription 2ème semestre :
- Modalité présentiel/hybride : de juillet à mi-février
- Modalité FOAD (100% à distance) : de juillet à mi-mars
Compétences visées :
Maîtrise du paradigme fonctionnel/objet en Java. Compréhension du rôle et du fonctionnement du typage statique.
L'avis des auditeurs :
Les dernières réponses à l'enquête d'appréciation pour cet enseignement :
Fiche synthétique au format PDF
Nous contacter
Fiche synthétique au format PDF
Modalités d’enseignement :100% à distanceMixte : à distance + cours en sallePrésentiel
Méthodes et modalités pédagogiques
Pédagogie qui combine apports académiques, études de cas basées sur des pratiques professionnelles et expérience des élèves.
Équipe pédagogique constituée pour partie de professionnels. Un espace numérique de formation (ENF) est utilisé tout au long du cursus.
Programme :
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"
- 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"
Modalités de validation :
Examen écrit.
Cette unité d'enseignement est valorisable dans les certifications suivantes :