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]
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, stream processing systems, and systems for machine learning and deep learning.
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.