Syllabus for |
|
TDA452 - Functional programming |
|
Syllabus adopted 2014-02-25 by Head of Programme (or corresponding) |
Owner: TKITE |
|
7,5 Credits |
Grading: TH - Five, Four, Three, Not passed |
Education cycle: First-cycle |
Major subject: Computer Science and Engineering, Information Technology
|
Department: 37 - COMPUTER SCIENCE AND ENGINEERING
|
Teaching language: English
Open for exchange students
Block schedule:
C
Course module |
|
Credit distribution |
|
Examination dates |
Sp1 |
Sp2 |
Sp3 |
Sp4 |
Summer course |
No Sp |
0111 |
Laboratory |
3,0 c |
Grading: UG |
|
|
3,0 c
|
|
|
|
|
|
|
0211 |
Examination |
4,5 c |
Grading: TH |
|
|
4,5 c
|
|
|
|
|
|
14 Jan 2016 pm M, |
07 Apr 2016 pm M |
In programs
MPCSN COMPUTER SYSTEMS AND NETWORKS, MSC PROGR, Year 1 (elective)
MPCSN COMPUTER SYSTEMS AND NETWORKS, MSC PROGR, Year 2 (elective)
TKITE SOFTWARE ENGINEERING, Year 3 (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:
Professor
David Sands
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
- algebraic and abstract data types
- polymorphism and classes
- 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
Written exam and compulsory laboratory exercises.