YoVDO

Learn OCaml

Offered By: Independent

Tags

OCaml Courses Algorithms Courses Data Structures Courses Functional Programming Courses String Manipulation Courses Parser Combinators Courses

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