Back to all courses

Functional programming: Advanced features and distributed programming

Individual course

Course contents

  • Functors
  • Applicative functors
  • Monoids
  • Monads
  • Concurrency
  • Parallel programming
  • Software transactional memory
  • Improving functional program correctness

Also possibly some changing special topics.

Learning outcomes

After completing the course, the student

  • knows how to use advanced wrapper structures such as applicative functors, monoids and monads in functional programming.
  • is able to write parallel and distributed systems in functional languages.
  • is able to utilise software transactional memory in functional programming.
  • knows various ways to improve correctness of functional programs.

Course material

Videos (online), reading (mainly the online book Learn You a Haskell)

Completion methods

Individual work & self-study with a possibility to consult the teacher. The student needs to electronically submit the required exercises (graded automatically) and take the electronic exam (organised on campus).

The course was previously available under the name Functional programming 2.

More information in the Tampere University study guide.

You can get a digital badge after completing this course.

Responsible teacher

University of Tampere
Jyrki Nummenmaa

Further information about the course and studying

Tampere University
Teemu Rauhala

Contact person for applications

FITech Network University
Fanny Qvickström, Student services specialist
Start here
Start here
Data science,
Course code:
Study credits:
0 €
Course level:
Teaching period:
Continuously on-going
Application deadline:
Continuously on-going
Host university:
Tampere University
Who can apply:
Adult learner,
Degree student
Teaching method:
Place of contact learning:
Teaching language:
General prerequisites:
Course Functional programming 1 (COMP.CS.130)
Interested in this course? Subscribe and get updates about the course directly to your email. You can cancel subscription any time you want.