Objectifs du module
Résumé de section
-
Compétence
Effectuer une description déclarative et une implémentation fonctionnelle d’algorithmes et de parties d’applications.
Objectif 1
Analyser et décrire les exigences en vue de la réalisation d'une programmation fonctionnelle.[g4.1, g4.4]Connaissances requises
- Connaître la différence entre programmation impérative et programmation déclarative/fonctionnelle (paradigme de programmation déclarative).
- Connaître des méthodes de description déclarative de problèmes et d’états finaux.
- Connaître les avantages et les inconvénients de la programmation fonctionnelle.
- Connaître les termes de la programmation fonctionnelle (p. ex. fonction pure, donnée immuable, expression lambda, fonction, fermeture [closure], rappel [callback], foncteur), les comprendre et pouvoir les utiliser correctement.
- Connaître des possibilités pour élaborer un concept de réalisation adapté à la programmation fonctionnelle.
Objectif 2
Implémenter de manière efficiente des algorithmes et des problèmes d’applications selon le paradigme de programmation fonctionnelle et les exigences données. [g5.2, g5.5]Connaissances requises
- Pouvoir lire, comprendre, maintenir et étendre un code fonctionnel.
- Connaître des concepts de programmation fonctionnelle (p. ex. filter, map, reduce) et des patrons de conception adaptés (p. ex. builder pattern).
- Connaître des méthodes pour exécuter un code de manière distribuée, parallèle ou concurrente.
Objectif 3
Améliorer et optimiser le code impératif implémenté en utilisant la programmation fonctionnelle (refactorisation)Connaissances requises
- Connaître des moyens pour déterminer si des parties de programmes peuvent, après examen, être optimisées ou améliorées grâce à l’implémentation fonctionnelle.
- Connaître les éléments fonctionnels d’un langage de programmation et pouvoir ainsi développer des applications avec un paradigme de programmation impérative et déclarative.
Objectif 4
Vérifier l’exactitude et la qualité de l’implémentation.Connaissances requises
- Connaître des moyens de tester un code fonctionnel implémenté (p. ex. tests unitaires).
- Connaître des directives de code appropriées et les appliquer de manière systématique.
- Connaître les meilleures pratiques de la programmation fonctionnelle et pouvoir les appliquer.