Course Summary

How can we effectively use functional programming techniques to build real-world software? This course will focus on using the OCaml programming language for this purpose. Topics covered include OCaml basics, modules, standard libraries, build tools, testing, idiomatic functional programming, specifying program properties, functional data structures and efficiency analysis, and monads and monad programming. Students will practice what they learn in lecture via functional programming assignments and a final project.