| A1 |
Montrer les différences entre la programmation fonctionnelle et d'autres paradigmes de programmation
|
Je peux décrire les propriétés des fonctions (par exemple une fonction pure) et expliquer la différence avec d'autres structures de programmation (par exemple une procédure) |
Je peux expliquer le concept de valeurs immuables et utiliser des exemples ainsi qu'expliquer ce concept de programmation fonctionnelle par rapport à d'autres langages de programmation (par exemple par rapport à des objets référencés) |
Je peux montrer comment les problèmes sont résolus dans les différents concepts (OO, procédural et fonctionnel) et les comparer entre eux |
323.1
|
| B1 |
Décrire les exigences et la conception de la programmation déclarative
|
Je peux expliquer la différence entre la programmation impérative et déclarative et nommer les éléments de conception fonctionnelle (par exemple les types de données immuables, les constructeurs, les opérateurs composables) |
Je peux formuler des exigences déclaratives et créer une conception fonctionnelle pour un problème |
Je peux transférer les exigences et la conception d'une solution impérative en une solution déclarative et évaluer les avantages et les inconvénients des deux approches. |
323.1
|
| C1 |
Implémenter la programmation fonctionnelle
|
Je peux expliquer un algorithme |
Je peux diviser les algorithmes en parties fonctionnelles |
Je peux implémenter des fonctions dans des algorithmes cohérents et analyser leur structure pour en vérifier l'exactitude et la lisibilité. |
323.2
|
| C2 |
Implémenter la programmation fonctionnelle
|
Je peux traiter les fonctions comme des objets (les stocker dans des variables, les transmettre) et appliquer les fonctions de base d'ordre supérieur (carter, filtrer, réduire) aux listes individuellement. |
Je peux utiliser des fonctions comme arguments, écrire des expressions lambda et utiliser Map, Filter et Reduction combinés pour effectuer des transformations de données plus complexes. |
Je peux utiliser des fonctions d'ordre supérieur, des expressions lambda et une composition de fonctions pour résoudre des tâches de traitement de données complexes et contrôler le flux du programme (par exemple, agrégation, tri selon des critères définis par l'utilisateur). |
323.2
|
| D1 |
Refactoriser et optimiser le code existant
|
Je peux lister les techniques de refactoring et les mesures d'amélioration des performances et expliquer leur objectif |
Je peux appliquer des techniques de refactoring pour rendre le code plus lisible et mettre en œuvre des mesures spécifiées pour améliorer les performances. |
Je peux évaluer l'impact du refactoring, éviter les effets secondaires indésirables et sélectionner des algorithmes ou des structures de données appropriés pour améliorer les performances. |
323.4
323.3
|