MuLE - a multiparadigm programming language for education
project leader: Prof. Dr. Bernhard Westfechtel
contact person: Dr. Nikita Dümmel
projectstart: 2016 financier:
2016-2017 funding via federal projects Qualitätsoffensive Lehrerbildung and MINT Lehramt Plus.State funding since march 2017.
DESCRIPTION
During the course of the CS1 lecture Concepts of Programming students are taught basic concepts of procedural, object-oriented and functional programming paradigms. Java was chosen as the programming language to demonstrate code examples due to its importance in the industry, coverage of the three paradigms mentioned above and a higher abstraction level compared to languages like C or C++.
Using Java however leads to certain pedagogical issues that make it harder to convey the programming concepts. Java is a object-centered language, thus making it impossible to demosntrate procedural or functional concepts without relying on object-oriented language constructs. Furthermore the language has grown large over time and can be overwhelming for beginner students. Finally some language constructs are misleading from the perspective of an instructor, e.g. the use of '=' symbol as an assignment operator. These and others are the reasons not to use Java or other existing programming or scripting languages in the field of education.
The goal of the project is therefore to develop a multiparadigm programming language designed specifically for education. The language must be easy to learn and offer a minimal amount of mostly orthogonal language constructs while still being capable to demonstrate the contents of the CS1 and CS2 lectures.
STATUS
The three planned paradigms are fully supported. We are currently working on optimizing the user interface of Eclipse to be used with MuLE. We are also planning to release the contents of the preliminary course on YouTube.
The documentation is included in the dissertation: https://epub.uni-bayreuth.de/6408/
Update Site (Eclipse for Java Developers 2019 or higher): http://132.180.192.13/mule/update/