A LEARNING SYSTEM SUPPORTING ACTIVE LEARNING FOR CONTINUING EDUCATION IN SOFTWARE ENGINEERING
Nowadays software engineering is essential for everyday things like cars, mobile phones or autonomous vacuum cleaner. Due to the modern development approaches and fast changing requirements, methods and tools for the development also have to undergo changes. Moreover, the so-called model driven development of application leads mostly to a lack of knowledge for deeper processes in a system. Therefore, continuing education of technical engineers in the area of software engineering and related topics is needed. Active Learning helps to achieve this goal. Active learning is generally defined as any instructional method that engages learners in the learning process. The core elements of active learning are learner activity and engagement in the learning process. Promoting active learning by working in real world engineering problems is supported by the presented Learning System which acts as a virtual environment for complex distributed systems with focus in software engineering. Our Learning System contains of two sub systems – the first subsystem represents a graphical application like the visualisation of a car cockpit including all its features f.e. blinking LEDs, speedometer or gear indicator. The second sub system represents stepwise complex processes of the operating system of the application from first sub system in a visualisation manner. By connecting use cases of the application and their related processes within the operating system, learners are enabled to understand the algorithm of the application itself as well as the processes in the service layers of the system and its dependencies to the application. The use case for activating the hazard light of a car for example would contain this sequence of actions in first sub system: pressing a button, signal processing, event triggering, message transfer and application update. This sequence would be connected to the model of hazard light in second sub system. Our Learning System supports learners in an Offline mode as well as in a Lab mode. The Lab Mode supports the integration of extra software which enables changes in the behaviour of the application. This mode was developed for classrooms where necessary hardware, development environments and licenses are normally available. Such hands-on experimentation or learning-by-doing is an essential part of the knowledge process. It enhances the curiosity and promotes self-learning skills. It is important to design activities that promote higher order thinking skills such as collaboration, critical thinking and problem-solving. The Offline mode in contrast enables the learner to use the systems in predefined workflows in the same system. Our Learning System is flexible due to generic interfaces between the sub systems, which enables a teacher easily to configure new scenarios for the learners without the need of adaptions in existing programs. Moreover, flexibility is supported due to a database containing abstract knowledge of the processes in the operating system. Currently our database contains widely used operating systems including thousands of functions, parameters and dependencies.