Teaching

Master Thesis in Computer Science and Software Engineering

About

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)

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 750 hours.

Introduction to Computer Science

About

  • Module: Introduction to Computer Science (CH-232)
  • Semester: Fall 2023
  • Prerequisites: None
  • Instructor: Jürgen Schönwälder
  • Office Hours: Monday, 11:15-12:30 (Research I, Room 87)
  • TA (Group A): Aksay, Enes Yusuf
  • TA (Group B): Borsos, Matheas-Roland
  • TA (Group C): Dobrescu, Ana-Maria
  • TA (Group D): Konstantinovikj, Darko
  • TA (Group E): Madriaga, Ivanna Judea
  • TA (Group F): Shopov, Georgi Krasimirov
  • Class: Tuesday, 11:15-12:30 (RLH 172)
  • Class: Friday, 08:15-09:30 (RLH 172)
  • Class: Friday, 09:45-11:00 (RLH 172)
  • General Tutorial: Tuesday, 20:00-21:00 (West Hall 2)
  • Haskell Tutorial: Wednesday, 21:00-22:00 (West Hall 2)
  • General Tutorial: Thursday, 20:00-21:00 (West Hall 2)
  • 1st Module Exam: Wednesday, 2023-12-20 09:00-11:00 (SCC Halls 1-2 and 3-4)
  • 2nd Module Exam: Tuesday, 2024-01-23 09:00-11:00 (ICC East Wing)

Content and Educational Aims

The module introduces fundamental concepts and techniques of computer science in a bottom-up manner. Based on clear mathematical foundations (which are developed as needed), the course discusses abstract and concrete notions of computing machines, information, and algorithms, focusing on the question of representation versus meaning in Computer Science.

Secure and Dependable Systems

About

  • Course: Secure and Dependable Systems (CO-566)
  • Semester: Spring 2023
  • Prerequisites: Operating Systems (CO-562)
  • Instructor: Jürgen Schönwälder
  • Office Hours: Monday, 11:15-12:30, R.1-87
  • TA: Bodaveli, Nikolozi
  • Class: Tuesday, 15:45-17:00, RLH-172 Conrad Naber Lecture Hall
  • Class: Thursday, 15:45-17:00, RLH-172 Conrad Naber Lecture Hall
  • 1st Module Exam: 2023-05-23 18:00-20:00, ICC East Wing
  • 2nd Module Exam: 2023-08-29 14:00-16:00, Research I, Lecture Hall

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.

Operating Systems

About

  • Module: Operating Systems (CO-562)
  • Semester: Fall 2022
  • Instructor: Jürgen Schönwälder
  • Office Hours: Monday, 11:15-12:30 (Research I, Room 87)
  • TA (Group A): Aydin, Ahmed Hamza
  • TA (Group B): Eshkiki, Hassan
  • TA (Group C): Eshkiki, Hassan
  • TA (Group D): Kvavilashvili, Luka
  • TA (Group E): Sunar, Shishir
  • Class: Tuesday, 14:15-15:30 (RLH 172)
  • Class: Tuesday, 15:45-17:00 (RLH 172)
  • Class: Thursday, 15:45-17:00 (RLH 172)
  • Tutorial: Monday, 20:00-21:00 (West Hall 2)
  • 1st Module Exam: Monday, 2022-12-12, 09:00-11:00, SCC Halls 1-4
  • 2nd Module Exam: Monday, 2023-01-23, 09:00-11:00, ICC East Wing
  • 3rd Module Exam: Thursday, 2023-08-24, 17:00-19:00, Research I, Lecture Hall

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.

CS Bachelor Thesis and Seminar in Computer Science

About

Timeline

Activity Deadline
Kickoff meeting 2023-02-06 (Monday)
Topic/supervisor selection 2023-02-14 (Tuesday)
Presentations 2023-05-08 (Monday)
Presentations 2023-05-09 (Tuesday)
Presentations 2023-05-10 (Wednesday)
Thesis submission 2023-05-16 (Tuesday)

We expect that our students take the initiative and 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 (2023)

I will supervise BSc thesis projects in Spring 2023. 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 the 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, and they produce 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. 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).

Introduction to Computer Science

About

  • Module: Introduction to Computer Science (CH-232)
  • Semester: Fall 2022
  • Instructor: Jürgen Schönwälder
  • Office Hours: Monday, 11:15-12:30 (Research I, Room 87)
  • TA (Group A): Devkota, Charchit
  • TA (Group B): Güler, Sinem Bilge
  • TA (Group C): Perial, Razvan Andrei
  • TA (Group D): Schuster, Lars Florian
  • TA (Group E): Stefanovska, Tea
  • TA (Group Z): Banjade, Ayam (online students)
  • Class: Tuesday, 11:15-12:30 (RLH 172)
  • Class: Friday, 08:15-09:30 (RLH 172)
  • Class: Friday, 09:45-11:00 (RLH 172)
  • Tutorial H: Wednesday, 20:00-21:00 (East Hall 1)
  • Tutorial Y: Thursday, 20:00-21:00 (online, Teams)
  • 1st Module Exam: Saturday, 2022-12-17, 09:00-11:00, 11:30-13:30 (CLAMV and Lab 3)
  • 2nd Module Exam: Monday, 2023-01-30, 09:00-11:00 (CLAMV and Lab 3)

Content and Educational Aims

The module introduces fundamental concepts and techniques of computer science in a bottom-up manner. Based on clear mathematical foundations (which are developed as needed), the course discusses abstract and concrete notions of computing machines, information, and algorithms, focusing on the question of representation versus meaning in Computer Science.

CS Bachelor Thesis and Seminar in Computer Science

About

Timeline

Activity Deadline
Project and thesis kickoff meeting 2022-02-07 (Monday)
Project topic/supervisor selection 2022-02-14 (Monday)
Presentations 2022-05-09 (Monday)
Presentations 2022-05-10 (Tuesday)
Presentations 2022-05-11 (Wednesday)
Bachelor thesis submission 2022-05-17 (Tuesday)

We expect that our students take the initiative and 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.

Secure and Dependable Systems

About

  • Course: Secure and Dependable Systems (CO-566)
  • Semester: Spring 2022
  • Instructor: Jürgen Schönwälder
  • Office Hours: Monday, 11:15-12:30, R.1-87
  • TA: Hernández Salamanca, Mario Alberto
  • Class: Tuesday, 15:45-17:00, R.1-53 Lecture Hall
  • Class: Thursday, 15:45-17:00, R.1-53 Lecture Hall
  • Class: Friday, 15:45-17:00, R.2-52 Lecture Hall
  • 1st Module Exam: Monday, 2022-05-30, 09:00-11:00, R.1-53 Lecture Hall
  • 2nd Module Exam: Thursday, 2022-08-25, 14:00-16:00, R.1-53 Lecture Hall

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.

Student Thesis Topics (2021/2022)

Below is a collection of ideas for student projects. I am mostly writing down topic clusters I am interested in as I strongly prefer to have multiple students working on related topics within a topic cluster.

If you are interested in systems-oriented computer science and computer security, talk to me in person. In general I expect that students have a solid understanding of operating systems and computer networks and that they are able to handle programming tasks well and that they can work independently.