Mathematical Foundations of Computer Science
About
- Module: Mathematical Foundations to Computer Science (CH-233)
- Semester: Fall 2024
- Prerequisites: None
- Instructor: Jürgen Schönwälder
- Office Hours: Monday, 11:15-12:30 (Research I, Room 87)
- TA (Group A): Babayev, Gazanfar
- TA (Group B): Borovlev, Petr
- TA (Group C): Cprljakovic, Bogdan
- TA (Group D): Mitov, Rumen Valentinov
- TA (Group E): Nuredini, Kejsi
- TA (Group F): Paniukhin, Nikita
- TA (Group G): Valean, Andrei-Gheorghe
- TA (Group H): Valladares, Zaara
- Lecture: Tuesday, 11:15-12:30 (RLH-172)
- Lecture: Friday, 08:15-09:30 (RLH-172)
- Tutorial: Friday, 09:45-11:00 (RLH-172)
- TA Tutorial: Wednesday, 10:00-11:00 (West Hall, Seminar Room 2)
- TA Tutorial: Friday, 19:00-20:00 (Research II, Lecture Hall)
- 1st Module Exam: Friday, 2024-12-20, 12:30-14:30, IRC Eastwing + Conference Hall
- 2nd Module Exam: Wednesday, 2025-01-22, 12:30-14:30, TBD
Content and Educational Aims
The module introduces students to the mathematical foundations of computer science. Students learn to reason logically and clearly. They acquire the skill to formalize arguments and to prove propositions mathematically using elementary logic. Students are also introduced to fundamental concepts of graph theory and elementary graph algorithms.
Operating Systems
About
- Module: Operating Systems (CO-562)
- Semester: Fall 2024
- Prerequisites: Algorithms and Data Structures (CH-231)
- Instructor: Jürgen Schönwälder
- Office Hours: Monday, 11:15-12:30 (Research I, Room 87)
- TA (Group A): Borsos, Matheas-Roland
- TA (Group B): Dominguez Ham, Santiago
- TA (Group C): Jovanoska, Dora
- TA (Group D): Kenesbek, Serzhan
- TA (Group E): Murza, Dmytro
- Lecture: Tuesday, 14:15-15:30 (ICC-East Wing)
- Tutorial: Tuesday, 15:45-17:00 (ICC-East Wing)
- Lecture: Thursday, 15:45-17:00 (RLH-172)
- TA Tutorial: Thursday, 19:30-20:30 (West Hall 2)
- 1st Module Exam: Thursday, 2024-12-12, 17:00-19:00, IRC Eastwing + Conference Hall
- 2nd Module Exam: Thursday, 2025-01-30, 17:00-19:00, TBD
Content and Educational Aims
This module introduces concepts and principles used by operating systems to provide programming abstractions that enable an efficient and robust execution of application programs. Students will gain an understanding of how an operating system kernel manages hardware components and how it provides abstractions such as processes, threads, virtual memory, file systems, and inter-process communication facilities. Students learn the principles of event-driven and concurrent programming and the mechanisms that are necessary to solve synchronization and coordination problems, thereby avoiding race conditions, deadlocks, and resource starvation. The Linux kernel and runtime system will be used throughout the course to illustrate how key ideas and concepts have been implemented and how application programs can use them.
Student Thesis Topics (2025)
I will supervise BSc thesis projects in Spring 2025. Since I have limited supervision capacity, I typically take the first N students following more or less a first-come, first-served strategy. I like to form clusters of students working on related topics, and I organize weekly (online) meetings with these clusters. We use a collaborative note taking tool to track progress. The work itself is taking place in two phases. In the first phase, students will dive into the state of the art of their topic, resulting in a state of the art report. I will review these reports and provide feedback. In the second phase, students focus on their own contribution, and they will finally write their thesis. The thesis naturally builds on the state of the art report and extends it with the work describing the contribution. Before submitting the thesis, students have to present and defend their work in the BSc thesis seminar. The seminar grade is given for the presentation. The thesis grade is given for the thesis report, the technical accomplishments, including the work organization (regular participation in weekly meetings and steady progress).
Master Thesis in Computer Science and Software Engineering
About
- Module: Master Thesis in Computer Science and Software Engineering (MCSSE-THE-01)
- Semester: Spring 2025
- Instructor: Peter Baumann
- Instructor: Andreas Birk
- Instructor: Dmitry Kropotov
- Instructor: Francesco Maurelli
- Instructor: Bertrand Meyer
- Instructor: Manuel Oriol
- Instructor: Mauro Pezzè
- Instructor: Samaneh Rashidibajgan
- Instructor: Jürgen Schönwälder
- Instructor: Jakob Suchan
- Instructor: Markus Wenzel
- Prerequisites: None
Timeline
Activity | Deadline |
---|---|
Kickoff meeting | TBD |
Supervisor and topic selection | 2025-02-14 (Friday) |
Presentations | 2025-05-14 (Wednesday) |
Thesis submission | 2024-05-20 (Tuesday) |
Presentations (extension) | 2025-06-25 (Wednesday) |
Thesis submission (extension) | 2025-06-30 (Sunday) |
Presentations (exceptional extension) | 2025-08-18 (Monday) |
Thesis submission (exceptional extension) | 2025-08-22 (Friday) |
We expect students to take the initiative and to drive the process. This in particular includes being active in finding a thesis topic and a supervisor. In general, A thesis may arise
Bachelor Thesis and Seminar in Computer Science
About
- Module: Bachelor Thesis and Seminar in Computer Science (CA-CS-800)
- Semester: Spring 2025
- Instructor: Joaquin Aguado
- Instructor: Peter Baumann
- Instructor: Andreas Birk
- Instructor: Mathias Bode
- Instructor: Fangning Hu
- Instructor: Kirill Krinkin
- Instructor: Dmitry Kropotov
- Instructor: Francesco Maurelli
- Instructor: Samaneh Rashidibajgan
- Instructor: Jürgen Schönwälder
- Instructor: Jakob Suchan
- Instructor: Dmitry Vetrov
- Instructor: Suhail Yousaf
- Prerequisites: 30 CP of advanced modules earned, at least 20 CP from modules in the major
Timeline
Activity | Deadline |
---|---|
Kickoff meeting | 2025-02-03 (Monday) |
Supervisor and topic selection | 2025-02-17 (Monday) |
Presentations | 2025-05-12 (Monday) |
Presentations | 2025-05-13 (Tuesday) |
Presentations | 2025-05-14 (Wednesday) |
Thesis submission | 2025-05-20 (Tuesday) |
Thesis submission (extensions) | 2025-06-30 (Monday) |
We expect students to take the initiative and to drive the process. How self-organized students work is part of the assessment. In terms of effort, please note that 1 CP equals ~25 hours, i.e., the module has an average workload of 375 hours.
Operating Systems
About
- Module: Operating Systems (CO-562)
- Semester: Fall 2023
- Prerequisites: Algorithms and Data Structures (CH-231)
- Prerequisites: Introduction to Computer Science (CH-232)
- Instructor: Jürgen Schönwälder
- Office Hours: Monday, 11:15-12:30 (Research I, Room 87)
- TA (Group A): Muratovic, Haris
- TA (Group B): Perial, Razvan Andrei
- TA (Group C): Stefanovska, Tea
- TA (Group D): Stratulat, Cristian-Mihai
- Class: Tuesday, 14:15-15:30 (ICC-East Wing)
- Class: Tuesday, 15:45-17:00 (ICC-East Wing)
- Class: Thursday, 15:45-17:00 (RLH 172)
- Tutorial: Thursday, 18:00-19:00 (East Hall 1)
- 1st Module Exam: Saturday, 2023-12-16 12:30-14:30 (SCC Hall 1-2)
- 2nd Module Exam: Monday, 2024-01-22 14:00-16:00 (ICC East Wing)
- 3rd Module Exam: Friday, 2024-08-23 11:00-13:00 (R1-53)
Content and Educational Aims
This module introduces concepts and principles used by operating systems to provide programming abstractions that enable an efficient and robust execution of application programs. Students will gain an understanding of how an operating system kernel manages hardware components and how it provides abstractions such as processes, threads, virtual memory, file systems, and inter-process communication facilities. Students learn the principles of event-driven and concurrent programming and the mechanisms that are necessary to solve synchronization and coordination problems, thereby avoiding race conditions, deadlocks, and resource starvation. The Linux kernel and runtime system will be used throughout the course to illustrate how key ideas and concepts have been implemented and how application programs can use them.
System Security
About
- Course: System Security (MCSSE-CYB-02)
- Semester: Spring 2024
- Prerequisites: Cryptography (MCSSE-CYB-01)
- Instructor: Jürgen Schönwälder
- Office Hours: Monday, 11:15-12:30, R.1-87
- Class: Wednesday, 14:15-15:30, RLH Seminar Room
- Class: Friday, 15:45-17:00, RLH Seminar Room
- 1st Module Exam: Tuesday, 2024-05-28 12:30-14:30 (East Hall 6)
- 2nd Module Exam: Thursday, 2024-08-29 11:00-13:00 (East Hall 4)
Content and Educational Aims
This module focuses on system level security aspects of computing systems. The module starts with investigating attacks on the microarchitecture of computing systems, such as attacks to gain information from side channels targeting caches. It then introduces trusted execution environments that use hardware isolation mechanisms to provide protected storage for keys and to bootstrap the integrity of bootloaders and the loaded operating systems. Students learn about the different levels of isolation that can be achieved using various types of hypervisors or sandboxing mechanisms. Techniques that can be used to protect a system against misbehaving code and malware are introduced. Students will gain knowledge how protected data storage components can be provided at the system level and how systems can offer support for collections of (distributed) authentication mechanisms. Finally, the module will discusses how authorization mechanisms are realized in the different system software components and how they can be used to define effective security policies.
Secure and Dependable Systems
About
- Course: Secure and Dependable Systems (CO-566)
- Semester: Spring 2024
- Prerequisites: Operating Systems (CO-562)
- Instructor: Jürgen Schönwälder
- Office Hours: Monday, 11:15-12:30, R.1-87
- TA: Perial, Razvan Andrei
- TA: Stefanovska, Tea
- Class: Tuesday, 15:45-17:00, Lecture Hall Research I
- Class: Thursday, 15:45-17:00, Lecture Hall Research I
- 1st Module Exam: Tuesday, 2024-05-28 16:00-18:00 (ICC West Wing)
- 2nd Module Exam: Thursday, 2024-08-29 14:00-16:00 (R1-53)
Content and Educational Aims
This module introduces students to the fundamentals of computer security and techniques used to build and analyze dependable systems. This is an important topic given that computer systems are increasingly embedded in everyday objects (such as light bulbs) and taking over important control functions (such as driving cars). Furthermore, computer systems control complex communication systems that form critical infrastructure of the modern globalized world. Proper protection of information requires an applied understanding of cryptography and how cryptographic primitives are used to secure data and information exchanges. The aim of this module is to make students aware of what types of security vulnerabilities may arise in computing systems and how to prevent, identify, and fix them.
Bachelor Thesis and Seminar in Computer Science
About
- Module: Bachelor Thesis and Seminar in Computer Science (CA-CS-800)
- Semester: Spring 2024
- Instructor: Peter Baumann
- Instructor: Andreas Birk
- Instructor: Mathias Bode
- Instructor: Francesco Maurelli
- Instructor: Dmitry Kropotov
- Instructor: Jürgen Schönwälder
- Instructor: Jakob Suchan
- Instructor: Suhail Yousaf
- Prerequisites: 30 CP of advanced modules earned, at least 20 CP from modules in the major
Timeline
Activity | Deadline |
---|---|
Kickoff meeting | 2024-02-05 (Monday) |
Supervisor and topic selection | 2024-02-15 (Thursday) |
Presentations | 2024-05-13 (Monday) |
Presentations | 2024-05-14 (Tuesday) |
Presentations | 2024-05-15 (Wednesday) |
Thesis submission | 2024-05-20 (Monday) |
Presentations (extension) | 2024-06-26 (Wednesday) |
Thesis submission (extension) | 2024-06-30 (Sunday) |
Presentations (exceptional extension) | 2024-08-19 (Monday) |
Thesis submission (exceptional extension) | 2024-08-22 (Thursday) |
We expect students to take the initiative and to drive the process. How self-organized students work is part of the assessment. In terms of effort, please note that 1 CP equals ~25 hours, i.e., the module has an average workload of 375 hours.
Student Thesis Topics (2024)
I will supervise BSc thesis projects in Spring 2024. Since I have limited supervision capacity, I typically take the first N students following more or less a first-come, first-served strategy. I like to form clusters of students working on related topics, and I organize weekly (online) meetings with these clusters. We use a collaborative note taking tool to track progress. The work itself is taking place in two phases. In the first phase, students will dive into the state of the art of their topic, resulting in a state of the art report. I will review these reports and provide feedback. In the second phase, students focus on their own contribution, and they will finally write their thesis. The thesis naturally builds on the state of the art report and extends it with the work describing the contribution. Before submitting the thesis, students have to present and defend their work in the BSc thesis seminar. The seminar grade is given for the presentation. The thesis grade is given for the thesis report, the technical accomplishments, including the work organization (regular participation in weekly meetings and steady progress).