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 associated teaching resources, are all free and open-source. It may be run from the public site (recommended - so you are always using the latest version), or installed on your school/colleage web server.
Elan is specifically designed for teaching programming in secondary schools and colleges, or first year of university. 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 properly. 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. In particular, we would like to thank: Nela Brockington, Charles Wicksteed, and Bernard Boase for regular help of this kind. If you are willing to assist in any way please get in touch...
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.