Search programme

​Use the search function to search amongst programmes at Chalmers. The programme overview and the programme syllabus relating to your studies are generally from the academic year you began your studies.

​​​

Syllabus for

Academic year
TDA340 - Advanced functional programming
 
Owner: TDATA
4,0 Credits (ECTS 6)
Grading: TH - Five, Four, Three, Not passed
Level: A
Department: 37 - COMPUTER SCIENCE AND ENGINEERING


Teaching language: Swedish

Course module   Credit distribution   Examination dates
Sp1 Sp2 Sp3 Sp4 No Sp
0101 Examination 4,0 c Grading: TH   4,0 c   Contact examiner,  Contact examiner
0201 Laboratory 0,0 c Grading: UG   0,0 c    

In programs

TDATA COMPUTER SCIENCE AND ENGINEERING - Computer Languages, Year 4 (elective)
TDATA COMPUTER SCIENCE AND ENGINEERING - Engineering of Computer-Based Systems, Year 4 (elective)
TTFYA ENGINEERING PHYSICS, Year 4 (elective)
TITEA SOFTWARE ENGINEERING, Year 3 (elective)
DCMAS MSc PROGR IN DEPENDABLE COMPUTER SYSTEMS - Dependable Programming, Year 1 
DCMAS MSc PROGR IN DEPENDABLE COMPUTER SYSTEMS - Dependable Architectures, Year 1 (elective)

Examiner:

Professor  John Hughes



Eligibility:

For single subject courses within Chalmers programmes the same eligibility requirements apply, as to the programme(s) that the course is part of.

Content

The big advantage with functional languages is that language constructions can be given names and thereby reused, using higher order functions. Functional programs can therefore often be constructed by composing constructions from a library. This method enables a way to construct programs quickly and with a high degree of correctness. This is the central idea in this course.
We can learn a lot from studying the standard library of list functions such as map, fold and so on. These functions can be generalized to operate on other datatypes.
Realistic functional programs must also handle changes in state, exceptions, backtracking and other "non-functional" behaviors. We will look at how these can be modeled in a purely functional manner. The concept of "monads" will help us here.
Armed with this knowledge we will construct domain specific libraries, designed to construct programs in a certain application domain. This type of library can be said to define a domain specific language, since the constructions the programmer uses to construct larger programs mainly consists of library functions. We will study libraries for parsing, pretty printing, graphics, pseudo-parallel programming and gui programming. The course will also present some recent research which can make the contents of the course very to some degree.

Organisation

Weekly lectures and laborations with supervision.

Literature

Information regarding literature will be given on the course homepage before the course starts.

Examination

The examination consist of laboration together with an oral exam. Grading: F, 3, 4 or 5.


Page manager Published: Thu 03 Nov 2022.