Skip to content

OCAML Teaching Resources

carlos-molina edited this page Nov 4, 2014 · 90 revisions

Recommended Textbooks

List of OCAML books [More books]

List of books on Awesome OCaml ripo

Downloadable books

  • Developing Applications With Objective Caml. By Emmanuel Chailloux and Pascal Manoury and Bruno Pagano

  • Think OCaml: How to Think Like a (Functional) Computer Scientist, by Allen Downey and Nicholas Monje.

  • Unix System Programming in OCaml

  • Using, Understanding, and Unraveling OCaml

Using, Understanding, and Unraveling The OCaml Language by Didier Rémy

Programmation du système Unix en Objective Caml (in French)

A Concise Introduction to Objective Caml

[Introduction to Objective Caml, by Jason Hickey, 2008] (http://courses.cms.caltech.edu/cs134/cs134b/book.pdf)

Lab

Toolkits

In the browser

Run and explore OCaml without installing it.

  1. A compiler from OCaml bytecode to Javascript
  2. Try OCaml
  3. Compile OCaml Online
  4. Codepad
  5. Run OCaml Code Online

Understanding the OCaml top-level (interactive) system

To use the OCaml top level system effectively it is advisable to understand its inputs and outputs.

  1. [Formal description of OCaml top level system] (http://caml.inria.fr/pub/docs/manual-ocaml-400/manual023.html)
  2. [Explanation of the output of the OCaml top level system ---waiting for contribution]

OCaml installation

  1. OPAM quick install
  2. Installation Instructions from Real World OCaml book

Troubleshooting

Linux
Mac
Win

IDEs

  1. Turn your editor into a full fledged OCaml IDE
  2. OCaml-Top
  3. Eclipse
  1. EMACS with OCaml
  1. VIM with OCaml

VM images

  1. Ocaml 4.01 for MAC
  2. Cornell's Linux VM VirtualBox image (more info here)
  3. Princeton's Ubuntu VirtualBox VM (more info on the course's site )

Exercises

  1. 99 Problems (solved) in OCaml
  2. Examples and Exercises for the book "More OCaml"
  3. From UMass's CS691F Programming languages course
  4. Try OCaml

Tutorials

  1. From UMass's CS691F Programming languages course, at University of Massachusetts Amherst

  2. OCaml Core turotials

  3. A Concise Introduction to Objective Caml, at Villanova University

  4. Beginner's guide to OCaml beginner's guides.

  5. CSE 130: Programming Languages Course, at University of California San Diego. Click on [Lectures] (http://cseweb.ucsd.edu/classes/wi11/cse130/) and [Discussion Notes] (http://cseweb.ucsd.edu/classes/wi11/cse130/). Have a look at Lec 7 (a pp presentation by Zach) for an inspiring introduction into map and fold.

  6. CS 3110 Fall 2013 :: Data Structures and Functional Programming, at Cornell University. The lecturing materials explain OCaml on the basis of the fundamental concepts of functional programming languages.

  7. CIS 500: Software Foundations, at University of Pennsyvania. A Software Foundations course with strong emphasis on Types. The [OCaml Tutorial] (http://www.seas.upenn.edu/~cis500/cis500-f05/resources/seas-ocaml.html) includes a gentle introduction to the OCaml interactive top-level system and compilation in OCaml.

  8. [ Tutorial: OCaml for scientific computation, at University of Southampton ] (http://www.southampton.ac.uk/~fangohr/software/ocamltutorial/). Lecture 2 (Functions) includes an in-depth discussion of the concept of functions in programming languages.

Three fundamental concepts of Functional Programming

To feel at home with OCaml and (any other Functional Language) it helps to have some understanding of types, recursion and Lambda Calculus as these three concepts are at the heart Functional Programming. The following links point to some introductory references.

  • Types

  • Recursion: A good discussion of how recursion is implemented at compiler level is presented in Section 5-4 (Subprogram Sequence Control, pages 147-178) of Programming Languages: Design and Implementation, Terrance W. Pratt, Prentice Hall, Inc, 1975.

  • Lambda Calculus: A Tutorial Introduction to the Lambda Calculus, Raul Rojas, FU Berlin, WS-97/98, is a nine-page concise introduction to Lambda Calculus.

Five of the most influential publications on Functional Languages

The content and length of this list is based on personal opinion.

  • A Basis for a Mathematical Theory of Computation, John McCarthy. In P. Braffort and D. Hirschberg, editors, Computer Programming and Formal Systems, North-Holland, 1963.

This is a seminal article on the topic....

  • Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs, John Backus. Communications of the ACM, Aug 1978, V.21, N.8.

This article explains the influence of the von Neumann architecture on early programming languages such as Fortran and Algol. The author discusses the impact of the assignment statement on the way computation is conceived in these languages.

Clone this wiki locally