DM580: Functional Programming
The Study Board for Science
Teaching language: Danish or English depending on the teacher, but English if international students are enrolled
EKA: N330078102
Assessment: Second examiner: Internal
Grading: 7-point grading scale
Offered in: Odense
Offered in: Autumn
Level: Bachelor
STADS ID (UVA): N330078101
ECTS value: 5
Date of Approval: 02-03-2023
Duration: 1 semester
Version: Archive
Entry requirements
Academic preconditions
Academic preconditions. Students taking the course are expected to:
- Have knowledge of basic programming concepts on a level that corresponds to the one achieved through following the course DM574 Introduction to programming.
- Have a basic understanding of algorithms and data structures, e.g., by having followed the course DM578 Algorithms and data structures.
Course introduction
The course provides an introduction to functional programming. It provides students with experience with programming in languages other than mainstream object-oriented languages.
The course builds on the knowledge acquired in the courses DM574 Introduction to Programming and DM578 Algorithms and Data Structures. It provides a professional basis for choosing courses or bachelor projects in programming languages later on in the program.
In relation to the learning outcomes of the degree the course has explicit focus on:
- developing skills in programming in different types of programming languages.
- developing skills in analysing the advantages and disadvantages of different language constructs.
- developing skills in deciding and justifying professional decisions.
- giving the competence to identify one's own needs for learning and structuring one's own learning in different learning environments
Expected learning outcome
The learning objective of the course is that the student demonstrates the ability to:
- solve non-trivial programming tasks in a functional programming language by writing clear and correct code and by applying the standard language libraries.
- calculate the most general type of a functional expression.
- estimate time and space consumption of functional programs.
- prove properties of simple functional programs.
Content
The following main topics are contained in the course:
- functions
- higher-order types
- polymorphism
- lists
- lazy evaluation
- referential transparency
- monads
- efficiency considerations
- proof of correctness
Literature
Examination regulations
Exam element a)
Timing
Autumn
Tests
Project
EKA
N330078102
Assessment
Second examiner: Internal
Grading
7-point grading scale
Identification
Full name and SDU username
Language
Normally, the same as teaching language
Examination aids
To be annuonced during the course
ECTS value
5
Indicative number of lessons
Teaching Method
At the faculty of science, teaching is organized after the three-phase model ie. intro, training and study phase.
- Intro phase: 21 hours
- Training phase: 21 hours, where tutorials and laboratory exercises are combined according to demand
Activities during the study phase:
- Implementing minor projects
- Self-study of various parts of the course material.