NFP101

Programmation fonctionnelle en Java


6 crédits Tristan CROLARD EPN05 - Informatique Unité d'enseignement de type cours

Publié Du 01-09-2019 au 31-08-2021

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 pédagogiques

L’objectif de ce cours est d’apprendre le paradigme de la programmation fonctionnelle et de comprendre les avantages liés à cette approche. Le langage de programmation utilisé principalement pour illustrer ces concepts sera Java, mais une comparaison détaillée avec des langages fonctionnels modernes comme Scala ou Kotlin permettra de compléter cette présentation.

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é.

Compétences

Maîtrise du paradigme fonctionnel/objet en Java. Compréhension du rôle et du fonctionnement du typage statique.

Contenu

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 et patron "visiteur"
  • Concurrence et calculs asynchrones
  • Flots et patron "map-reduce"

Modalités de validation

  • Examen final

Thésaurus du Cnam :

  • Sémantique des programmes
  • Méthode de programmation
  • Langage JAVA
  • Développement logiciel
  • Méthode objet
  • Programmation orientée objet

Thésaurus Formacode :

  • 31097 - programmation structurée

Secrétariat

Libellé
EPN05 - Informatique
Nom du contact
Safia Sider
Adresses email
safia.sider@lecnam.net
Numéros de téléphone
01 40 27 26 81
Adresse postale
2 rue Conté 33.1.13A
Paris 75003