CMPSC 291I Visual Computing and Interaction – Extended Reality (XR)

Mixed and Augmented Reality, now often subsumed under the overarching term XR: Extended Reality, has been an active research field since the 1990s. It has recently gained significant popularity because of the possibility of being implemented on smartphones, because of new emerging head-worn platforms (including the recent Apple "VisionPro" device), and because of its unique approach of offering context-based computing directly in a person's field of vision. Augmented Reality is the concept of overlaying computer-generated information on top of the physical world.

CMPSC 293B Foundations for Blockchains and Distributed Systems

Are blockchains real? There’s a lot of excitement about blockchains and cryptocurrencies mixed with a lot of skepticism and pessimism. One thing is clear, the field instigated tremendous advances to the foundations of distributed systems and applied cryptography. This course will overview key advances in blockchains with a focus on the scientific foundations underpinning them.

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.