2021-2022 / INFO0054-1

Functional programming

Duration

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

Number of credits

 Bachelor of Science (BSc) in Engineering5 crédits 
 Bachelor of Science (BSc) in Computer Science5 crédits 
 Bachelor in mathematics6 crédits 
 Master in mathematics (120 ECTS)6 crédits 
 Master in mathematics (60 ECTS)6 crédits 

Lecturer

Christophe Debruyne

Language(s) of instruction

French language

Organisation and examination

Teaching in the first semester, review in January

Schedule

Schedule online

Units courses prerequisite and corequisite

Prerequisite or corequisite units are presented within each program

Learning unit contents

General introduction to functions and procedures. Function definition techniques. Data structures. Recursive definitions, lambda-expression, lambda-calculus, and functional programming. Structural recursion. Program schemes. Functional programming vs imperative programming. Recursion vs iteration. Procedural abstraction. First-class object. Special topics such as, for example, continuations. Programming exercises: design and implementation of programs and the use of classical algorithms. The language Scheme is used.

Learning outcomes of the learning unit

Writing good functional programs, with adequate documentation.
Using the functional programming paradigm to solve various problems.
Determining when the functional approach is more convenient than the imperative, command-based approach.

This course contributes to the learning outcomes I.1, I.2, II.1, II.2, III.1, III.2, V.2, VI.2, VII.2 of the BSc in engineering.

Prerequisite knowledge and skills

Basic knowledge in programming and mathematics.

Planned learning activities and teaching methods

Weekly theoretical lectures and exercise sessions In groups of two, students will also realize a  programming project accompanied by a written report.

Mode of delivery (face to face, distance learning, hybrid learning)

Face-to-face course


Additional information:

First semester.

Recommended or required readings

This course is based on: 
P. Gribomont, Eléments de programmation en Scheme, Dunod, Paris, 2000. (available online)
The following book provides in-depth information and supplementary exercises: 
H. Abelson, and G. J. Sussman. Structure and interpretation of computer programs, 2nd ed. The MIT Press, 1996. (available online)

Assessment methods and criteria

Exam(s) in session

Any session

- In-person

written exam ( open-ended questions )

Written work / report

Out-of-session test(s)


Additional information:

Two tests, a project, and a written exam. A second-chance test in December, only those for students whose average on the two tests is less than 10/20.
Second session only: final examination. Students who did not obtain at least 10/20 for their project may resubmit a revised version of their project in August.


  • The results of the first test count towards 10% of the grade
  • The results of the second test count towards 10% of the grade
  • The results of the project count towards 20% of the grade
  • The results of the written exam count towards 60% of the grade
The project is a compulsory activity. A student who has not submitted a project will automatically obtain an absence grade (A) for the entire course.

Work placement(s)

Organizational remarks

All organizational aspects will be communicated through eCampus.

Contacts

  • Professor: Christophe Debruyne
  • Teaching assistant: François Rozet