2023-2024 / INFO0054-1

Programmation fonctionnelle

Durée

24h Th, 24h Pr, 20h Proj.

Nombre de crédits

 Bachelier en sciences de l'ingénieur, orientation ingénieur civil5 crédits 
 Bachelier en sciences informatiques5 crédits 
 Master en science des données, à finalité5 crédits 
 Master : ingénieur civil en science des données, à finalité5 crédits 
 Bachelier en sciences mathématiques6 crédits 
 Master en sciences mathématiques, à finalité6 crédits 

Enseignant

Christophe Debruyne

Langue(s) de l'unité d'enseignement

Langue française

Organisation et évaluation

Enseignement au premier quadrimestre, examen en janvier

Horaire

Horaire en ligne

Unités d'enseignement prérequises et corequises

Les unités prérequises ou corequises sont présentées au sein de chaque programme

Contenus de l'unité d'enseignement

Introduction générale à la programmation fonctionnelle. Les sujets incluent (par ordre alphabétique):

  • Approches fonctionnelles des états, gestion des erreurs, ...
  • Classes de types
  • Foncteurs
  • Fonctions d'ordre supérieur
  • Monades
  • Monoïdes
  • Récursion vs itération
  • Récursion structurelle
  • Raisonnement équationnel
  • Types de données algébriques : nombres, tuples, listes, ...
Exercices de programmation : conception et implémentation de programmes et utilisation de problèmes et d'algorithmes classiques.

Le langage Scala est utilisé.

Acquis d'apprentissage (objectifs d'apprentissage) de l'unité d'enseignement

  • Ecrire des programmes fonctionnels de bonne qualité et bien documentés.
  • Utiliser le paradigme fonctionnel pour résoudre des problèmes variés.
  • Reconnaître les situations dans lesquelles l'approche fonctionnelle est plus avantageuse que l'approche impérative.
Ce cours contribue aux acquis d'apprentissage I.1, I.2, II.1, II.2, III.1, III.2, V.2, VI.2, VII.2 du programme de bachelier ingénieur civil.

Savoirs et compétences prérequis

Cours MATH et INFO du bloc 1. Programmation orientée objet du bloc 2.

Activités d'apprentissage prévues et méthodes d'enseignement

Exposés théoriques et séances d'exercices hebdomadaires. En groupe de trois personnes, les étudiants réaliseront également un projet de programmation accompagné d'un rapport écrit.

Mode d'enseignement (présentiel, à distance, hybride)

Cours donné exclusivement en présentiel


Explications complémentaires:

Cours donné exclusivement en présentiel


Explications complémentaires:

Le cours est enseigné en français. Le livre et le matériel (y compris les diapositives) sont en anglais. Les tests et examens seront également disponibles en français. Les diapositives du cours contiendront des listes de traductions des concepts les plus importants.

Le matériel en anglais facilitera les étudiants internationaux d'étudier la matière de manière indépendante. Ces étudiants recevront également des tests et des examens en anglais.

Lectures recommandées ou obligatoires et notes de cours

Le cours est basé sur : Michael Pilquist, Rúnar Bjarnason, and Paul Chiusano, Functional Programming in Scala, 2nd Edition, Manning Publications. 

Divers articles (Web) sont par ailleurs mis à disposition sur eCampus.

Modalités d'évaluation et critères

Examen(s) en session

Toutes sessions confondues

- En présentiel

évaluation écrite ( questions ouvertes )

Interrogation(s) hors session


Explications complémentaires:

Examen(s) en session

Toutes sessions confondues

- En présentiel

évaluation écrite ( questions ouvertes )

Travail à rendre - rapport

Interrogation(s) hors session


Explications complémentaires:

Deux interrogations, un projet, et un examen.

  • Évaluation de la première interrogation (10%)
  • Évaluation de la deuxième interrogation (10%) 
  • Évaluation du projet (30%)
  • Examen écrit (50%)
Seconde session :

  • Les interrogations et l'examen écrit sont remplacé par un examen écrit comptant pour 70% de la note totale. Les étudiants dont la moyenne pondérée des interrogations et de l'examen est inférieure à 10/20 doivent repasser l'examen.
  • Les étudiants qui n'ont pas obtenu au moins 10/20 pour leur projet peuvent soumettre à nouveau une version révisée de leur projet en août.
Le projet est une activité obligatoire. Un étudiant qui n'aurait pas soumis un projet obtiendra automatiquement une note d'absence (A) pour l'ensemble du cours.

Stage(s)

Remarques organisationnelles et modifications principales apportées au cours

Tous les aspects organisationnels seront communiqués via eCampus.

Contacts

  • Professeur: Christophe Debruyne

Association d'un ou plusieurs MOOCs