En | Ar

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
Planification
JourPeriodeSalle
Mer 01/09/202115:00 - 16:15
Jeu 02/09/202113:30 - 14:45
Lun 06/09/202116:30 - 17:45
Mer 08/09/202115:00 - 16:15
Mer 15/09/202115:00 - 16:15CST-FI-0-SCI03
Jeu 16/09/202113:30 - 14:45CST-FI-0-SCI01
Mer 22/09/202115:00 - 16:15CST-FI-0-SCI03
Ven 24/09/202108:00 - 09:15CST-FI-0-SCI01
Lun 27/09/202113:30 - 14:45CST-FI-0-SCI01
Mer 29/09/202115:00 - 16:15CST-FI-0-SCI02
Mer 06/10/202115:00 - 16:15
Mer 13/10/202115:00 - 16:15CST-FI-0-SCP01
Jeu 14/10/202113:30 - 14:45
Mer 20/10/202115:00 - 16:15
Jeu 21/10/202113:30 - 14:45
Ce cours est proposé dans les diplômes suivants
 Licence en informatique
Licence en informatique
Diplôme d'ingénieur - spécialité génie informatique et communications - option : réseaux de télécommunications
Diplôme d'ingénieur - spécialité génie informatique et communications - option : réseaux de télécommunications