• COMPSCI 690AB: Systems for Deep Learning [2024Spring]
    This course is designed to provide a comprehensive understanding of computer systems architecture that supports deep learning workloads. It assumes students have prior knowledge on computer systems, algorithms, and Python/C/C++ programming background. Recent years have witnessed rapid progress of artificial intelligence and especially deep learning, which is inseparable from the continuous innovations of computer hardware and software systems. In the foreseeable future, AI application development will still rely on joint innovations in computer systems and deep learning: computer systems empower deep learning with larger scale and higher complexity, while deep learning calls for tailored system designs. Under this context, this course will study the full-stack system support of deep learning, covering topics from the high-level programming frameworks to low-level kernel implementations. We will also introduce cutting-edge research on efficient and scalable deep learning model training, inference, and serving. Use of computer required.

  • COMPSCI 410/610: Compiler Techniques [2022Spring]
    This course explores the basic problems in the translation of programming languages focusing on theory and common implementation techniques for compiling traditional block-structured programming languages to produce assembly or object code for typical machines. The course involves a substantial laboratory project in which the student constructs a working compiler for a considerable subset of a realistic programming language, within a provided skeleton. The lectures are augmented by a discussion section that covers details of the programming language used to build the compiler, the operating system, the source language, and various tools. Use of computer required.

  • COMPSCI 532: Systems for Data Science [2021Spring] [2021Fall][2022Fall]
    In this course, students will learn the fundamentals behind large-scale systems used for data science. We will cover the issues involved in scaling up (to many processors) and out (to many nodes) parallelism in order to perform fast analyses on large datasets. These include locality and data representation, concurrency, distributed databases and systems. We will explore the details of existing and emerging data science platforms, including map-reduce and data analytics systems like Hadoop and Apache Spark, and systems for machine learning and deep learning.

  • COMPSCI 589: Machine Learning [2023Fall]
    This course will introduce core machine learning models and algorithms for classification, regression, clustering, and dimensionality reduction. On the theory side, the course will cover the mathematical foundations underlying the most commonly-used machine learning algorithms. It will focus on understanding models and the relationships between them. On the applied side, the course will focus on effectively using machine learning methods to solve real-world problems with an emphasis on model selection, regularization, design of experiments, and presentation and interpretation of results. The course will have assignments that involve both mathematical problems and implementation tasks.

  • COMPSCI 692S: SEMINAR - Systems for Machine Learning, Machine Learning for Systems [2020Fall]
    This seminar discusses cutting-edge research on the topics of machine learning for systems and systems for machine learning.