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.
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.
all functional programmers
DrRacket should be installed on your system.