Course syllabus

Basics of Functional Programming
Grundläggande funktionsprogrammering

EDAF95, 5.0 credits, G2 (First Cycle)

Valid for: 2024/25
Faculty: Faculty of Engineering LTH
Decided by: PLED C/D
Date of Decision: 2024-04-16
Effective: 2024-05-08

General Information

Main field: Technology Depth of study relative to the degree requirements: First cycle, in-depth level of the course cannot be classified
Mandatory for: D2
Language of instruction: The course will be given in English

Aim

The course gives an insight into how the functional programming often offers a possibility to write shorter and easier-to-understand programs than using the traditional imperative or object-oriented approaches.

Learning outcomes

Knowledge and understanding
For a passing grade the student must

Competences and skills
For a passing grade the student must

Judgement and approach
For a passing grade the student must

Contents

The philosophy of functional languages. Introduction to a modern functional programming language. Language constructs and idioms. Higher-order functions. Lazy evaluation and infinite data structures. Polymorphic type systems. Type analysis and type inference.

Examination details

Grading scale: TH - (U, 3, 4, 5) - (Fail, Three, Four, Five)
Assessment: Written examination. Mandatory lab assignments which are a basis for the assignments. To qualify for the exam students must have completed the assignments. The final grade of the course is based on the result of the written examination.

The examiner, in consultation with Disability Support Services, may deviate from the regular form of examination in order to provide a permanently disabled student with a form of examination equivalent to that of a student without a disability.

Modules
Code: 0119. Name: Assignments.
Credits: 1.5. Grading scale: UG - (U, G). Assessment: To qualify for a passing grade the assignments must be completed.
Code: 0219. Name: Written Examination.
Credits: 2.5. Grading scale: TH - (U, 3, 4, 5). Assessment: To qualify for the exam the assignments must be completed. The final grade of the course is based on the result of the written examination. The module includes: Written examination.
Code: 0319. Name: Labs.
Credits: 1.0. Grading scale: UG - (U, G). Assessment: Completed laboratory work The module includes: Lab work

Admission

Admission requirements:

Assumed prior knowledge: FMAA05 Calculus in One Variable and FMAB20 Linear Algebra or FMAA50 Calculus and FMAA55 Mathematics, Linear Algebra or EDAA40 Discrete Structures in Computer Science. Students are expected to have basic understanding of mathematical functions, functional composition and proof by induction.
The number of participants is limited to: No
Kursen överlappar följande kurser: EDA120 EDAN40 EDAF40

Reading list

Contact

Course coordinator: Professor Jacek Malec, Jacek.Malec@cs.lth.se
Course homepage: https://cs.lth.se/edaf95