I have been teaching OCaml to first year undergraduate students for a few years now. Why not share it with the world? To access the course follow the link at the bottom of the page.
Here is what you will learn:
- The pure fragment of OCaml: functions, polymorphism, patterns, variants, lists, (tail) recursion, map and fold
- Basic algorithms and data types: list algorithms, searching, sorting, queues
- Basic proofs of program correctness using structural induction, applied to Peano numbers and lists and supported by our home-brewed proof assistant Yup
- Some general theoretical concepts: isomorphisms, the Curry-Howard correspondence
On the web site you will find: lecture notes, lecture slides, lecture videos and over 30 programming assignments. The assignments come with automatic test harnesses so you can test your answers for correctness.
The course web site is accessible from https://birmingham.instructure.com/courses/15627.