DIGITAL LIBRARY
AUTOMATIC GENERATION OF MODELING EXERCISES IN COMPUTER SCIENCE EDUCATION
Trier University of Applied Sciences (GERMANY)
About this paper:
Appears in: EDULEARN24 Proceedings
Publication year: 2024
Pages: 1304-1311
ISBN: 978-84-09-62938-1
ISSN: 2340-1117
doi: 10.21125/edulearn.2024.0436
Conference name: 16th International Conference on Education and New Learning Technologies
Dates: 1-3 July, 2024
Location: Palma, Spain
Abstract:
Introduction:
Models are an integral part of computer science, particularly in software engineering. They are used to deal with the complexity of problem domains as well as the resulting software systems.
Hence, students learn modeling in software engineering and other classes. Given textual descriptions of real-world scenarios, they create the respective models in a graphical notation. A common issue is to create meaningful, yet original practice problems.

We propose a system for the automatic generation of such exercises by systematically varying excerpts from a model library. Our system currently supports UML class diagrams and is integrated into a software development environment.

While there has been related work on generating exercises in algebra, logic, and low-level programming, these have in common that both the problems and sample solutions are more formalized and not related to a practical application domain.

Use Cases:
We consider two main use cases for our system:
1. Supporting teachers: An educator needs to provide modeling tasks for labs and exams. She has the system generate variants of excerpts from a model library. She chooses some of these for practice, and a similar one as an exam problem.
2. Self-service tool: Students can use a web-based tool to generate modeling problems for practice. Given the textual descriptions, they create the respective models and compare their results to the included sample solution.

Integration into Software Development Tools:
The generation of variants is based on a predefined model library. Related model elements can be marked and grouped into subsets. These can be used to configure the generation of variants. Firstly, the size of the generated models can be influenced by hiding or showing certain subsets. Secondly, logical conditions can be formulated on the model elements, thus representing dependencies. This allows, for example, to ensure that certain subsets only occur in combination or exclude each other.

Describing and Enumerating Variants of UML Models:
We use answer set programming to enumerate the variants: the user specifies rules on logical variables representing the subsets. The resulting logical problem is then passed to an answer set solver, which enumerates all possible answer sets, i.e., variable assignments that satisfy the rules. Each of these assignments represents a variant, which we then translate into a model.

Generating Textual Descriptions of UML Models:
In the current iteration, the textual description is generated from various templates, populated with the specific data of the current model. The main challenges here are to generate grammatically correct sentences and to formulate the text as varied and ultimately human as possible. The latter involves finding a fair compromise between providing a description that is as complete as possible and omitting information that can be inferred from the context.

Summary and Future Work:
Currently, our system supports the first use case: generating practice problems for teachers. Future work includes providing a self-service solution, as well as providing more control over the textual output, giving the user a choice between formal precision on the one hand and a more colloquial tone on the other.
Keywords:
Computer Science, Education, Software Development, Modeling.