Lehre

Mikrocomputertechnik

Ist es überhaupt noch möglich oder nötig einen modernen Computer auf der Bitebene zu verstehen? Diese Frage habe ich mir bei der Übernahme der Vorlesung Mikrocomputertechnik gestellt. Kurz gesagt geht es in dieser Vorlesung um die hardwarenahe Programmierung eines Computers. Themen sind dabei zum Beispiel "Bitweise Operatoren", die Anbindung von Sensoren, aber auch ein Einstieg in die die objektorientierte Programmierung und grafische Benutzeroberflächen. Bei der Ausgestaltung ergaben sich dabei interessante Parallelen. So ähneln zum Beispiel Events in einer grafischen Benutzeroberfläche in vielerlei Hinsicht Interrupts. 

Für das Labor haben wir eine spezielle Hardware entwickelt, die wir den Internet-of-Things-Computer nennen. Hier können Bits und Bytes im eigentlichen Sinne "begriffen" werden.

 

Hardwarenahe Programmierung

Was ist der Unterschied zwischen einem Anwendungsprogramm und einem Treiber? Was geschieht, wenn in einem modernen Computersystem auf die Hardware zugegriffen wird. Wenn Sie diese oder ähnliche Fragen schon immer interessiert haben sind Sie im Fach "Hardwarenahe Programmierung" genau richtig! Anhand von vielen Beispiele nähern wir uns Themen wie Interrupts, High Resolution Timer und Kernel Threads. Das Labor besteht in der ersten Hälfte des Semesters aus Laboraufgaben, in der zweiten Hälfte haben Sie die Gelegenheit an einem eigenen Projekt zu arbeiten. Als Hardwareplattform nutzen wir den „Raspberry-PI“, den wir durch verschiedene selbst konstruierte Anbauten ergänzen.

Embedded Systems und Internet of Things AG

Dieses projektbasierte Modul führen Prof. Patz und Prof. Acker gemeinsam. Dabei werden Projekte aus dem Bereich "Eingebettete Systeme" und dem "Internet der Dinge" durchgeführt. Die Student*Innen arbeiten weitgehend selbständig. Vom selbstfahrenden Auto bis zum internetbasierten Pflanzenpflegesystem entstehen in jedem Semester spannende neue Ideen.

Orientierungsmodul Fördekompass (Fall Elektrotechnik)

Lust machen auf Elektrotechnik! Das ist das Ziel dieses Fallbeispiels aus dem Orientierungsmoduls des Förde-Kompasses. Vermittelt werden elementare Programmierkenntnisse mit Hilfe des Arduinos. Außerdem wird mit Hilfe der Puls-Weiten-Modulation(PWM) ein Motor und verschiedene Servo-Motoren angesteuert. Ein Farbsensor erkennt wird ausgelesen und es wird die Farbe eines M&M erkannt. Diese werden dann farbig sortiert. Der Laboraufbau existiert acht Mal, sodass Teams miteinander in Wettstreit treten können, was die Sortiergenauigkeit und die Geschwindigkeit angeht.

3D Date Generation and Processing

After a successful completion of this module students

  • are able to generate, process and visualize three dimensional data. They can argue the mathematics and their application as well as the rendering pipeline of a modern system like a PC. The students can justify the mathematical complexity and evaluate the necessity of a hardwareimplemented rendering pipeline.
  • are competent to explain three dimensional sensors and graphics as an emerging field in computer science and engineering, like time-of-flight systems which capable of measuring three-dimensional points clouds fast and easily.
  • The students can use the most common techniques and are be able to compare different approaches to choose the most appropriate for a given application.
  • are in the position to generate own programs by using newly learned topics. The students can diskuss a deeper meening of three dimensional computer graphics. They are able to think their way into projects and are able to support colleagues completing their tasks.
  • can also analyse mathematically and computational challenging topics and applications. Students can choose and compare challenging algorithms and APIs.

Application Development in C#

After a successful completion of this module students

- are proficient with object orientated programming techniques (C#).
- are able to evaluate simple data types and the differences to other popular languages like JAVA.
- can explain the use of lambdas and extension methods.
- are able to choose the right level of complexity for a given problem.

- can evaluate the latest developments of Graphical User Interfaces using the example of the Windows Presentation Foundation.
- can generate own programs using latest programming techniques.
- can discuss what it takes to succeed in working in a software development environment.
- are able to justify additional effort and complexity to a future employer.

- explain the very concept of application development using object orientated methods to illustrate how it can be archived using modularization.
- are qualified to create software on two different levels, the core functionality and user interface, using collaboration between different team members.

- can compare between the Model-View-Controller(MVC) and the Model-View/View-Model (MVVM) and argue some surprising limitations.
- are be able to judge for him- or herself which techniques to use in a professional work environment.