020PFSES3 | Programmation fonctionnelle |
---|---|
Le but de ce cours est d’introduire le paradigme de programmation fonctionnelle en utilisant, essentiellement, Scala comme langage de programmation. Le cours commence par un aperçu de la programmation fonctionnelle tout en expliquant comment des langages traditionnellement impératifs (tels que C++ et Java) ont récemment incorporé quelques éléments de ce paradigme. Suite à cela, le modèle d’évaluation permettant de raisonner sur des programmes fonctionnels sera progressivement exposé en parallèle avec l’explication des concepts suivants : la récursivité et l’optimisation des fonctions récursives, l’utilisation des fonctions en tant que valeurs, l’application partielle des fonctions, les objets immutables et leurs avantages, les types et le « pattern matching », les paires et les tuples, les listes et les collections fonctionnelles, la résolution de problèmes combinatoires en utilisant les « for-expressions », l’évaluation paresseuse, les « streams » fonctionnelles et les séquences infinies. Evidemment, ces concepts seront illustrés par des exemples et des exercices implémentés en Scala. Ensuite, la syntaxe Java 8 d’un sous-ensemble de ces concepts sera exposée. Finalement, le cours se terminera par une introduction à la preuve de programmes en utilisant l’induction structurelle. Temps présentiel : 35 heures Charge de travail étudiant : 65 heures Méthode(s) d'évaluation : Examen écrit |
Les prérequis de ce cours sont les suivants | |
---|---|
Programmation Orientée Objets |