Courses

Fast Secure and Reliable Coded Computing

I developed this course during Summer 2022 and am teaching it for the first time during the Winter semester 2022-2023. I am looking forward to update the material and teach this course next year as well.

This is an advanced Masters level course. It tackles the fundamentals of secret sharing from a coding theoretic perspective. The course then explains how to apply secret sharing to obtain fast and private coded computing systems for linear and polynomial computations. Afterwards, it switches focus to gradient descent which is the main building block of machine learning algorithms. The course explains the basics of gradient descent and stochastic gradient descent and explains how to mitigate the effect of stragglers (slow or unresponsive nodes) in distributed machine learning algorithms and opens the door for research internships, Masters Thesis and future independent research. In addition to the lectures, students are assigned a semester-long project to apply the theoretical knowledge to practical implementations and present their findings in a workshop-style poster session.

I taught this course on the following occasions:

  • Winter 2023-2024: expected to teach this course again.
  • Winter 2022-2023: ongoing.

Coding Theory for Storage and Networks

This course is developed by Prof. Antonia Wachter-Zeh and taught every summer semester at the TUM. I have been very fortunate to co-teach this course with several amazing post-docs since Summer 2020 and learn a great deal from them. I am expected to teach this course on my own next semester.

This is a research-oriented Masters level course that covers a wide selection of research topics. Among others, the course explains regenerating codes, locally repairable codes, interleaved reed-Solomon codes, codes correcting insertions and deletions, codes for low-latency communication, code for non-volatile memories and rank metric codes. A subset of those topics is chosen every semester and covered in class. Students have the opportunity to learn how to program the theoretical codes through lab sessions held biweekly. The course is designed to open the door for research internships and Masters thesis. Several internships lead to conference and journal publications and hiring the students for a PhD.

I taught this course on the following occasions:

  • Summer 2023: expected to teach the course on my own.
  • Summer 2022: jointly with Dr. Serge Kas Hanna.
  • Summer 2021: jointly with Dr. Sven Puchinger.
  • Summer 2020: jointly with Dr. Alessandro Neri.

Security in Communication and Storage

This course is developed by Prof. Antonia Wachter-Zeh and taught every winter semester at the TUM. I have been very fortunate to co-teach this course with Prof. Wachter-Zeh for two semesters and learn a great deal from her.

This is a Masters level course that covers privacy in communication and storage settings. The course covers the fundamentals of privacy in communication and storage systems. It focuses on post-quantum cryptography, i.e., algorithms that does not rely on the hardness of underlying problems. Among others, it includes information-theoretic privacy through secret sharing, differential privacy and focuses significantly on code-based cryptography. The course is designed to open the door for research internships and Masters thesis. Several internships lead to conference and journal publications and hiring the students for a PhD.

I co-taught this course on the following occasions:

  • Winter 2021/2022: jointly with Prof. Antonia Wachter-Zeh.
  • Winter 2020/2021: jointly with Prof. Antonia Wachter-Zeh.

Teaching Assistant

During my PhD, I had the opportunity to work as a teaching assistant for graduate and undergraduate level courses, most of which (except for the circuit analysis) were offered by my PhD supervisor Prof. Salim El Rouayheb. Due to changing universities and summer research visits, I got the chance to assist courses taught at three different universities.

The following is a list of courses for which I worked as a teaching assistant.

  • Spring 2019: "Discrete Mathematics", Undergraduate level course at Rutgers University.
  • Spring 2018: "Discrete Mathematics", Undergraduate level course at Rutgers University.
  • Summer 2016: "Coding Theory for Distributed Data Storage", Crash course at Aalto University.
  • Fall 2015: "Random Signal Analysis", Masters level course at Illinois Institute of Technology.
  • Fall 2015: "Circuit Analysis", Lab instructor at Illinois Institute of Technology.