Duration
24h Th, 24h Pr, 20h Proj.
Number of credits
Lecturer
Language(s) of instruction
French language
Organisation and examination
Teaching in the first semester, review in January
Schedule
Units courses prerequisite and corequisite
Prerequisite or corequisite units are presented within each program
Learning unit contents
General introduction to functional programming. Topics include (in alphabetical order):
- Algebraic Data Types: Numbers, Tuples, Lists, ...
- Equational Reasoning
- Functional approaches to state, error handling, ...
- Functors
- Higher-order functions
- Higher-order programming
- Monads
- Monoids
- Recursion vs. iteration
- Structural recursion
- Type classes
The language Scala 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 imperatives.
Prerequisite knowledge and skills
Basic knowledge in programming and mathematics. Object-oriented programming.
Planned learning activities and teaching methods
Weekly theoretical lectures and exercise sessions. In groups of three, 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:
Face-to-face course
Additional information:
The course is taught in French. The book and course material (including slides) are in English. The tests and exams will be made available in French as well. The course slides will contain a list of translations of the most important concepts.
The English material will facilitate international MSc students in their independent study. These students will also be provided with English versions of tests and exams.
Recommended or required readings
This course is based on: Michael Pilquist, Rúnar Bjarnason, and Paul Chiusano, Functional Programming in Scala, 2nd Edition, Manning Publications.
Various (Web) articles are furthermore made available on eCampus.
Exam(s) in session
Any session
- In-person
written exam ( open-ended questions )
Out-of-session test(s)
Additional information:
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.
- The first test counts toward 10% of the grade
- The second test counts toward 10% of the grade
- The project counts toward 30% of the grade
- The written exam counts toward 50% of the grade
- The tests and the written exam are replaced by one written exam counting toward 70% of the total. Students whose weighted average for the tests and the exam is less than 10/20 must retake the exam.
- Students who did not obtain at least 10/20 for their project may resubmit a revised version in August.
Work placement(s)
Organisational remarks and main changes to the course
All organizational aspects will be communicated through eCampus.
Contacts
- Professor: Christophe Debruyne