This course is offered by the Graduate Program in Applied Computing (PPGCA) at the Federal University of Technology – Paraná (UTFPR). It is primarily intended for graduate students, but advanced undergraduates and professionals may also attend.
Functional programming: concepts and major languages. Functions: first-class functions, named and anonymous functions, currying, partial application, modules. Pattern matching. Data structures and immutability. Recursion. Collection processing. Lazy evaluation. Control flow. Project implementation using a functional language. Overview of functional languages for concurrency. Using LLMs to support functional programming.
The Introduction to Functional Programming course will be delivered fully remotely. More details will be available soon. Classes are expected to begin in early August and will take place on Tuesdays, from 15:50 to 18:40 (UTC-3). I had to change it from Mondays to Tuesdays.
Interested in joining? Please fill out this form to express your interest. You will be notified when enrollment opens.
Adolfo Neto is an Associate Professor at UTFPR. He is a member of the Education, Training, & Adoption Working Group of the Erlang Ecosystem Foundation. He is also co-creator and co-host of the Elixir em Foco podcast, a Portuguese-language podcast about Elixir and the BEAM ecosystem. Watch course-related videos here.
Adolfo is one of the organizers of the 1st Workshop on Software Engineering for Functional Programming (SE4FP 2025).
In the past, we have hosted invited talks by:
- Lee Barney – This was the talk, but the video has not been published.
- Laura Castro
- Simon Thompson
- Brujo Benavides
- September 9 – Brujo Benavides (Erlang Engineer)
- November 4 – Simon Thompson (Emeritus Professor of Logic and Computation)
- More to come...
- 12/August: First class – Functional Programming: Concepts and Major Languages. Topics: First-class functions, named and anonymous functions.
- 19/August: to be defined
- 26/August: to be defined
- 2/September: to be defined
- 9/September: Invited talk by Brujo Benavides (Erlang Engineer)
- 16/September: to be defined
- 23/September: No class – Instructor at CBSOFT and SE4FP
- 30/September: to be defined
- 7/October: to be defined
- 14/October: to be defined
- 21/October: to be defined
- 28/October: to be defined
- 4/November: Invited talk by Simon Thompson (Emeritus Professor of Logic and Computation)
- 11/November: to be defined
- 18/November: to be defined
- 25/November: Final project presentations
- 2/December: Final project presentations
- 9/December: Final project presentations
By the end of this course, you will be able to:
- Solve problems using a functional programming language of your choice
- Describe and discuss core functional programming concepts
- Apply these concepts in your own programs
- Explain the main features of a concurrent functional programming language
This course is intended for Master's and PhD students, but foreign undergraduate students and local undergrads with an interest in the topic are more than welcome. The course will be conducted in English, except if all enrolled students are Portuguese speakers, in which case it may be taught in Portuguese. Some guest lectures by external professors and professionals may be given in English regardless. There are no formal prerequisites besides a good command of English, as all materials and interactions will be in that language.
Students will read academic papers, book chapters, and gray literature related to the course topics. In addition, students will complete programming assignments.
Assessment will be based on:
- Participation in synchronous classes
- Completion of programming assignments
- Other assignments to be defined during the course
- Interviews conducted during and after the course
We will use Google Classroom for course discussions and Google Meet for synchronous meetings.