Resources
Learning
OCaml
Recommended
- Real World OCaml, by Yaron Minsky, Anil Madhavapeddy and Jason Hickey. The book is freely available at dev.realworldocaml.org.
- Functional Programming in OCaml, Cornell CS3110 textbook. Freely available here.
References
Practice
Lambda Calculus
Recommended
- Types and Programming Languages (TAPL), by Benjamin Pierce.
- Peter Selinger’s lecture notes on lambda calculus available here.
Prolog
Recommended
- 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.
Software
Docker
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. Docker is a free software and is supported on all major platforms. The installation instructions for Docker is available here. The instructions for running the Jupyter notebooks is here.
OCaml
OCaml installation instructions are covered in the Real World OCaml book. I would recommend installing OPAM (OCaml Package Manager) with instructions from the opam website and switching to OCaml version 4.07.1.
SWI-Prolog
SWI-Prolog installation instructions are here.
CS3100 Virtual Box Disk Image
An Ubuntu virtual box disk image (VDI) with the jupyter notebook is available
here.
The password is cs3100
. The course git repo has been cloned under cs3100
in
the home directory.