Programmation Fonctionnelle : des concepts aux applications web
Description
- 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.
Finalité
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 visées
- Concevoir et développer de programmes dans le style fonctionnel.
- Mettre en oeuvre le paradigme fonctionnel dans le cadre de la programmation web.
Description des modalités d'évaluation
Un projet de programmation (dans l'un des langages enseignés).
Public
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.
- Nombre d’ECTS
- 6
- Durée en nombre d'heures
- 60.00
- Type de notation
- Notation chiffrée (sur 20)
- Moyenne pour valider l'UE
- 10.00
- Modalité(s) d'évaluation
- Contrôle continu
- Projet(s)
- Année de création
- 2017
- Date de début de validité
- Date de fin de validité
- Déployabilité
- Offre déployable dans le réseau en cas d'agrément
- Examen national
- Oui
- Diplôme d'ingénieur Spécialité informatique parcours Architecture et ingénierie des systèmes et des logiciels (AISL)
- Diplôme d'ingénieur Spécialité informatique parcours Cybersécurité
- Diplôme d'ingénieur Spécialité informatique parcours Informatique systèmes d'information
- Diplôme d'ingénieur Spécialité informatique parcours Informatique, réseaux, systèmes et multimédia
- Diplôme d'ingénieur Spécialité informatique parcours Intelligence Artificielle et Optimisation
- Licence Sciences technologies santé mention informatique parcours Informatique générale
- Titre RNCP Niveau 6 Concepteur intégrateur d'infrastructures informatiques (systèmes et réseaux, applicatives, ou de sécurité) parcours Cybersécurité
- 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
- 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
Cette unité fait partie du/des bloc(s) de compétences suivant(s).