Functional Programming I
Syllabus, Master's level, 1DL330
- Education cycle
- Second cycle
- Main field(s) of study and in-depth level
- Computer Science A1N
- Grading system
- Fail (U), Pass (3), Pass with credit (4), Pass with distinction (5)
- Finalised by
- The Faculty Board of Science and Technology, 12 March 2009
- Responsible department
- Department of Information Technology
120 credits with a second course in computer programming. 15 credits in mathematics, including basic algebra.
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.
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.
Laboratory work, if required complemented by lectures.
Assignments. Voluntary written exam for higher grades.