Skip to content

CAES005 - Introdução à Programação Funcional

License

CC0-1.0, MIT licenses found

Licenses found

CC0-1.0
LICENSE
MIT
LICENSE.md
Notifications You must be signed in to change notification settings

adolfont/caes005-introduction-to-functional-programming

Repository files navigation

CAES005 - Introduction to Functional Programming

This is a course offered by the Graduate Program in Applied Computing (PPGCA) of the Federal University of Technology - Parana (UTFPR), originally intended for graduate students, but some undergraduate students and professionals can attend.

2024 offering

The "Introduction to Functional Programming" course, scheduled from September 30th to December 18th, will be a fully remote learning experience. Classes will be held on Thursdays from 17:50 to 21:10 (GMT-3). I expect students to keep their cameras on during most of the sessions.

Interested in joining? Go to PPGCA's site to learn more.

Instructor

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 podcast about Elixir and the BEAM for the Portuguese-speaking community. You can watch some videos related to this course here.

Learning Objectives

At the end of this course, you will be able to:

  • solve problems using a functional programming language of your choice
  • describe and discuss the main functional programming concepts
  • apply the main functional programming concepts in your programs
  • describe the main features of a concurrent functional programming language

Prerequisites

The course is intended for Masters and PhD students but undergraduate foreign students and local undergrads with an interest in the topic are more than welcome. This course will be taught in English. There is no formal prerequisite in addition to a good understanding of English, as the discussed literature and interaction in class will be in that language.

Syllabus

Functional Programming: concepts and main Languages.

Functions:

  • functions as first class citizens
  • named functions and anonymous functions
  • currying
  • modules.

Pattern Matching.

Data structures and immutability.

Recursion.

Collection processing.

Lazy evaluation.

Control flow.

Project implementation involving a functional language.

Overview of functional languages for concurrency.

Schedule

Important Dates: (SOON)

In construction

  • Functional Programming: Concepts and Main Languages (LISP, Scheme, Clojure, Haskell, F# , Elixir, Erlang)
  • Functions: functions as first-class citizens, named and anonymous functions, currying, modules
  • Collections
  • Variables
  • Pattern Matching
  • Data structures and Immutability
  • Recursion
  • Collection processing
  • Lazy evaluation.
  • Control flow
  • Implementing projects using a functional programming language
  • General view of concurrent functional programming languages (Erlang and Elixir)

Learning methodology and assessment

Students will read papers, book chapters and gray literature on the topics of the course.

Besides that, the students will solve programming assignments.

Assessment will be based on participation on synchronous classes, on solving the programming assignments, and on other assignments to be defined during the course.

At the end of the course you should give a talk either about a functional programming language or about a library that provides functional programming support to non-functional programmng languages.

Technological Support

We will use Google Classroom for discussions and Google Meet sessions for our synchronous meetings.

Links

Tiobe Index

StackOverflow Developer Survey

About

CAES005 - Introdução à Programação Funcional

Resources

License

CC0-1.0, MIT licenses found

Licenses found

CC0-1.0
LICENSE
MIT
LICENSE.md

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published