Elan is a new programming language integrated into a unique development environment, both running as a single page app within a browser (Chrome is recommended, or Chromium on a Raspberry Pi). The language, environment, and teaching resources are all free. It may be run from the public site, installed on your school/colleage web server, or installed and run on a standalone device with no need for a network connection.
Elan is specifically designed for teaching programming in schools and colleges. It places emphasis not just on learning how to program, but learning how to program well.
Elan supports the three most widely recognised programming paradigms:
and supports them all well. For example, unlike in most 'multi-paradigm' programming languages, Elan functions are always pure and side-effect free - the most important pre-requisite for proper functional programming.
Elan was conceived by Richard Pawson in May 2023. The original design & development team consisted of Richard, Stefano Cascarini (lead technical developer), and John Stout. From the outset we have sought regular input and feedback from recognised experts in computer science education including: Michael Kölling and Simon Peyton Jones. We are also reliant on volunteers to test the prototypes, write example programs, and assist with documentation and resources. We would like to thank, in particular Nela Brockington, Charles Wicksteed, and Bernard Boase for regular help of this kind. If you are able to assist in any way please get in touch...
The Help button on the Elan IDE provides access to the reference manual online (opens in a separate tab).
The Elan language source code is managed on GitHub here.
If you have questions not answered in the documentation, feedback, or would like to help, please post a new thread on our Discussion forum here.