CMPSC 190N Machine Learning for Networking

This course will focus on learning problems for networking, i.e., how network protocols or network operators make their decisions at different granularities (e.g., network, TCP, application, etc.) to keep networks safe and performant. How these decisions are made right now, and how one can replace existing heuristics-based decision-making with ML-based learning models. We will learn about the challenges of applying machine learning to learning problems in networking and how we can resolve them.

CMPSC 190H Quantum Computing

This course sets the foundational knowledge necessary to understand quantum computing and quantum information science by covering some of the advanced linear algebra tools, and basic quantum mechanics. Students will learn about the four critical postulates of quantum mechanics, explore quantum circuits, and delve into the universal gate set. The curriculum includes studies on quantum teleportation, superdense coding, and the no-cloning theorem, alongside a comprehensive introduction to key quantum algorithms like Shor's Algorithm, Grover's Algorithm, and the Adiabatic Algorithm.

CMPSC 293N ML for Networked Systems

In recent years, we have witnessed the widespread usage of ML tools for various classification, detection, and control problems. More recently, we have witnessed the use of ML for various networking problems as well. However, operationalizing ML solutions for networked systems is more nuanced than simply calibrating existing tools, developed for other domains (image classification, NLP, etc.). More in-depth exploration to develop flexible, scalable, and generalizable ML-based networked systems.

CMPSC 292C Computer-Aided Reasoning for Software

This course is a graduate-level introduction to automated reasoning techniques and their application in tools for the design, analysis, and construction of software. In the first half of the course, we will survey the logical foundations and algorithms behind SAT solvers and SMT solvers. In the second half of the course, we will apply these techniques to automatic bug finding, program verification, and program synthesis. As a student in this course, you will learn how solvers work, and how to use them to build cool programming tools. 

CMPSC 291K Trustworthy ML in Security

The course is about cutting edge techniques in machine learning and cybersecurity. We will introduce various deep learning methods that are widely used in security applications, including multilayer perceptron, recurrent neural networks, and transformers. We will also discuss the trustworthiness issue of these methods, including explainability and adversarial robustness.