Persistent data structures, pure and testable functions, abstractions of code, static and dynamic typed code and their consequences for a program in the large, identify and reason about hidden state, the building of stateless in contrast to component with encapsulated state, separation of behaviour and information.
FSF3583 Functional Programming 7.5 credits

Information per course offering
Course offerings are missing for current or upcoming semesters.
Course syllabus as PDF
Please note: all information from the Course syllabus is available on this page in an accessible format.
Course syllabus FSF3583 (Spring 2019–)Content and learning outcomes
Course contents
Intended learning outcomes
After completion of the course, the student should be able to:
structure large programs by functional programming, so that they become simpler to understand, manage and maintain,
use function composition as a method to create abstractions necessary to realize the requirements for large programs,
design entities so that they become reusable, robust and testable,
identify unintended complexity of a program in an early stage and be able to redesign that part,
understand persistent data structure and their design implications for a program,
design data driven programs,
understand the benefits coming from a robust syntax with macros.
Literature and preparations
Specific prerequisites
A Master degree, including at least 30 credits in Mathematics.
Literature
Communicated in the beginning of the course.
Examination and completion
Grading scale
Examination
Based on recommendation from KTH’s coordinator for disabilities, the examiner will decide how to adapt an examination for students with documented disability.
The examiner may apply another examination format when re-examining individual students.
If the course is discontinued, students may request to be examined during the following two academic years.
Other requirements for final grade
Computer assignments completed.
Examiner
Ethical approach
- All members of a group are responsible for the group's work.
- In any assessment, every student shall honestly disclose any help received and sources used.
- In an oral assessment, every student shall be able to present and answer questions about the entire assignment and solution.