• CS-GY 6953 / ECE-GY 7123: Deep Learning

    Fall 2020, Spring 2021, Fall 2021

    Theory and software tools for deep neural network learning.

    [Course notes]

    [Python exercises]

  • CS-GY 9223 / ECE-GY 9133: Foundations of Deep Learning

    Spring 2022

    A mathematical treatment of deep learning.

    [Course notes]

  • ECE-GY 6143: Introduction to Machine Learning

    Spring 2020, Summer 2020

    Theory and software tools for machine learning.

    [Course notes] 

    [Python exercises] 

At Iowa State

  • CprE 310: Theoretical Foundations of Computer Engineering

    Fall 2016, Fall 2017, Spring 2018, Fall 2018, Spring 2019

    Overview of several topics in discrete mathematics pertinent to computer science and engineering.

    [Course website]  

  • EE 525X: Data Analytics in Electrical and Computer Engineering

    Spring 2016, Spring 2017, Spring 2018

    Introduction to a variety of data analysis techniques -- particularly those relevant for electrical and computer engineers -- from a foundational perspective. Topics include techniques for classification, visualization, and parameter estimation, with applications to signals, images, matrices, and graphs.

    [Course website]  

  • EE 324: Signals and Systems II

    Fall 2015

    Techniques for signal analysis (including Laplace transforms and z-transforms) and applications to filter design and feedback systems.

    [Course website]  


  • 6.006: Introduction to Algorithms

    Spring 2015 (along with Piotr Indyk and Yuan Zhou)

    Introduction to mathematical modeling of computational problems. Topics include common algorithmic paradigms, data structures, and hands-on problem solving.

    [Course website]  

  • 6.042: Mathematics for Computer Science

    Spring 2014 (along with Albert Meyer)

    Topics in discrete mathematics, directed towards computer science and engineering majors, that are typically not covered in a normal calculus or algebra curriculum.

    [Course website]