Bachelor Courses

Praktikum: Development of Context Sensitive Applications for Mobile Devices (winter-term)
Context-sensitive systems detect and process the situation they are in and, if necessary, adapt their behavior to the environment. This enables the development of dynamic systems in numerous areas in research and practice. The internship has a different focus each year.
In the current year, the internship revolves around digital social innovations to be implemented in the form of applications for mobile devices. Mobile devices are ubiquitous companions in our everyday lives, always within reach and in all areas of life. In the variety of apps and services for mobile devices, there also exist numerous applications that support social and sustainable goals. Examples include digital assistance systems, applications for recording pollution and waste accumulation in cities, apps for sharing items, and programs to support homeless people. Underlying all of these projects is the fact that digital innovation potential is used there to promote one or more of the 17 UN Sustainable Development Goals.
In addition to exciting use cases, the internship offers students the opportunity to gain knowledge in three relevant areas. First, the topics of context (definition, acquisition, processing) and context sensitivity are covered. Here, students learn how to integrate different context dimensions into applications. Second, the development of mobile applications is learned or deepened. Building on programming knowledge in the Java language, simple applications for Android end devices can be developed after a very short time. Development for iPhones is possible after consultation. Third, students are trained in the development of distributed systems. This includes the design of application protocols, the use of communication endpoints (sockets) and the handling of distributed clocks.
This year, the internship will be open to up to 20 students from other departments at the university, working in mixed teams to both devise a sustainable social business model and develop a working prototype of the application.
Note: The internship is offered as a block course, spanning 4 weeks in November and December. All deliverables are to be completed during this time. The dates will be announced in Stine.
STiNE course number: 64-158
MOBS: Modern Operating Systems (summer-term)
An operating system is an essential part of any computer. It manages resources such as processors, memory, hard disks and interaction with input and output devices. Thus, it enables the execution of user programs on the computer. This lecture offers a comprehensive insight into the tasks and functions of operating systems in general and deals with the special features of individual operating systems. The contents are always illustrated by practical examples and can be experienced independently in numerous programming examples and exercises.
The course covers the following areas, among others:
- Processes and threads
- CPU scheduling
- Concurrency and synchronization
- Interprocess communication
- Memory management
- Virtual memory
- Device management (input and output)
- Cloud computing and virtualization
Furthermore, the C programming language is introduced in the lecture and its use is demonstrated on various examples and operating system interfaces. This is done in the context of use cases for the topcis listed above. No previous knowledge of the C programming language is necessary. The learned knowledge is deepened by means of exercise sheets.
Two-week exercise sheets help to consolidate the lecture material. In addition, a voluntary tutorial is offered, in which students are supported in working on the exercise sheets and solutions are discussed.
STiNE course number: 64-215/216 (lecture & exercise)
Hackathon: Introduction to Complex Applications in Distributed Environments (summer-term)
In this practical course, the students' practical programming skills are to be improved and tried out in the independent programming of concrete examples in small group work.
The students are supposed to produce useful, creative and free software within a short period of time according to a given set of topics. Possible topics include the programming of distributed applications in the areas of mobile computing, cloud computing, augmented reality and peer-to-peer systems. Current trends are to be given special consideration.
First, a topic complex and its problems will be presented and motivated. The students get together in small groups (3-6 persons) and work on a sub-problem together. At the end of the course, the results are presented in groups. Further tasks are set with the small groups for the extracurricular independent work. Successful completion of the specified task is a prerequisite for passing the course.
STiNE course number: 64-633