About this online course

Overview

The Image

Course video

Broadly speaking, functional programming is a style of programming in which the primary method of computation is the application of functions to arguments. Among other features, functional languages offer a compact notation for writing programs, powerful abstraction methods for structuring programs, and a simple mathematical basis that supports reasoning about programs.

Functional languages represent the leading edge of programming language design, and the primary setting in which new programming concepts are introduced and studied. All contemporary programming languages such as Hack/PHP, C#, Visual Basic, F#, C++, JavaScript, Python, Ruby, Java, Scala, Clojure, Groovy, Racket, … and most recently Apple's new Swift language support higher-order programming via the concept of closures or lambda expressions.

This course will use Haskell as the medium for understanding the basic principles of functional programming. While the specific language isn't all that important, Haskell is a pure functional language so it is entirely appropriate for learning the essential ingredients of programming using mathematical functions. It is also a relatively small language, and hence it should be easy for you to get up to speed with Haskell.

Once you understand the Why, What and How that underlies pure functional programming and learned to "think like a fundamentalist", we will apply the concepts of functional programming to "code like a hacker" in mainstream programming languages, using Facebook's novel Hack language as our main example.

Details

What you'll learn:

  • Understand the Why, What and How that underlies pure functional programming, and learn to "think like a fundamentalist"
  • Apply the concepts of functional programming to "code like a hacker" in mainstream programming languages

Admission

This is a Massive Open Online Course (MOOC) that runs on EdX. This course assumes no prior knowledge of functional programming, but advises at least one year of programming experience in a regular programming language such as Java, .NET, Javascript or PHP.

  • Start date
    Future dates to be announced
  • Admission Deadline
  • Cost
    Free
  • Course length
    7 weeks
  • Estimated effort
    4 - 6 hours per week
  • Course code
    FP101x

Related courses