NFP119

Programmation Fonctionnelle : des concepts aux applications web


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

Publié Du 01-09-2016 au 31-08-9999

Prérequis

Pré-requis: Pratique de la programmation, par exemple, avoir le niveau des UES NFA031 et NFA032, ou équivalents pour d'autres langages de programmation. Il n'est pas nécessaire de connaître JavaScript pour suivre cette UE, mais pour approfondir les aspects liés au développement d'applications web, il est souhaitable de suivre en complément l'UE NFA040 "Architecture et langages Web" et l'UE NFA041 "Programmation JavaScript".

Public concerné : Toute personne soucieuse d'élargir son champ de compétence en programmation par l'apprentissage du paradigme fonctionnel et de son application à la programmation pour le web.

Objectifs pédagogiques

Le paradigme fonctionnel est aujourd'hui présent dans de nombreux langages modernes dits multi-paradigmes, tels que Python, Java, C#/F#, C++, Scala, et Swift. En particulier, la programmation fonctionnelle est devenue incontournable dans le domaine des applications web développées en Javascript.
 
Ce cours a pour objectif d'étudier le paradigme fonctionnel de la programmation par le biais d'un langage généraliste permettant de programmer dans le style fonctionnel (par exemple Python). Cette étude sera ensuite élargie au contexte de la programmation web (par exemple le développement d'application React.js), et illustrée par un autre langage dans ce domaine (par exemple Typescript/JavaScript).

Compétences

Connaissance et pratique d'un langage fonctionnel. Mise en oeuvre du paradigme fonctionnel dans le cadre de la programmation web.
 

L'unité NFP119 apparaît dans 12 cursus.

CYC9101A

Diplôme d'ingénieur Spécialité informatique parcours Architecture et ingénierie des systèmes et des logiciels (AISL)

CYC9102A

Diplôme d'ingénieur Spécialité informatique parcours Intelligence Artificielle et Optimisation

CYC9104A

Diplôme d'ingénieur Spécialité informatique parcours Informatique, réseaux, systèmes et multimédia

CYC9105A

Diplôme d'ingénieur Spécialité informatique parcours Informatique systèmes d'information

CYC9106A

Diplôme d'ingénieur Spécialité informatique parcours Cybersécurité

CRN0801A

Titre RNCP Niveau 6 Concepteur intégrateur d'infrastructures informatiques (systèmes et réseaux, applicatives, ou de sécurité) parcours Systèmes et réseaux

CRN0802A

Titre RNCP Niveau 6 Concepteur intégrateur d'infrastructures informatiques (systèmes et réseaux, applicatives, ou de sécurité) parcours Systèmes d'information

CRN0803A

Titre RNCP Niveau 6 Concepteur intégrateur d'infrastructures informatiques (systèmes et réseaux, applicatives, ou de sécurité) parcours Cybersécurité

LG02501A

Licence Sciences technologies santé mention informatique parcours Informatique générale

CRN0801A

Titre RNCP Niveau 6 Concepteur intégrateur d'infrastructures informatiques (systèmes et réseaux, applicatives, ou de sécurité) parcours Systèmes et réseaux

CRN0802A

Titre RNCP Niveau 6 Concepteur intégrateur d'infrastructures informatiques (systèmes et réseaux, applicatives, ou de sécurité) parcours Systèmes d'information

CRN0803A

Titre RNCP Niveau 6 Concepteur intégrateur d'infrastructures informatiques (systèmes et réseaux, applicatives, ou de sécurité) parcours Cybersécurité

Contenu

  • Les bases de la programmation fonctionnelle.
  • Les fonctions, citoyennes de première classe : les fonctions en paramètre (callbacks), la généricité.
  • Les types de données immutables et les fonctions qui les exploitent.
  • Le paradigme fonctionnel dans les applications web.

Le cours s'organisera autour de cours, d'ED sur machine et de la réalisation d'un projet dans un des langages fonctionnels enseignés.

Modalités de validation

  • Contrôle continu

Description des modalités de validation

Un projet de programmation (dans l'un des langages enseignés).

Bibliographie

TitreAuteur(s)
Developpement d'applications avec Objective CamlB. Pagano, P. Manoury, E.Chailloux
Ocaml for the very beginningJohn Whitington
Programmation fonctionnelle, générique et objet: une introduction avec le langage OCamlPhilippe Narbel
Effective JavaScript, Addison-Wesley Professional; 1 edition (2012)David Herman

Thésaurus du Cnam :

  • Python
  • Méthode de programmation
  • Langage javascript
  • Qualité du logiciel
  • Logiciel sur

Thésaurus Formacode :

  • 31088 - programmation
  • 30867 - langage javascript
  • 31049 - qualité informatique
  • 31057 - génie logiciel
  • 30812 - langage Python

Secrétariat

Libellé
EPN05 - Informatique
Nom du contact
Jean-mathieu Codassé
Numéros de téléphone
01 40 27 87 99
Adresse postale
2 rue Conté 33.1.9A
Paris 75003