Please enable JavaScript to use CodeHS

Functional Programming in Elm

Elm is a programming language that is used to build web apps. This course uses Elm to to develop a deeper understanding of core programming concepts; programming concepts that apply to any future language learned. The course explores these core programming concepts through the lens of functional programming, an under utilized style of programming which has been gaining traction in industry in recent years.

For those not familiar with functional programming, this course will fundamentally change the way in which you view programming.

Who is it for?

This course assumes beginner programming experience. Students can take this course as a secondary introductory course that explores a new language, after our Introduction to Computer Science in JavaScript.

Meet Your Instructor

John Kelly

As a Software Engineer at CodeHS, John is always searching for the simplest and most fun way to build cool things, and he believes Elm is the answer.

What do you Learn?

In this course, students learn the fundamental concepts of programming - concepts that can be applied in the study of any programming language. Below is a summary of the material covered in each module:

Module Description
The Basics:Learn the basics of programming in Elm.
Functional Abstraction:Learn how to utilize the power of higher order functions.
Data Abstraction:Learn more sophisticated strategies for manipulating collections of data.
Modularity and State:Build interactive programs using the Elm Architecture.
Metalinguistic Abstraction:Use the skills you've learned to design your very own programming language.

The course is heavily influenced by the Structure and Interpretation of Computer Programs previously taught at MIT.


Interested in Functional Programming in Elm? This course is not yet released, but you can click the button to sign up for email updates about the course.

I'm Interested!