Syllabus for Functional Programming I
Funktionell programmering I
A revised version of the syllabus is available.
- 5 credits
- Course code: 1DL330
- Education cycle: Second cycle
Main field(s) of study and in-depth level:
Computer Science A1N
Explanation of codes
The code indicates the education cycle and in-depth level of the course in relation to other courses within the same main field of study according to the requirements for general degrees:
- G1N: has only upper-secondary level entry requirements
- G1F: has less than 60 credits in first-cycle course/s as entry requirements
- G1E: contains specially designed degree project for Higher Education Diploma
- G2F: has at least 60 credits in first-cycle course/s as entry requirements
- G2E: has at least 60 credits in first-cycle course/s as entry requirements, contains degree project for Bachelor of Arts/Bachelor of Science
- GXX: in-depth level of the course cannot be classified
- A1N: has only first-cycle course/s as entry requirements
- A1F: has second-cycle course/s as entry requirements
- A1E: contains degree project for Master of Arts/Master of Science (60 credits)
- A2E: contains degree project for Master of Arts/Master of Science (120 credits)
- AXX: in-depth level of the course cannot be classified
- Grading system: Fail (U), Pass (3), Pass with credit (4), Pass with distinction (5)
- Established: 2009-03-12
- Established by:
- Revised: 2018-08-30
- Revised by: The Faculty Board of Science and Technology
- Applies from: Spring 2019
120 credits with a second course in computer programming. 15 credits in mathematics, including basic algebra. Proficiency in English equivalent to the Swedish upper secondary course English 6.
- Responsible department: Department of Information Technology
On completion of the course, the student should 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.
- Latest syllabus (applies from Autumn 2022)
- Previous syllabus (applies from Autumn 2021)
- Previous syllabus (applies from Spring 2019, version 2)
- Previous syllabus (applies from Spring 2019, version 1)
- Previous syllabus (applies from Autumn 2009)
Applies from: Spring 2019
Some titles may be available electronically through the University library.
Hansen, Michael R.;
Introduction to programming using SML
Harlow: Addison-Wesley, 1999
Paulson, Lawrence C.
ML for the working programmer
2. ed.: Cambridge: Cambridge Univ. Press, 1996
Ullman, Jeffrey D
Elements of ML programming
ML97 ed.: Upper Saddle River, NJ: Prentice Hall, 1998