Bibliography | Fuksa, Mario: Redesigning the Hamster Simulation. University of Stuttgart, Faculty of Computer Science, Electrical Engineering, and Information Technology, Master Thesis No. 106 (2021). 85 pages, english.
|
Abstract | Teaching programming can be performed in many different ways, such as focusing on object-oriented concepts in first place combined with mini-worlds like the hamster simulator. At the University of Stuttgart, such a solution is provided with the focus on teaching Java. But now the need to teach C++ in a similar way is also intended. To solve this necessity, a model-driven solution is proposed to model mini-worlds and generate code into multiple programming languages like Java or C++. The proposed solution covers requirements based on the existing approaches relevant for teaching programming at the University of Stuttgart at the Institute of Software Engineering. Based on these requirements, a modeling environment is designed which provides a framework part and a concrete mini-world simulator part. Technically, the modeling environment is based on the Eclipse platform and makes use of research related tooling for input modeling, model-to-model transformations and code generation. Generated simulators are based on a modular architecture, which enables high automation for tests and independence of concrete third-party frameworks. Further, the interface provided for students is based on object-oriented principles and contract-based design, including formalized pre- and postconditions defined for commands. By providing a metamodel to define mini-worlds in a generic way, the proposed solution can be adapted for modeling of different mini-worlds. In addition, a code generator is developed to transform adjusted intermediary models to concrete source code. By achieving that most complexity is handled by model-to-model transformations, this allows also to adapt the solution for further programming languages. Finally, different aspects for the proposed solution are evaluated. On the one hand, the combination of object-oriented teaching concepts with model-driven software development is evaluated. On the other hand, the use of existing ideas such as the generation of graph transformations at Fujaba or technologies such as Henshin is discussed. The functionality of the solution is shown by adapting it to the Java and C++ programming languages. Furthermore, another mini-world is adapted in addition to the hamster simulator with Kara the ladybug.
|