Learn OCaml
Offered By: Independent
Course Description
Overview
Dive into functional programming with OCaml through a comprehensive MOOC and advanced course. Master fundamental concepts like integer and string identifiers, simple functions, and data structures. Progress to advanced topics including type-directed programming, efficient list implementations, balanced binary trees, and first-class functions. Explore practical applications such as symbolic manipulation of arithmetic expressions, implementing databases, and creating interpreters. Tackle challenging problems in alpha-beta search, Huffman compression, and parser combinators. Develop skills in algorithm design, data structure implementation, and problem-solving using OCaml's powerful type system and functional paradigm.
Syllabus
- Introduction to Functional Programming (MOOC)
- Integer Identifiers
- String Identifiers
- Simple Functions over Integers
- Simple Functions over Strings
- Tetragon
- Enigma
- Time on Planet Shadokus
- Points and vectors
- Searching for Strings in Arrays
- Finding the Minimum
- A Small Typed Database
- First In First Out
- Classic Functions Over Lists
- Symbolic Manipulation of Arithmetic Expressions
- Tries
- Type Directed Programming
- An Implementation of List with an Efficient Concatenation
- Balanced Binary Trees
- Using First Class Functions
- Functions Returning Functions
- Optimizing Partial Applications
- A Small Arithmetic Interpreter
- Using and Writing the Map Function
- Optimising a Tree Traversal using Exceptions
- Unraveling the Automatic Grader
- Printing Lists
- Displaying a Filesystem Hierarchy
- Printing with Loops
- Producing Fine ASCII Art
- Rotating the Contents of an Array
- Implementing a Stack with an Array
- Type Abstraction Using a Signature
- Multisets
- Fixing a module signature
- Char Indexed Hashtables
- Advanced Functional Programming by François Pottier
- Alpha-Beta Search
- Recognizing Anagrams
- Breaking a Sort
- Counting trees
- Enumerating Trees
- Generic Sorting
- Huffman Compression
- Infinite Arrays
- Leftist heaps
- Merge Sort
- Implementing Nondeterminism with Continuations
- Implementing Nondeterminism as an Abstract Machine
- Implementing Nondeterminism with Sequences
- Parser Combinators
- Persistent arrays
- A pretty-printer
- Random access lists
- A SAT solver
- From a Spectre to a Tree
- Trees in Stereo Vision
- Symbolic Sequences as Data
- Symbolic Sequences as Objects
- Building a Game Tree
- Tree Iterators
- The Union-Find data structure
Related Courses
Functional Programming Principles in ScalaÉcole Polytechnique Fédérale de Lausanne via Coursera Functional Program Design in Scala
École Polytechnique Fédérale de Lausanne via Coursera Paradigms of Computer Programming
Université catholique de Louvain via edX Introduction to Functional Programming
Delft University of Technology via edX Paradigms of Computer Programming – Fundamentals
Université catholique de Louvain via edX