Course syllabus adopted 2023-02-04 by Head of Programme (or corresponding).
Overview
- Swedish nameIntroduktion till funktionell programmering
- CodeTDA555
- Credits7.5 Credits
- OwnerTKDAT
- 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 49126
- Open for exchange studentsNo
- Only students with the course round in the programme overview.
Credit distribution
Module | Sp1 | Sp2 | Sp3 | Sp4 | Summer | Not Sp | Examination dates |
---|---|---|---|---|---|---|---|
0104 Laboratory 3 c Grading: UG | 3 c | ||||||
0204 Examination 4.5 c Grading: TH | 4.5 c |
|
In programmes
Examiner
- Alex Gerdes
- Senior Lecturer, Computing Science, 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.
Aim
This is an introductory course in programming, using the functional language Haskell as the medium of instruction. The primary goal is to enable students to write realistic (small) programs for real world applications, while introducing some of the fundamental concepts of computer science. Secondary goals are to provide orientation regarding the courses to come (particularly data structures, algorithms, digital circuits, formal methods and programming language courses), and to offer insight into careers in computing via invited speakers.Learning outcomes (after completion of the course the student should be able to)
- describe the basic concepts of modern functional programming languages, such as: data types, first- and higher-order functions, lazy evaluation, infinite data structures
- describe a basic repertoire of functional programming techniques, such as: recursion, testing, the role of data types in modelling and problem solving
- write small functional programs for various applications
- structure programs in a way that makes them easy to understand and modify, by appropriate application of data types, abstraction, and code reuse
- implement effective tests for functional programs with help of suitable tools
- show the ability, in various contexts, to judge which programming techniques are most appropriate for solving the problem at hand
Content
This is an introductory course in programming, and uses a functional language. The primary goal is to enable students to write small programs, while introducing some of the fundamental concepts of computer science. Secondary goals are to provide orientation regarding the courses to come (particularly data structures, algorithms, formal methods and programming language courses).Concrete topics encountered in the course include:
- values, types and functions
- compound data types (lists, tuples, and user-defined types)
- higher-order functions
- using abstraction to avoid repetitive programming
- recursion and recursive data types
- efficient and inefficient programs
- input-output
- verification with the help of testing
Organisation
The teaching is based on lectures, group meetings, and supervised lab sessions. The course might be taught in Swedish or English.Additional information
Students who already have knowledge in programming are advised to select the course DIT143/TDA452 Functional programming instead of TDA555. The course TDA555 cannot be included in a degree where DIT143/TDA452 is included, neither in a degree which is based on another degree where DIT143/TDA452 is included.
Literature
- Slides and other material from the lectures
- Book: 'Programming in Haskell' by Graham Hutton (2nd edition)
Examination including compulsory elements
The course is examined by an individual written exam carried out in an examination hall at the end of course, and a number of compulsory assignments typically carried out in groups of 2-3 students.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.