Official course description:

Full info last published 19/12-23
Course info
Language:
English
ECTS points:
7.5
Course code:
KSFUPRO1KU
Participants max:
80
Offered to guest students:
yes
Offered to exchange students:
yes
Offered as a single subject:
yes
Price for EU/EEA citizens (Single Subject):
10625 DKK
Programme
Level:
MSc. Master
Programme:
MSc in Software Design
Staff
Course manager
Part-time Lecturer
Course Academic Responsible
Head of Department
Course semester
Semester
Forår 2024
Start
29 January 2024
End
23 August 2024
Exam
Exam type
ordinær
Internal/External
ekstern censur
Grade Scale
7-trinsskala
Exam Language
GB
Abstract

The subject of the course is functional, declarative programming in general and F# in particular.

Description
The 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
Memory Management:
  • garbage collection
  • reference types
  • mutable versus immutable data
Parallel Programming:
  • divide and conquer.
Formal prerequisites
You 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.
Learning activities

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
The course includes required reading on functional programming, parallel programming and F#.

Mandatory activities

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 pedagogical function of the mandatory activities is to provide the students with assignments where they practice the given ILO’s, that is, to construct small and large programs in F# and explain the principles behind functional programming. 

After each hand-in, the students will be given formative feedback in order to scaffold their conceptual understanding of the field. Overall feedback for a week's assignments are given to all students and individual feedback when required.


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.

Course literature

The course literature is published in the course page in LearnIT.

Student Activity Budget
Estimated distribution of learning activities for the typical student
  • Preparation for lectures and exercises: 30%
  • Lectures: 20%
  • Exercises: 40%
  • Exam with preparation: 10%
Ordinary exam
Exam type:
A: Written exam on premises, External (7-point scale)
Exam variation:
A22: Written exam on premises with restrictions.
Exam duration:
4 hours
Internet access:
Restricted access - LearnIT only
Aids allowed for the exam:
Written and printed books and notes
E-books and/or other electronic devices


reexam
Exam type:
B: Oral exam
Exam variation:
B1I: Oral exam with time for preparation. In-house.
Exam duration per student for the preparation:
30 minutes
Invigilator present for the preparation:
Yes
Exam duration per student for the oral exam:
30 minutes

Time and date
Ordinary Exam - on premises Mon, 27 May 2024, 09:00 - 13:00
Reexam Fri, 16 Aug 2024, 09:00 - 18:00