Search programme

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

Syllabus for

Academic year
TDA452 - Functional programming  
Funktionell programmering
 
Syllabus adopted 2018-02-28 by Head of Programme (or corresponding)
Owner: TKITE
7,5 Credits
Grading: TH - Five, Four, Three, Fail
Education cycle: First-cycle
Major subject: Computer Science and Engineering, Information Technology
Department: 37 - COMPUTER SCIENCE AND ENGINEERING

The course is full. No additional course registrations can be offered.
Teaching language: English
Open for exchange students: Yes
Block schedule: C

Course elements   Credit distribution   Examination dates
Sp1 Sp2 Sp3 Sp4 Summer course No Sp
0111 Laboratory 3,0c Grading: UG   3,0c    
0211 Examination 4,5c Grading: TH   4,5c   19 Jan 2019 am L,  25 Apr 2019 pm M  

In programs

MPCSN COMPUTER SYSTEMS AND NETWORKS, MSC PROGR, Year 2 (elective)
MPCSN COMPUTER SYSTEMS AND NETWORKS, MSC PROGR, Year 1 (elective)
TIDAL COMPUTER ENGINEERING, Year 3 (compulsory elective)
TKITE SOFTWARE ENGINEERING, Year 3 (elective)
TKITE SOFTWARE ENGINEERING, Year 2 (elective)
MPALG COMPUTER SCIENCE - ALGORITHMS, LANGUAGES AND LOGIC, MSC PROGR, Year 1 (elective)
MPALG COMPUTER SCIENCE - ALGORITHMS, LANGUAGES AND LOGIC, MSC PROGR, Year 2 (elective)

Examiner:

Thomas Hallgren

Replaces

TDA450   Functional programming TDA451   Functional programming


  Go to Course Homepage

 

Eligibility:

In order to be eligible for a first cycle course the applicant needs to fulfil the general and specific entry requirements of the programme(s) that has the course included in the study programme.

Course specific prerequisites

Previous programming experience and basic knowledge of data structures and algorithms are also assumed. The course cannot be included in a degree which contains (or is based on another degree which contains) either the course TDA555 (Introduction to functional programming) or the course TDA451 (Functional Programming).

Aim

This course introduces a functional programming language and related concept to students that already have some knowledge in programming. The primary goal is to enable students to write realistic (small- to medium-size) programs, while introducing some of the fundamental concepts of computer science.

Learning outcomes (after completion of the course the student should be able to)

- write small to medium-sized functional programs for a variety of applications;
- exploit a variety of programming techniques typical in functional programming, such as: use of recursion, modelling with recursive datatypes, abstraction and reuse with the help of higher order functions and monads;
- appreciate the strengths and possible weaknesses of the functional programming paradigm.

Content

In this course the student will learn about functional programming through the Haskell programming language. Concrete topics encountered in the course include:
- functions as first-class values
- data structures (lists, tuples, user-defined data types)
- recursion and recursive data types
- polymorphism and type classes
- pure functions vs input-output
- modules and abstract data types
- testing functional programs
- lazy evaluations and infinite objects
- monads

Organisation

Teaching is through lectures and self-study exercises, supported by drop-in consultation times and on-line help.

Literature

See the web page of the course.

Examination including compulsory elements

Written exam and compulsory laboratory exercises.


Published: Fri 18 Dec 2009. Modified: Mon 28 Nov 2016