Functional Programming I
5 credits
Syllabus, Master's level, 1DL330
A revised version of the syllabus is available.
- Code
- 1DL330
- Education cycle
- Second cycle
- Main field(s) of study and in-depth level
- Computer Science A1N
- Grading system
- Pass with distinction (5), Pass with credit (4), Pass (3), Fail (U)
- Finalised by
- The Faculty Board of Science and Technology, 12 March 2009
- Responsible department
- Department of Information Technology
Entry requirements
120 credits with a second course in computer programming. 15 credits in mathematics, including basic algebra.
Learning outcomes
In order to pass, the student must be able to
- list and define the fundamental concepts of functional programming.
- manually execute a given (simple) functional program.
- manually infer the type of a given (simple) functional program.
- implement (simple) algorithms and data structures as functional programs.
- design (large) functional programs that are modular and have reusable components.
- explain on a simple problem how functional programming differs from imperative and object-oriented programming.
Content
Fundamental concepts: functions, relations, recursion, tail-recursion, type systems, polymorphism, datatypes, recursive datatypes, introduction to higher-order functions, data abstraction.
Programming in a functional programming language, such as SML.
Similarities and differences with imperative and object-oriented programming.
Instruction
Laboratory work, if required complemented by lectures.
Assessment
Assignments. Voluntary written exam for higher grades.