Teaching

236605Advanced topics in deep learning

This is an ongoing experiment on animals in collaboration with Haim Baskin. The course is offered as a continuation to our introductory course and dwells on advanced and bleeding-edge topics in deep learning including self-supervised learning, differentiable programming, and learning on unstructured data.

236781Deep learning on computational accelerators

Deep learning has rapidly become a de facto standard for many AI tasks in numerous market segments on platforms ranging from mobile devices to supercomputers. The course is walkthrough starting from basic notions in deep learning, deep network architectures, training regimes and algorithms, and ending with more advanced and state-of-the-art ideas related to learning on graphs and other non-Euclidean domains. We will also cover concepts of hardware accelerators and have a lot of hands-on coding. The lectures and the tutorials are recorded on video, and the tutorials are executable in the form of jupyter notebooks. Previously offered as the Advanced Topics course 236605.

236860Digital image processing

Digital imaging and image processing has become an inseparable part of our reality, profoundly impacting our social communication skills. The purpose of this course is a self-contained introduction to modern techniques in image processing. We will understand concepts involved in acquiring, sampling, representing, compressing, and processing of multi-dimensional signals (images and videos). We will discuss the notion of inverse problems and ways to solve them — from traditional prior-based methods to modern learning-based methods. Finally, apart from the standard image acquisition model, we will also look at more exotic computational and medical imaging schemes and understand the challenges and applications involved therewithin.
The lectures are recorded on video, and the tutorials are executable in the form of jupyter notebooks.

234262Logic design

An introductory undergraduate course covering basic notions and techniques in the design of digital systems. Special attention is given to designing and programming a pipelined MIPS microprocessor.

5107002Numerical optimization

An introductory course in numerical optimization with video lectures that I taught in the School of Electrical Engineering at Tel Aviv University and in the College of Computer Engineering at Duke University.

5123632Random signals and noise

Introductory course on probability and stochastic processes with recorded video lectures that I taught in the School of Electrical Engineering at Tel Aviv University.

5106201Digital processing of single and multi-dimensional signals

An advanced digital signal processing course with video lectures that I taught in the School of Electrical Engineering at Tel Aviv University.

5124263Processing of digital video

A course on digital video processing with recorded lectures that I taught in the School of Electrical Engineering at Tel Aviv University.