• Votre sélection est vide.

    Enregistrez les diplômes, parcours ou enseignements de votre choix.

Programmation fonctionnelle

  • Composante

    ENSEIRB-MATMECA

Code interne

EI6PG104

Description

Ce cours présente la programmation sous un aspect différent des cours du S5. Le style de programmation présenté au premier semestre est 'impératif', ce cours présente le style de programmation 'fonctionnel'. L'étude de ce style permet d'explorer une nouvelle famille de techniques de programmation, ainsi que de se poser la question de qualités logicielles permettant de distinguer ces différents styles. L'utilisation du langage de programmation Javascript permet de souligner ces différents contrastes.Plan du cours :

Présentation des styles de programmation / paradigmes. Comparaison du style impératif et du style fonctionnel. Introduction à la pureté, la modularité, et la 1ère classe. Petit historique des langages de programmation.
Présentation du langage Ecmascript (syntaxe, environnement node)Notion de portée et de fermeture.
Pureté et Modularité. Notion d'effet de bord, pureté, transparence référentielle. Programmation sans effets de bords. Utilisation de la récursivité et de la récursivité terminale.
Structures de données fonctionnelles.Listes chaînées, arbres. Notion de persistance. Opérateurs d'ordre supérieur sur ces structures de données.
Citoyenneté de 1ère classe. Fonctions d'ordre supérieur. Techniques : généralisation, spécialisation. Notions de généricité, curryfication.Exemples d'utilisation de fonctions dans les structures de données. Exemples d'interface de programmation fonctionnelle (pipeline, map-reduce, fluent interfaces)
Techniques de programmationProgrammation typée (polymorphisme), programmation "dirigée par les fonctions", contrôle de l'évaluationStratégies d'évaluation.
Modularité. Retour sur les notions : abstraction, encapsulation, interface, spécification, dépendance

Lire plus

Syllabus



Présentation des styles de programmation / paradigmes. Comparaison du style impératif et du style fonctionnel. Introduction à la pureté, la modularité, et la 1ère classe. Petit historique des langages de programmation.
Présentation du langage Ecmascript (syntaxe, environnement node)Notion de portée et de fermeture.
Pureté et Modularité. Notion d'effet de bord, pureté, transparence référentielle. Programmation sans effets de bords. Utilisation de la récursivité et de la récursivité terminale.
Structures de données fonctionnelles.Listes chaînées, arbres. Notion de persistance. Opérateurs d'ordre supérieur sur ces structures de données.
Citoyenneté de 1ère classe. Fonctions d'ordre supérieur. Techniques : généralisation, spécialisation. Notions de généricité, curryfication.Exemples d'utilisation de fonctions dans les structures de données. Exemples d'interface de programmation fonctionnelle (pipeline, map-reduce, fluent interfaces)
Techniques de programmationProgrammation typée (polymorphisme), programmation "dirigée par les fonctions", contrôle de l'évaluationStratégies d'évaluation.
Modularité. Retour sur les notions : abstraction, encapsulation, interface, spécification, dépendance

Lire plus

Informations complémentaires

Ce cours présente la programmation sous un aspect différent des cours du S5. Le style de programmation présenté au premier semestre est 'impératif', ce cours présente le style de programmation 'fonctionnel'. L'étude de ce style permet d'explorer une nouvelle famille de techniques de programmation, ainsi que de se poser la question de qualités logicielles permettant de distinguer ces différents styles. L'utilisation du langage de programmation Javascript permet de souligner ces différents contrastes.

Lire plus

Modalités de contrôle des connaissances

Évaluation initiale / Session principale - Épreuves

Type d'évaluationNature de l'épreuveDurée (en minutes)Nombre d'épreuvesCoefficient de l'épreuveNote éliminatoire de l'épreuveRemarques
Epreuve TerminaleTravail sur machine1201sans document sans calculatrice

Seconde chance / Session de rattrapage - Épreuves

Type d'évaluationNature de l'épreuveDurée (en minutes)Nombre d'épreuvesCoefficient de l'épreuveNote éliminatoire de l'épreuveRemarques
Epreuve terminaleTravail sur machine1201sans document sans calculatrice