INF2810 – Functional Programming
Course description
Schedule, syllabus and examination date
Course content
Programming in a functional language. Recursion. Abstract data types. Data directed programming, memoization, object oriented programming, lists and streams. The strengths and weaknesses of functional programming compared to imperativ programming. Semantics for evaluating function calls and interpreting functional programs.
Learning outcome
- master foundational techniques from the paradigm of functional programming.
- be trained in using abstraction to structure programs.
- be able to explain and use recursion in general, as well as know how to distinguish between recursive and iterative processes.
- be able to write and use higher-order functions.
- master techniques for delayed evaluation for working with infinite data structures such as streams.
- have insight in different models for understanding how code is evaluated.
Admission
Students who are admitted to study programmes at UiO must each semester register which courses and exams they wish to sign up for in Studentweb.
If you are not already enrolled as a student at UiO, please see our information about admission requirements and procedures.
Prerequisites
Formal prerequisite knowledge
In addition to fulfilling the Higher Education Entrance Qualification, applicants have to meet the following special admission requirements:
- Mathematics R1 or Mathematics (S1+S2)
The special admission requirements may also be covered by equivalent studies from Norwegian upper secondary school or by other equivalent studies. Read more about special admission requirements (in Norwegian).
HUMIT1700 – Grunnkurs i programmering for humanister (discontinued)/INF1000 – Introduction to object-oriented programming (continued)/INF1100 – Introduction to programming with scientific applications (continued)
Overlapping courses
- 10 credits to HUMIT2710 – Funksjonell programmering (discontinued)
- 10 credits to HUMIT2710MN – Funksjonell programmering (discontinued)
- The content is covered by the earlier course SLI230
- 2 credits to IN211
Teaching
2 hours of lectures and two hours of group work per week. In addition there will be guidance for students at their computers. Mandatory assignements must be completed during the course. The firts assignment will be handled individually. The three next will be solved in groups (2-3 students). Rules for mandatory assigments.
Examination
4 hour written digital exam. The mandatory assignments must be approved prior to the exam.
Examination support material
No examination support material is allowed.
Grading scale
Grades are awarded on a scale from A to F, where A is the best grade and F is a fail. Read more about the grading system.
Explanations and appeals
Resit an examination
Students who can document a valid reason for absence from the regular examination are offered a postponed examination at the beginning of the next semester.
Re-scheduled examinations are not offered to students who withdraw during, or did not pass the original examination.
Withdrawal from an examination
It is possible to take the exam up to 3 times. If you withdraw from the exam after the deadline or during the exam, this will be counted as an examination attempt.
It will also be counted as one of your three attempts to sit the exam for this course, if you sit the exam for one of the following courses: HUMIT2710 - Funksjonell programmering/HUMIT2710MN - Funksjonell programmering/SLI230.
Other
It is strongly recommended to attend the f?rst lecture since it will be given important information.