IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Functional Programming 
Kursusnavn (engelsk):Functional Programming 
Semester:Forår 2019 
Udbydes under:cand.it., softwareudvikling og -teknologi (sdt) 
Omfang i ECTS:7,50 
Kursussprog:Engelsk 
Kursushjemmeside:https://learnit.itu.dk 
Min. antal deltagere:
Forventet antal deltagere:
Maks. antal deltagere:70 
Formelle forudsætninger:* 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 
Læringsmål:After this learning activity the student should be able to:

(1) apply and reflect on theories for modelling, analyzing and constructing functional declarative programs.

(2) apply and reflect on the concepts behind functional programming compared to imperative and object oriented programming.

(3) construct small and large programs in F# and explain the basic principles behind functional programming using F#.

(4) describe and explain solutions to problems in the context of functional programming.

(5) apply core concepts of functional programming.

(6) reason about the complexity of functional programs. 
Fagligt indhold: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 
Læringsaktiviteter:14 ugers undervisning bestående af forelæsninger og øvelser

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#. 

Obligatoriske aktivititer: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

NB: Students not fulfilling the requirement of 14 points to attend the exam will be given the grade NA (not passed) at the ordinary exam and thereby use one exam trial. 
Eksamensform og -beskrivelse:A11: Skriftlig eksamen (stedprøve) med adgang til internet, skriftlige og trykte hjælpemidler., (7-scale, external exam)

Additional exam information:
Duration: 4 hours.