Courses

Coding for Private Reliable and Efficient Distributed Learning

I developed this course during Summer 2022 and am taught it for the first time during the Winter semester 2022-2023.

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. Afterward, it switches focus to gradient descent, 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 theoretical knowledge to practical implementations and present their findings in a workshop-style poster session.

I taught this course on the following occasions:


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 now teaching this course on my own.

This is a research-oriented Masters level course that covers a wide selection of research topics. The course explains regenerating codes, locally repairable codes, interleaved reed-Solomon codes, codes correcting insertions and deletions, codes for low-latency communication, codes 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 Master's thesis. Several internships lead to conference and journal publications and hiring the students for a Ph.D.

I taught this course on the following occasions:


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:


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.