Course syllabus - Functional Programming with F#
Scope
7.5 credits
Course code
DVA229
Valid from
Autumn semester 2015
Education level
First cycle
Progressive Specialisation
G1F (First cycle, has less than 60 credits in first-cycle course/s as entry requirements).
Main area(s)
Computer Science
School
School of Innovation, Design and Engineering
Ratified
2014-04-15
Literature lists
Course literature is preliminary up to 8 weeks before course start. Course literature can be valid over several semesters.
-
Books
Objectives
To teach the student to solve problems independently in a functional language, and to understand the pros and cons of the functional paradigm as compared with others like the imperative and the object-oriented paradigms.
Learning outcomes
For a pass, the student shall understand and be able to use the concepts that are taught, manifested in the following more concrete abilities:
- solve programming problems in a functional language, with recursion
- use lists, tuples, and other functional data structures to structure data in suitable ways when solving problems
- use the most common higher order functions for efficient programming
- declare own datatypes, and use these for modelling and problem solving
- be able to give a written and oral account for software solutions that are based on functional programming technnology
Course content
The functional programming paradigm. Recursion. Higher order functions. Algebraic data types. Data structures in functional languages: lists, tuples, trees. Modern type systems with type inference. Different evaluation strategies: lazy vs. eager evaluation. Freedom of side-effects, and how this can be made to coexist with I/O. Imperative programming in functional languages. Something about applications of functional programming. Introduction to theoretical foundations, like lambda calculus.
Tuition
Lectures (with elements of recitals), supervised laborations, and own work with laborations and project.
Specific requirements
Programming 7,5 ECTS credits, Data structures, algorithms and program development 7,5 ECTS credits,
Discrete Mathematics 7,5 ECTS credits or corresponding.
Examination
Exercise, laboratory work (LAB1), 2 ECTS credits, marks Fail (U) or Pass (G)
Project (PRO1), 1.5 ECTS credits, marks Fail (U) or Pass (G)
Examination (TEN1), 4 ECTS credits, marks Fail (U), 3, 4 or 5
A student who has a certificate from MDU regarding a disability has the opportunity to submit a request for supportive measures during written examinations or other forms of examination, in accordance with the Rules and Regulations for Examinations at First-cycle and Second-cycle Level at Mälardalen University (2020/1655). It is the examiner who takes decisions on any supportive measures, based on what kind of certificate is issued, and in that case which measures are to be applied.
Suspicions of attempting to deceive in examinations (cheating) are reported to the Vice-Chancellor, in accordance with the Higher Education Ordinance, and are examined by the University’s Disciplinary Board. If the Disciplinary Board considers the student to be guilty of a disciplinary offence, the Board will take a decision on disciplinary action, which will be a warning or suspension.
Grade
Pass with distinction, Pass with credit, Pass, Fail
Interim Regulations and Other Regulations
The course completely overlaps with Functional Programming with F#.