25 September 2026
Write a program in Python, VB, C#, and Java, SIMULTANEOUSLY with Elan - CAS Secondary event
Learning programming across languages: exploring Elan 2
What if pupils could write a program in Python and see the equivalent code appear simultaneously in Java, C# and VB.NET?
That eye-catching demonstration opened a recent CAS online session exploring Elan 2, a programming environment designed specifically for learning. Richard introduced the beta version of the tool and demonstrated how it applies ideas developed through the original Elan programming language to established languages used in computing education.
While seeing the same program in four languages provides an intriguing starting point, the session raised a broader question for computing educators: how can the design of a programming environment help pupils understand the concepts behind their code?
Looking beyond the syntax of one language
Elan 2 can display the same program in several programming languages, including Python, Java, C# and VB.NET. During the session, Richard demonstrated this by constructing a factorial function while showing its representation across four languages.
For learners, this potentially provides a useful way to distinguish between the underlying programming concept and the particular syntax used to express it.
That could be especially interesting when pupils encounter a second programming language. Instead of treating each language as an entirely new set of rules, they can begin to recognise familiar constructs and see how the same ideas are represented differently.
The demonstration in the recording gives a much clearer sense of how this works in practice.
Making important concepts explicit
Another theme was the distinction between functions and procedures.
Richard demonstrated how Elan 2 makes learners specify whether they are creating a function, which returns a value, or a procedure, which performs an action that can have side effects. The environment then restricts what pupils can do accordingly.
For example, a function cannot simply call a procedure with side effects, and the result of a function must be used rather than left as what Richard described as a "hanging function".
These constraints are intended to make programming concepts visible to learners and prevent some common errors before they become difficult-to-diagnose bugs. It is an interesting example of an environment being designed around pedagogy rather than simply reproducing the freedoms of a professional development tool.
A learning environment, not a professional IDE
Richard was also clear about what Elan 2 is and what it isn't.
It is intended as a learning environment, rather than a professional software development environment. It has its own libraries rather than allowing arbitrary libraries to be imported, although code can be exported to another environment and developed further there.
That distinction raises a useful question for computing teachers. The best environment for learning programming concepts does not necessarily need to offer everything that a professional programmer would expect. Reducing complexity, constraining certain choices and making concepts explicit can itself be part of the teaching approach.
At the same time, the session demonstrated that the environment can support more substantial programming and different paradigms, including procedural, object-oriented and functional approaches.
Watch the full session
The recording contains much more than we have covered here. In particular, Richard demonstrates Elan 2 in action, explains the thinking behind its editor and programming model, explores examples of common pupil misconceptions, and answers questions about libraries and using the environment for larger projects.
For computing teachers interested in programming pedagogy, language transition or the design of learning environments, the demonstration is well worth seeing in full.
Discussion
Please login to post a comment