Skip to content
Zdancewic edited this page Nov 10, 2014 · 6 revisions

OCaml is being used more and more commonly as a teaching language. This page is devoted to resources for people who are teaching OCaml in a university setting.

Courses taught in OCaml

Here's a list of courses we know about that teach in OCaml. Please add your school here!

  1. Brown (CS-17) (along with Racket, Scala and Java)
  2. Cornell (CS3110)
  3. Harvard (CS51)
  4. Indian Institute of Technology, Delhi (CSL 101) (along with Pascal and Java)
  5. Princeton (COS326)
  6. Rice University (COMP 311)
  7. UMass (CS691F)
  8. UPenn (CIS120) [ (CIS341) ] (http://www.cis.upenn.edu/~cis341/current/)
  9. University of Birmingham (focs1112)
  10. University of California, San Diego (cse130-a/) (along with Python and Prolog)
  11. University of Cambridge (L28)
  12. University of Illinois at Urbana-Champaign (CS 421
  13. University of Innsbruck (SS6)
  14. University of Maryland (CMSC 330) (along with Ruby, Prolog, Java)
  15. University of Massachusetts Amherst (CMPSCI631)
  16. University of Wrocław
  17. Université Paris-Diderot (pf5)

Books and Lecture Notes

This is a list of books and lecture notes that are being used for teaching OCaml.

  1. Lecture notes for Penn's CIS120. Like the course, this book covers both OCaml and Java, and is intended for students with no programming background.
  2. Real World OCaml, also available online. Not really intended as a textbook, and probably not ideal as a first programming book. But it has been used in a few university classes, including Harvard's CS51.
  3. Jason Hickey's Introduction to Objective Caml, originally developed as lecture notes for Jason's course at Cal Tech.

IDEs and other development tools

  1. (Should say something about the vagrant scripts that Anil put together)
  2. (Experience about dev environment would be nice. I know that CIS120 uses OcaIDE and Eclipse. Examples of what others use would be useful.)
  3. (Nate and Arjun's tools should be described here)

Exercises

(seems like this would be a good place to list interesting exercises that people have come up with. I know that I've heard interesting examples of doing concurrency and parallelism using Async, which seemed like they might be worth sharing)