The goal of MuSofT is to develop and provide learning units for software engineering classes that can be used by lecturers as
- basis for the choice of the teaching material
- examples how to present these topics using multimedia techniques
- construction kit for building own lectures
Today software engineering has not only become a core topic within computer science, but its teaching and learning seems to be quite suitable to be supported by multimedia techniques.
MuSofT covers a wide area of topics within software engineering like requirement analysis, modeling, architectures, patterns, information systems and management.
In the subproject 2.3 we develop a learning unit that allows lecturers to teach algorithms and data structures within software engineering on different possible levels by combining learning objects that cover
- slides for topics like
- overview over the area of algorithms and data structures
- constructs of programming languages (imperative, object oriented, functional)
- modeling of data structures with a subset of UML and systematic realization
- software architectures
- systematic testing
- invariants
- preconditions and postconditions
- Floyd-Hoare calculus and
- 'O' calculus
- example code for some algorithms and data structures in Ada (and optional in Java in some learning objects)
- a visualization environment that can run interactive exercises with continuous animation, play demonstrations on data structures, perform graphical debugging of own Java programs
- an environment for the graphical specification of new visualization environments (as described in the previous point) for new algorithms and data structures
This is accomplished by using the following tools and frameworks:
- PROGRES is a language and environment for the specification and realization of graph transformation systems; such graph transformations are used in our project as visual specification language for data structures and operations and algorithms on them.
- UPGRADE2 is a Java based framework that allows the usage of a PROGRES specification and runtime system from an own Java program, called an 'extension' in UPGRADE2.
- yFiles is a Swing based Java library for the easy implementation of graphs including concepts like node and edge listeners, layout algorithms and morphers.
Important differences to similar projects are:
- specification of algorithms on data structures by means of UML class diagrams and collaboration diagrams
- manual translation into graph transformations within PROGRES
- generation of interactive algorithm animations including several lessons for students
The following figures show an example slide from the static material and a screenshot from the dynamic material of subproject 2.3:

- Fig. 1 Many algorithms are introduced using a fictive truckage company 'Blitz AG'

- Fig. 2 Example of a running session within the interactive animation environment, here teaching an AVL Tree
For project partners and more information about the project see the MuSofT page.