Course syllabus adopted 2021-02-26 by Head of Programme (or corresponding).
Overview
- Swedish nameFunktionell programmering
- CodeTDA452
- Credits7.5 Credits
- OwnerTKITE
- Education cycleFirst-cycle
- Main field of studyComputer Science and Engineering, Software Engineering
- DepartmentCOMPUTER SCIENCE AND ENGINEERING
- GradingTH - Pass with distinction (5), Pass with credit (4), Pass (3), Fail
Course round 1
- Teaching language English
- Application code 52124
- Maximum participants120
- Block schedule
- Open for exchange studentsYes
Credit distribution
Module | Sp1 | Sp2 | Sp3 | Sp4 | Summer | Not Sp | Examination dates |
---|---|---|---|---|---|---|---|
0111 Laboratory 3 c Grading: UG | 3 c | ||||||
0211 Examination 4.5 c Grading: TH | 4.5 c |
|
In programmes
- MPALG - COMPUTER SCIENCE - ALGORITHMS, LANGUAGES AND LOGIC, MSC PROGR, Year 1 (elective)
- MPALG - COMPUTER SCIENCE - ALGORITHMS, LANGUAGES AND LOGIC, MSC PROGR, Year 2 (elective)
- MPCSN - COMPUTER SYSTEMS AND NETWORKS, MSC PROGR, Year 1 (elective)
- MPCSN - COMPUTER SYSTEMS AND NETWORKS, MSC PROGR, Year 2 (elective)
- TIDAL - COMPUTER ENGINEERING - Common branch of study, Year 3 (compulsory elective)
- TKITE - SOFTWARE ENGINEERING, Year 2 (elective)
- TKITE - SOFTWARE ENGINEERING, Year 3 (elective)
Examiner
- David Sands
- Deputy Head Of Department, Computer Science and Engineering
Eligibility
General entry requirements for bachelor's level (first cycle)Applicants enrolled in a programme at Chalmers where the course is included in the study programme are exempted from fulfilling the requirements above.
Specific entry requirements
The same as for the programme that owns the course.Applicants enrolled in a programme at Chalmers where the course is included in the study programme are exempted from fulfilling the requirements above.
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
- 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
- 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.The course examiner may assess individual students in other ways than what is stated above if there are special reasons for doing so, for example if a student has a decision from Chalmers on educational support due to disability.