Syllabus for Functional Programming I
Funktionell programmering I
A revised version of the syllabus is available.
Syllabus
- 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:
First cycle
- 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
Second cycle
- 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: The Faculty Board of Science and Technology
- Applies from: Autumn 2009
-
Entry requirements:
120 credits with a second course in computer programming. 15 credits in mathematics, including basic algebra.
- Responsible department: Department of Information Technology
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.
Syllabus Revisions
Reading list
Reading list
Applies from: Autumn 2009
Some titles may be available electronically through the University library.
-
Hansen, Michael R.;
Rischel, Hans
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