Designing Interactive Systems 2 (2020)

  Class Information

Lecture Wed, 9:30 - 12:00
  Zoom videoconferencing
Lab Mon, 14:30 - 16:00
  Zoom videoconferencing
Language English
Credits 6


Midterm Tue, Jun 9th, 8:15
Final PT1 Fri, Jul 31st, 12:00
Final PT2 Thu, Aug 20th, 12:00

This course builds on the foundations of Designing Interactive Systems I, and provides an understanding of how interactive multimedia systems are built from a computer science point of view. It covers the principles of event-based operating systems, window system architectures, input and output device technology for multiple modalities, as well as User Interface Management Systems and UI development toolkits and their relative merits. In the labs, you will develop a minimalistic window system yourself, but also learn to work with various real-life platforms, including Windows, macOS, Qt, and multimedia development environments, to develop user interfaces.

After this class, you will know how the technology behind interactive systems works. You can analyze, design, and implement graphical and other user interfaces for existing and emerging technologies, both for the desktop and beyond, and including interfaces for multimedia contents. Group-based, project-centered assignments and lab activities convey hands-on experience building user interfaces and foster project management and teamwork skills.

The class consists of weekly lectures, labs, reading assignments, project-based group assignments, and graded written midterm and final examinations.

This course has limited seating. You need to register to obtain a seat in this course.


Prof. Dr. Jan


For any questions about the class, please contact Sebastian Hueber, M.Sc. (in English or German).


  • Introduction

    • Lecture 1: Introduction, Card's Design Space

      Wed, Apr 8th

  • Window System Architecture

    • Lecture 2: Graphics Event Library, Base Window System

      Wed, Apr 15th

    • Lab 1: Organization, Window System Architecture

      Mon, Apr 20th

    • Lecture 3: Window Manager, User Interface Toolkit

      Wed, Apr 22nd

    • Lab 2: Window Manager, UITK Event Handling

      Mon, Apr 27th

  • X, Wayland & Smalltalk

    • Lecture 4: From X to Wayland, from Smalltalk to Squeak

      Wed, Apr 29th

    • Lab 3: Working with Smalltalk

      Mon, May 4th

  • macOS

    • Lecture 5: History of Macintosh Software, macOS Architecture

      Wed, May 6th

    • Lab 4

      Mon, May 11th

    • Lecture 6: Developing macOS Apps with Cocoa

      Wed, May 13th

    • Lab 5: Developing macOS Widgets

      Mon, May 18th

  • Windows

    • Lecture 7: Windows Architecture and UITKs

      Wed, May 20th

    • Lab 6: Developing UWP Apps

      Mon, May 25th

  • Cross-Platform Apps

    • Lecture 8: Design Cross-Platform Toolkits: Java & Qt

      Wed, May 27th

    • Lab 7: Cross-Platform Application Challenges

      Mon, Jun 8th

    • Midterm Exam

      Tue, Jun 9th

  • Post-Desktop Systems

    • Lecture 9: Window Systems for Smartphones, TVs and Beyond

      Wed, Jun 10th

    • Lab 8: Understanding Focus Navigation, AutoLayout in iOS Apps

      Mon, Jun 15th

    • Lecture 10: Window Systems for Smartphones, TVs and Beyond

      Wed, Jun 17th

  • Multimedia & Multimodal Interfaces

    • Lab 9: Decomposing User Interfaces

      Mon, Jun 22nd

    • Lecture 11: Multimedia and Multimodality

      Wed, Jun 24th

    • Lab 10: Exam Preparation

      Mon, Jun 29th

    • Lecture 12: Multimedia and Multimodality

      Wed, Jul 1st

  • Prototyping

    • Lecture 13: Software Prototyping

      Wed, Jul 8th

    • Lecture 14: Hardware Prototyping

      Wed, Jul 15th

  • Final Exams

    • Final Exam PT1

      Wed, Jul 31st

    • Final Exam PT2

      Sat, Aug 20th


Your grade will be calculated as follows:

Assignments 40%
Midterm 25%
Final Exam 35%


Assignments will be assigned weekly. You can find the assignments in the Moodle course room. Late assignments will not be accepted. The assignments are designed to be completed in the RBI Mac Lab in 4U15. You can work there according to the reservation plan. Of course, you can also use your own computer to work on the assignments. However, it will be your responsibility to ensure your program(s) run on the machines in the lab. Programs that do not run correctly on the lab machines will be graded as incomplete. Exceptions will be granted only for valid (i.e., medical) reasons.

Fields of Study

  • Informatik (M.Sc.)/Angewandte Informatik
  • Informatik (GYM+GS,SII)/Hauptstudium/B. Praktische Informatik
  • Technik-Kommunikation (M.A.)/2. Hauptfach (Technisches Fach)/Grundlagen der Informatik/isierung Informatik
  • TK 2. Fach-Grundlagen der Informatik (M.Sc.)/Wahlpflicht Informatik/Angewandte Informatik
  • Media Informatics (M.Sc.)/Multimedia Technologie
  • Media Informatics (M.Sc.)/Multimedia Technologie/in Aachen
  • Software Systems Engineering (M.Sc.)/Applied Computer Science
  • Software Systems Engineering (M.Sc.)/Practical Computer Science
  • Software Systems Engineering (M.Sc.)/Areas of Specialization/Media Informatics

Course Allocation and Registration Guide

Only 40 seats are available for this course. Priorirty to Master students of Computer Science, Media Informatics, Software Systems Engineering, and Technical Communication. The registration in RWTHonline opens March, 15th.

To get a seat in this course, follow these steps before April, 8th:

  • Register for the course in RWTHonline.
  • Sign the Declaration of Compliance, scan it and send it to This email address is being protected from spambots. You need JavaScript enabled to view it.. Please add the mail subject prefix [DIS 2].
  • Make sure that you have access to Moodle.

Registration results announcement on the morning after the first Lab (April, 21st).

Previous Offerings

SS19 - SS18 - SS17 - SS16 - SS15 - SS14 - SS13 - SS12 - SS11 - SS10 - SS09 - SS08 - SS07 - SS06 - SS05 - SS04

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.