2017-2018 / INFO0054-1

Functional programming

Duration

30h Th, 25h Pr, 15h Proj.

Number of credits

 Bachelor in engineering5 crédits 
 Bachelor in computer science5 crédits 
 Master in data science (120 ECTS)5 crédits 
 Master of science in computer science and engineering (120 ECTS)5 crédits 
 Master in data science and engineering (120 ECTS)5 crédits 
 Master in computer science (120 ECTS)5 crédits 
 Master in computer science (60 ECTS)6 crédits 
 Bachelor in mathematics6 crédits 
 Master in mathematics (120 ECTS)6 crédits 
 Master in mathematics (60 ECTS)8 crédits 

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

http://www.montefiore.ulg.ac.be/~gribomon/cours/cours.html

Contacts

Pascal Gribomont <gribomont@montefiore.ulg.ac.be> Jean-Michel Begon <jm.begon@ulg.ac.be>