Software

The course comes with a handy docker image which contains the necessary software to run OCaml, SWI-Prolog and the Jupyter notebooks, primarily through which the course is taught. The instructions for running the Jupyter notebooks is here.

Docker

Docker is a free software and is supported on all major platforms. The installation instructions for Docker is available here.

OCaml

You don’t need a local installation of OCaml on your machine for the course. The docker image is enough. If you want to, check out ocaml.org.

SWI-Prolog

You don’t need a local installation of SWI-Prolog on your machine for the course. The docker image is enough. If you want to, SWI-Prolog installation instructions are here.

Learning

OCaml

  • Functional Programming in OCaml, Cornell CS3110 textbook. Freely available here.
  • Real World OCaml, by Yaron Minsky, Anil Madhavapeddy and Jason Hickey. The book is freely available at dev.realworldocaml.org.

References

Practice

Lambda Calculus

  • Types and Programming Languages (TAPL), by Benjamin Pierce.
  • Peter Selinger’s lecture notes on lambda calculus available here.

Prolog

  • Programming Languages, Concepts and Constructs, 2nd edition, by Ravi Sethi. Chapter 11.

References

  • The Art of Prolog, 2nd edition, Advanced Programming Techniques, by Leon Sterling and Ehud Y. Shapiro. Available for free here.