Number of hours
- Lectures 9.0
- Projects -
- Tutorials 9.0
- Internship -
- Laboratory works 9.0
- Written tests -
ECTS
ECTS 2.0
Goal(s)
At the end of the course, the student should be able to:
- handle elaborate data structures (linked lists, trees);
- design a recursive routine working on an elaborate data structure;
- program with a statically-typed functional language (like Haskell or CaML), sticking to a pure subset of the language (inducing few or no side-effects).
Responsible(s)
Yann KIEFFER
Content(s)
- Expressions; use of toplevel evalulation loop;
- Basic types; type constructors (lists, ...);
- Defining recursive functions;
- Type definitions: enumerated types, product types, sum types.
- Type classes;
- Applications to the design of more complex data structures;
- Side effects: the case of input/output.
- The mathematical notion of function
- Basics on algorithmics and data structures
Test
E: exam
TP: lab sessions evaluation
Calendar
The course exists in the following branches:
- Curriculum - First cycle - Semester 4
Additional Information
Course ID : 2AMCS212
Course language(s):
The course is attached to the following structures:
- Team Computer Science
You can find this course among all other courses.
Bibliography
Real World Haskell, Bryan O'Sullivan, John Goerzen & Don Stewart, O'Reilly (Ed).
Purely Functional Data Structures, Chris Okasaki, Cambridge University Press.