# teaching

courses I have taught or are currently teaching

Semester | Course and description |
---|---|

Fall 2024 | CSCI 6962/4140 "Machine Learning and Optimization". This course formulates ML problems as optimization problems, then focuses on solving them efficiently and quickly using algorithms appropriate for large-scale applications (aka first-order algorithms). Another focus of the course is on specific architectures used in modern machine learning to impose helpful inductive biases (aka, deep learning). |

CSCI 6969 "Graduate Skills". This seminar course introduces computer science graduate students to skills they will find necessary and useful during their academic career, ranging from how to write papers to giving talks and writing proposals. | |

Spring 2024 | CSCI 6968/4968, "Trustworthy Machine Learning". This seminar course is a third course in machine learning, and introduces students to five active areas of research in trustworthy ML: alignment of large language models, attack models for ML, adversarial robustness, privacy, and algorithmic fairness, by surveying the recent research literature. Students present papers, lead in-class discussions, and conduct a project in one of these directions. The aim of the class is to expose students to these other socially and legally relevant axes along which the performance of ML algorithms should be measured, give them an overview of the approaches currently taken, and provide a foundation for them to pursue their interest in working in this space. |

Fall 2023 | Teaching CSCI6962/4962, "Machine Learning and Optimization". This course formulates ML problems as optimization problems, then focuses on solving them efficiently and quickly using algorithms appropriate for large-scale applications (aka first-order algorithms). Another focus of the course is on specific architectures used in modern machine learning to impose helpful inductive biases (aka, deep learning). |

Spring 2023 | Teaching CSCI2200, "Foundations of Computer Science", aka FOCS. This course serves as an introduction to discrete mathematics and the theory of computing for computer scientists. </br> Teaching CSCI6968/4968, "Machine Learning and Optimization". This course formulates ML problems as optimization problems, then focuses on solving them efficiently and quickly using algorithms appropriate for large-scale applications (aka first-order algorithms). Another focus of the course is on specific architectures used in modern machine learning to impose helpful inductive biases (aka, deep learning). |

Fall 2023 | No teaching. |

Spring 2022 | Co-taught Trustworthy Machine Learning (course piazza), a seminar special topics course covering four aspects of trustworthy machine learning: privacy, fairness, adversarial robustness, and interpretability, by surveying the recent research literature. Students present papers, lead in-class discussions, and conduct a project in one of these directions. The aim of the class is to expose students to these other socially and legally relevant axes along which the performance of ML algorithms should be measured, give them an overview of the approaches currently taken, and stimulate their interest in working in this space. |

Fall 2021 | Taught CSCI6961/4961, "Machine Learning and Optimization". This course formulates ML problems as optimization problems, then focuses on solving them efficiently and quickly using algorithms appropriate for large-scale applications (aka first-order algorithms). Another focus of the course is on specific architectures used in modern machine learning to impose helpful inductive biases (aka, deep learning). It's a fun, challenging, and rewarding class. Take it. |

Spring 2021 | Taught CSCI2200, "Foundations of Computer Science", aka FOCS. This course serves as an introduction to discrete mathematics and the theory of computing for computer scientists. |

Fall 2020 | Taught CSCI4961/6961, "Machine Learning and Optimization". The focus is on understanding randomized optimization algorithms motivated by and focusing on applications in machine learning and data analysis. |

Spring 2020 | Taught CSCI2200, "Foundations of Computer Science", a discrete mathematics/theory of computing course. See the website for more information. |

Fall 2019 | taught CSCI6220/4030, "Randomized Algorithms". See the website for the syllabus and assignments. |

Spring 2019 | taught CSCI6971/CSCI4971, "Large Scale Matrix Computation and Machine Learning". See the website for the syllabus and assignments. |

Fall 2018 | taught CSCI6220/4030, "Randomized Algorithms". See the website for the syllabus and assignments. |

Spring 2018 | taught CSCI6971/CSCI4971, "Large Scale Matrix Computation and Machine Learning". See the website for the syllabus and assignments. |

Fall 2017 | taught CSCI6220/4030, "Randomized Algorithms". See the website for the syllabus and assignments. |

Spring 2017 | taught CSCI6971/CSCI4971, "Large Scale Matrix Computation and Machine Learning". See the syllabus. |