The subject of the course is functional, declarative programming in general and F# in particular.
DescriptionThe subject of the course is functional, declarative programming in general and F# in particular. This includes the following themes:´
Functional Programming Paradigme:
- first class functions
- higher-order functions
- type inference and polymorphism
- recursion and tail-recursion
- algebraic data types
- strict and lazy evaluation
- garbage collection
- reference types
- mutable versus immutable data
- divide and conquer.
Formal prerequisitesYou can construct object-oriented software using Java (or C#), corresponding to what is learnt on the MSc course Introductory Programming.
Information about the course of study
This course is first part of the specialisation Software Development and Technology on second semester on MSc in Software Design
Moreover the student must always meet the admission requirements of the IT University.
Intended learning outcomes
After the course, the student should be able to:
- apply and reflect on theories for modelling, analyzing and constructing functional declarative programs.
- apply and reflect on the concepts behind functional programming compared to imperative and object oriented programming.
- construct small and large programs in F# and explain the basic principles behind functional programming using F#.
- describe and explain solutions to problems in the context of functional programming.
- apply core concepts of functional programming.
- reason about the complexity of functional programs.
Lectures and exercises
The course consists of
- a course-like block with lectures and exercises, covering the themes of the course
- Up till 12 hand-ins with F# assignments
How Many: 12 assignments with a value of 2 points each. A total of 24 points can be earned. You need 14 points to attend exam.When: 1 weekly assignment.
Deadlines: One week per assignment.
Retake: It is possible to hand-in assignment within two weeks after the first deadline to improve score.
Weekly assignments are key to acquire the learning
and experience working with F#. We therefore require a mandatory effort
corresponding to 14 points out of 24 possible points. Hence flexibility is
built in to the requirement.
The student will receive the grade NA (not approved) at the ordinary exam, if the mandatory activities are not approved and the student will use an exam attempt.
The course literature is published in the course page in LearnIT.
Student Activity BudgetEstimated distribution of learning activities for the typical student
- Preparation for lectures and exercises: 30%
- Lectures: 20%
- Exercises: 40%
- Exam with preparation: 10%
Ordinary examExam type:
C: Submission of written work, External (7-point scale)
C22: Submission of written work – Take home
The exam is a 4 hour take-home exam followed by random fraud control.
Time and dateOrdinary Exam - submission,Ordinary Exam - hand out Mon, 25 May 2020, 10:00 - 14:00
Reexam - submission Fri, 21 Aug 2020, 10:00 - 14:00