Study Programmes 2017-2018
Functional programming
Duration :
30h Th, 25h Pr, 15h Proj.
Number of credits :
Bachelor in engineering5
Bachelor in computer science5
Master in data science (120 ECTS)5
Master of science in computer science and engineering (120 ECTS)5
Master in data science and engineering (120 ECTS)5
Master in computer science (120 ECTS)5
Master in computer science (60 ECTS)6
Bachelor in mathematics6
Master in mathematics (120 ECTS)6
Master in mathematics (60 ECTS)8
Lecturer :
Pascal Gribomont
Language(s) of instruction :
French language
Organisation and examination :
Teaching in the second semester
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 interation. Procedural abstraction. First class object. Special techniques, continuation passing style. Programming exercises. 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.
Prerequisite knowledge and skills :
Basic knowledge in programming and mathematics.
Planned learning activities and teaching methods :
Weekly theoretical lectures and exercise sessions.
Mode of delivery (face-to-face ; distance-learning) :
2nd quadrimester, Thursday at 8:30 (B28, local R7).
Recommended or required readings :
P. Gribomont, Eléments de programmation en Scheme, Dunod, Paris, 2000.
Assessment methods and criteria :
Three written exams and a homework, oral examination in June. In September, oral examination only.
Work placement(s) :
Organizational remarks :
Contacts :
Pascal Gribomont <> Jean-Michel Begon <>