Teaching
This page provides an overview of our courses and related activities for students.
If you're interested in taking a specific course, please check CMLife to see if it is offered in your current semester and study program. Also see e-Learning for our detailed course pages, including material, organization and schedule, etc.
Hope to see you in a course soon!
General expectations and planning your semester with us
Here's some general info to help you plan your time and course selection in a specific semester:
- We expect you to attend every session in person in all our courses. Lecture sessions include active elements such as discussions, small group activities, and/or running and thinking about live demos and videos. Our lectures are typically not a traditional "talk" where you just listen. They only work with you and thus we expect you to be there and be active.
- Most of our courses offer a strong practical component via own projects. That is, you get time (and credits) for working on a self-chosen topic by practically applying the concepts from the lecture. The more you put into these projects, the more you get out of the course - and you take away something you've built to add to your portfolio (e.g. for your CV / job applications).
- This also means that you'll work continuously throughout the semester, not just a week ahead of the exam.
- One ECTS point translates into 30h of work, so for a 5 ECTS course in a ca. 12-week lecture period you can expect investing 10h+ each week. Past feedback shows that (successful) students indeed invest this time in our courses.
- AI tools and learning: We do not generally ban the use of AI tools in our courses but we strongly discourage the use of AI as a replacement of your own thinking. As a colleague put it: "You wouldn't go to the gym to attach a motor to the weights - so why go to uni to let AI write your assignments?" Our research group can support you in using AI constructively in your studies, since our research covers both building AI tools and critically examining their impact on users and outcomes - just ask us about how to (not) use AI to get the most out of your time in a course!
Practical Course (Winter): Creating Intelligent Interactive Systems with Android
In this practical course, you develop interactive systems that support users in everyday tasks by making use of "intelligent" features, such as recommendations, mobile device sensors, language models, and other kinds of Machine Learning / AI. You work in small teams.
The project covers developing concepts and implementing a prototype app.
This course requires strong programming skills (incl. object-oriented programming) but no experience with Android.
In the first weeks of the course, you'll create small apps like these to get started with Android (e.g. UI, sensors, web access, handling input, app architecture). You'll then create your own app in your project!
Lecture (Winter): User-Centered Design
In this lecture, you develop your understanding of human-computer interaction with a strong focus on designing interactive systems, inlcuding a practical group project. The learning goals are:
- Theoretical understanding of the design process for interactive systems, including its empirical methods.
- The ability to carry out a user-centered design process for an interactive system.
Some examples of what we'll cover:
- User-centered design process (models, procedures, goals)
- Data collection (interviews, questionnaires, observations, experience sampling, etc.)
- Creativity techniques (sketching, prototypes, etc.)
- Concepts for designing understandable user interfaces (affordances, conceptual models, mappings, constraints, etc.)
- Evaluation and data analysis: qualitative (e.g. Grounded Theory) and quantitative (e.g. experiment design)
What is "Design" here?
This course covers the overall design of an interactive system (e.g. how you can interact with it, how it reacts, how it is embedded into a workflow, etc.) and not only visual design (how it looks). Crucially, we will learn how to make these design decisions based on empirical insights into the context of use and target group. In other words, this course is not about "choosing colours for buttons" but about informing all aspects of design by systematically engaging with people who will later be affected by the designed technology.
This course does not involve programming.
The user-centered design process according to the "double diamond model". Note how half the time is reserved for finding the actual problem - which might be very different from what you (or your client) first believes that the problem is!
Lecture (Summer): Intelligent User Interfaces
In this lecture, you develop an advanced understanding of intelligent user interfaces and practical skills to build and evaluate them. Intelligent user interfaces are user interfaces that leverage computational capabilities (e.g. data analysis, algorithms, optimization, machine learning, AI) for the benefit of the user. This is not limited to the current wave of systems that use large language models and prompting but we'll of course cover this topic as well.
The learning goals are:
- Understanding of fundamental concepts, application areas, and benefits and challenges of intelligent user interfaces
- Ability to apply specific approaches and methods in the design, implementation and evaluation of intelligent user interfaces
- Ability to analyse existing intelligent user interfaces
Some examples of what we'll cover:
- Recommender systems and interacting with them
- Interaction with generative systems
- Conversational user interfaces (e.g. chatbots, voice assistants)
- Interaction with text (e.g. personalised keyboards, text suggestions)
- User modelling and adaptive UIs
- Computational UI design and evaluation (e.g. layout optimization)
This course expects solid programming skills in a "tech stack" of your choice.
A mapping of user interface aspects and needs to typical computational capabilities that can help address them in the interest of the users. In the lectures, we'll discuss the involved concepts so you can build your own IUI in your project!
Lecture (Summer): Information Visualization
In this lecture, you develop a systematic understanding of information visualization and practical skills to create and analyse them. The learning goals are:
- Understanding of fundamental concepts, application areas and related data analyses of information visualization
- Ability to design and implement useful information visualizations for concrete datasets, analyses and research questions
- Ability to analyse existing information visualizations
Some examples of what we'll cover:
- Introduction to Infovis (e.g. motivation, examples, core concepts)
- Specific visualizations and data types (e.g. multi-dimensional, graphs, hierarchies and trees, time series, text-related, etc.)
- Interaction with information visualizations
- Presentation, integration and evaluation of information visualizations
- Practical implementation of information visualizations (using Python and common libraries for this)
This course expects basic programming skills in Python.
Creating great visualizations requires choosing the right chart type for your data (e.g. bar chart) and the right "marks & channels": Which data dimension should be shown via which visual aspect? You'll also learn to create own plots in Python!
Bachelor & Master Theses
More information on theses at our group is available here.
Event: HCI Day
At the end of each semester, we organise an "HCI Day" where students from our courses get the chance to present their projects to others.
The event involves 1-minute project pitches, poster presentations, and live demos.