2021-2022 / INFO0054-1

Programmation fonctionnelle

Durée

28h Th, 24h Pr, 15h Proj.

Nombre de crédits

 Bachelier en sciences de l'ingénieur, orientation ingénieur civil5 crédits 
 Bachelier en sciences informatiques5 crédits 
 Bachelier en sciences mathématiques6 crédits 
 Master en sciences mathématiques, à finalité6 crédits 
 Master en sciences mathématiques6 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 aux notions de fonction et de procédure. Techniques de définition de fonction. Structures de données. Définition récursive de fonction, lambda-expression, lambda-calcul et programmation fonctionnelle. Récursion structurelle. Principes généraux d'induction et techniques de raisonnement associées. Comparaison : style fonctionnel et style impératif; récursion et itération. Abstraction procédurale. Objets de "première classe". Quelques techniques spéciales comme, par exemple, les continuations. Exercices: conception et réalisation de programmes, utilisation d'algorithmes classiques. On utilise le langage Scheme.

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.
L'admissibilité des étudiants du bachelier en sciences informatiques n'ayant pas validé tous les crédits MATH du bloc 1 est déterminée individuellement.

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

Exposés théoriques et séances d'exercices hebdomadaires. En groupe de deux 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:

Premier quadrimestre.

Lectures recommandées ou obligatoires et notes de cours

Le cours est basé sur :
P. Gribomont, Eléments de programmation en Scheme, Dunod, Paris, 2000. (disponible en ligne)
Le livre suivant fournit des informations détaillées et des exercices supplémentaires : 
H. Abelson, and G. J. Sussman. Structure and interpretation of computer programs, 2nd ed. The MIT Press, 1996. (disponible en ligne)

Modalités d'évaluation et critères

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. Une interrogation de rattrapage en décembre, seulement pour les étudiants dont la moyenne aux deux premières interrogations est moindre que 10/20.
En seconde session seulement, examen écrit. 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.


  • Évaluation de la première interrogation (10%)
  • Évaluation de la deuxième interrogation (10%) 
  • Évaluation du projet (20%)
  • Examen écrit (60%)
Le projet est une activité obligatoire. Un étudiant qui n'aurait pas soumi un projet obtiendra automatiquement une note d'absence (A) pour l'ensemble du cours.

Stage(s)

Remarques organisationnelles

Tous les aspects organisationnels seront communiqués via eCampus.

Contacts

  • Professeur: Christophe Debruyne
  • Assistant: François Rozet