Official course description, subject to change:
Preliminary info last published 15/11-22
Functional Programming, SWU
Course info
Language:
English
ECTS points:
7.5
Course code:
BSFUPRO1KU
Participants max:
190
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:
Bachelor
Programme:
BSc in Software Development
Staff
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
This course aims to make students proficient in the functional programming paradigm used by languages such as F#, Scala, SML, OCaml, or Haskell. All programs created in the course will be written in F#, developed by Microsoft and incorporated in Visual Studio and the .NET framework. We will relate the functional paradigm to its imperative and object-oriented counterparts, but focus on concepts predominantly found in functional programming languages such as higher-order functions, recursion and tail recursion, immutable data structures, and first-class functions.Description
You will get a practical and theoretical introduction to functional programming languages using F#. This includes the following themes:
Functional Programming Paradigm:- first-class functions
- higher-order functions
- type inference and polymorphism
- recursion and tail recursion
- algebraic data types
- strict and lazy evaluation
- parser combinators
- monads
- garbage collection
- reference types
- mutable versus immutable data
- divide and conquer
- the Actor model
- asynchronous computations
Formal prerequisites
- You are enrolled on the BSc study program in software development.
- You can construct object-oriented software using C#, corresponding to what is learnt in the BSc course Analysis, Design and Software Architecture (BDSA).
- You have a solid understanding of algorithms, their implementation, and their complexity, as taught in Algorithms and Data Structures (BADS).
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 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.
Ordinary exam
Exam type:A: Written exam on premises, External (7-point scale)
Exam variation:
A22: Written exam on premises with restrictions.