Sep 22, 2016: 9:30am - 1:00pm

T1: Teaching Functional Programming

Michael Sperber


You want to teach functional programming to someone else: To enable a fellow developer to hack in your project, as a professional trainer, or to teach students. You are enthusiastic that functional programming is the best, and you probably feel that Haskell, OCaml, Erlang, Clojure, Scala, F#, Racket or Scheme is the best in particular. However, as natural as functional programming feels to us, it is not easy to teach well. In particular, the languages listed above are powerful tools for development, but they are not necessarily the best tools for teaching - at least in the beginning. This tutorial will help you teach functional programming well, in a variety of contexts, using the Program by Design approach. It will give an overview of effective teaching approaches, techniques and tools, and highlight pitfalls and aspects of teaching worthy of your attention.

Tutorial objectives

By the end of this tutorial, you will know one effective approach to teaching functional programming, and be aware of some of the pitfalls of common approaches.

Target audience

all functional programmers

Infrastructure Required

DrRacket should be installed on your system.

Michael Sperber

Michael Sperber

Michael Sperber is CTO of Active Group in Filderstadt, Germany. He is a long-time visitor and contributor of ICFP and associated workshops. (This year he is program chair of FARM.) Mike maintains a strong interest in teaching programming, has published several papers (at ICFP and other venues) and has designed introductory courses for several German universities. He also regularly conducts professional training in functional programming.