Students acquire comprehensive knowledge of techniques and concepts in distributed systems, particularly in the context of web applications. They understand the general architecture of the Internet and the Web and are able to analyze the requirements of web applications accurately. They can develop interactive web applications using HTML, CSS, and client-side JavaScript, as well as implement server-side code for application services, including authentication, cookies, and session management. In addition, they are able to identify potential security issues such as cross-site scripting and SQL injection and implement appropriate protective measures. These skills enable students to design, develop, and operate complex and secure web applications effectively.
Furthermore, students acquire competencies in designing user-friendly interfaces. They are familiar with the requirements of software ergonomics and the principles of usability in context, as well as with a user-centered design process. This process is reinforced through practical exercises and project work. They are capable of evaluating the usability of a product through tests and surveys, critically analyzing the results, and implementing targeted improvements. They understand the relevance and content of style guides and typographic design principles and apply them systematically in their design processes. Through teamwork in project groups, students also develop discursive skills that foster effective collaboration and professional communication throughout the development process.
The course provides a practical introduction to the concepts and paradigms of distributed systems using the example of web technologies and application development on the web. This initially involves an introduction of the world wide web with basic protocols such as HTTP and other standards in the context of the Internet. After that an introduction to the design and construction of web applications is provided. This includes firstly the frontend development with HTML5, CSS3 as well as client-side JavaScript and secondly the backend development with server-side JavaScript on the Node.js platform. Interactions between frontend and backend follow modern REST/HTTP and AJAX techniques. In addition, mechanisms for personalization with cookies and sessions as well as to authenticate users are presented. The course closes with a detailed discussion of web application security.
Upon completing this lecture class, students will acquire practical skills in the development and deployment of web applications, grounded in an understanding of distributed systems and web technologies. They will learn to proficiently use HTML5, CSS3, and JavaScript for frontend development, alongside server-side development with Node.js, enhancing their ability to create dynamic, full-stack web applications. Additionally, students will gain knowledge in implementing modern REST/HTTP and AJAX techniques for efficient frontend-backend communication, as well as in employing cookies, sessions, and authentication strategies for personalizing user experiences and ensuring application security. This comprehensive skill set will prepare students for a wide range of roles in web development and application design, equipping them with the necessary tools to address current and future challenges in the field.
In preparation for individual lecture units, the self-study of basic content is required by means of the accompanying literature (relevant chapters will be announced in the event). Further independent work concerns the follow-up of the lecture contents and the exam preparation.
An MMC-task which is standard practice is designed starting from task analysis up to the paper prototype. This prototype is subject - possibly over several iterations - of a usability test until the specified quality targets are reached.
Script, eye-tracker and user monitoring space in the Usability Lab Textbooks:
Supervised group work with presentation and discussion; test the usability of the prototype, prepare a test report with proposals for improvements.