Welcome & Organization
Estimated time to read: 41 minutes
On this site you will find some general information, a script and the exercises for the lab of the lecture Human Computer Interaction (HCI) of Prof. Dr. Ute Trapp at Hochschule Darmstadt, Germany. The workload of this module for a typical efficient working student with the corresponding pre knowledge is 5 ECTS, i.e. ~115h (about 3 weeks).
Objective of the Lab
In this lab you will ideate, validate, plan and develop your own mobile app. We expect you to apply your knowledge of OOAD/SC and the parallel course SE -- here, you find the lecture slides of both modules. You should also have a basic understanding of databases or take the parallel course.
focus
We focus on the users perspective.
Beyond technical skills and UX methods, this course focuses on crucial soft skills
- Effective Communication
- Giving and Receiving Feedback
- Problem-Solving as a Team
- Accountability and Responsibility
- Time Management and Agile Prioritization
Essentially, you'll learn to develop software professionally, reflecting on your process and sharpen your project management skills with GitLab as your central tool.
focus
During the semester you will develop a mobile app using Flutter.
However, the programming part accounts for a little less than 50% of the total grade. The implementation itself will be done in two labs only, the three other labs address user experience issues. But a new framework and programming language need more than two labs to learn it, hence you will work on little tasks on your own before you start to implement your project.
Course Structure
The course combines guided self-study with interactive lectures. You'll apply theory iteratively - first learning concepts, then using them in your project, and finally reflecting on how theory translated to practice.
graph TB
A[3 Weeks:
Theory & Concepts: Self-Study + Lectures] --> B[Fachgespräch 1:
Theory + Project Vision]
B --> C[10 Weeks: User Research → Design → Requirement Engineering → Implementation → Usability Evaluation + Documentation]
C --> D[1 Week: Final Polish]
D --> E[Fachgespräch 2:
Critical Reflection + Theory Applied to Practice]
The expert discussions are structured opportunities to demonstrate and deepen your understanding. Details in Moodle!
Organization, Schedule, and Tasks
A detailed schedule outlining the timing of lectures and practical sessions, as well as instructions on how to register for FG1, is available in Moodle. Additionally, Moodle hosts three individual assignments, each with specific deadlines.
no written exam
In this course, there is no final exam. Instead, you will work on a project in teams. Details regarding the grading criteria can be found in Moodle.
Project
You are free to choose a project of your interest. It is only requested that you address a real problem for users you have access to. Checkout Global Gamers Challenge or United Nations Goals.
You can also integrate Gemini AI or develop an AR application in Flutter. Note: I do not have any experience with gemini or AR in Flutter.
After the Fachgespräch 1 it is not possible to change the project idea.
Tip
Here are some hints of the students of the previous semester
- früher anfangen, Flutter zu lernen
- Eigeninitiative zeigen
- Termine mit Team vereinbaren
- nicht zu komplizierte Projektidee wählen
- offenes Labor besuchen
- stellt früh Fragen, dann kann man frühzeitig Fehler beheben
- einigt euch im Team, keine Einzelgänge
- erklärt euch den Code im Team
- niemals aufgeben bei Praktika
- es ist aufwändig und teilweise komplex, aber es lohnt sich
- Aber im Studium insgesamt war ein entscheidender Moment, als ich verstanden habe, dass ich Inhalte nicht sofort komplett verstehen muss sondern nur wissen sollte, dass sie existieren und ich sie bei Bedarf nachschlagen kann.
- Gerade in Kursen wie HCI oder SE beobachte ich oft, dass Studierende versuchen, alles sofort zu durchdringen, was eher zu Frust führt. Diese Erkenntnis hat für mich enorm den Stress reduziert und hilft mir dabei gezielter zu lernen.
- Auch wenn ein starkes Team verlockend für eine gute Note ist, hätte ich mich doch besser Leuten angeschlossen, die ähnlich schlecht wie ich programmieren, um nicht die ganze Zeit nur Bahnhof zu verstehen. Und das mit der Note war dann auch nicht so, weil ich nicht viel beitragen konnte ...
Project Structure
In this course you will develop a prototype application following a user-centered design process.
The project follows the structure
User Research → Requirements → Design → Implementation → Usability Evaluation
Your project portfolio documents this process and explains the reasoning behind your design decisions.
A strong project shows clear traceability between
research insights → requirements → design decisions → implementation → evaluation findings.
Backend
The development of a backend is not part of this course, hence do not invest time to do so. However, there are great tools and available APIs to use in your project.
- Geoapify: Places, POIs and Routing
- API generator: With the tool you may define one table with different columns, get a permanent URL and modify the data with REST-calls. Low-code backend seems to be similar, but I did not test it.
- bund - administration: APIs provided by the administration of Germany, e.g. waste management.
- OpenFoodFacts
- Public APIs Developers Can Use in Their Projects
- Big List of Free and Open Public APIs (No Auth Needed)
Supabase is a relational cloud database that can easily be used as a backend.
If you're interested in exploring NoSQL, Firebase is a great option for Flutter. It integrates seamlessly with Flutter, and there are many packages available to simplify access to Firebase in your Flutter applications. Feel free to use Firebase as your backend, but keep in mind that the thinking behind NoSQL databases differs from SQL, and it may take some time to get used to it. In Server - Firebase you will find good links to get started with Firebase.
That said, the backend is not the focus of this module, and efforts spent learning NoSQL will not be specifically acknowledged here. But remember, learning is always valuable! 😉
Lecture and theory
Please come prepared for the lecture (refer to Moodle for details). During the session, we will primarily focus on discussing specific topics, exploring different approaches, and either working on the lab itself or preparing tasks for the lab. I will also be doing some live coding throughout.
Although you will find a script in the theory part of this site, I expect you to come to the lectures and fill the gaps and to discuss different approaches. As cognitive learning requires reflection and discussion.
On this website, you will find the theory and requirements for completing the labs. In Moodle, you can find everything regarding the grading and the schedule.
Carrying out the Lab
You are expected to use your private notebook and a gitlab repository, which you will get after Fachgespräch 1.
Preparation and Follow-up
In each lab description you will find a preparation. It is essential that you have dealt extensively with that preparation before the lab date. You will notice that the tasks are formulated very openly. It's up to you how deeply you want to understand the topics. As usual, understanding comes with using, reading is not sufficient, reading is just the start;)
AI-Rules
Read and understand the policy defined in AI-Usage before the first lab!
Feedback
We’re happy to provide feedback—just ask!
Teamwork
Each of you will work on a project in groups of four or six at most. It is recommended to address either iOS or Android, not necessarily both -- web is mandatory. As in reality, it is up to you to distribute the workload fairly. However, if one or more do not contribute as planned, do not hesitate to contact me. Do so as early as possible -- and not after the grading. Work together as a team. Be reliable and fair to each other, and communicate. Read and follow the instructions of teamwork.
Communication
For general questions use the Moodle Forum. For individual questions use the lab, lecture and on demand consultation hour.
Do not hesitate to communicate with the lecturer in case of any problems or questions. A lively communication is explicitly encouraged.
ACKNOWLEDGMENT
This material was developed with the assistance of large language models (Anthropic, 2025; OpenAI, 2026). Specifically, AI tools were used to refine and optimize text for clarity and readability, and to generate selected examples. The overall structure and content were conceived and authored by myself; all AI-generated or AI-assisted content has been thoroughly reviewed and curated to ensure accuracy and quality.
Revising and updating this material for the upcoming semester required approximately 100 hours of work — even though early AI-assisted drafts were often promising, the iterative process of reviewing, correcting, and refining proved both demanding and, from my perspective, worthwhile.
The source code and infrastructure of the page as well as some content is based on the material of Ralf Hahn, Stefan Zander, Stefan Ruehl and others I am not aware of.
This website was created using MkDocs, Markdown und Visual Studio Code and rendered with Material Theme for MkDocs.