CMPSC 293S Topics on Quantum Computing System

 This is a graduate-level research topic course. We will first introduce the basics of quantum computing and cover the essential components of a quantum computer system, including quantum algorithm, quantum programming language, and quantum compiler. quantum computer architecture, quantum devices, etc. Theory and practice are combined in this course. The students will be able to understand and derive basic quantum algorithms by hand. They will present a research paper in class.

CMPSC 190I Introduction to Virtual Reality

The commonly accepted idea of a Metaverse stems from science fiction, where it is portrayed as a shared and persistent virtual world. Since its introduction by Neal Stephenson in his 1992 novel Snow Crash, the Metaverse has been interpreted in a number of ways. In most imaginings of the Metaverse, virtual reality (VR) is the one technology that is most closely tied to it. This course will introduce you to the basics of VR with focus on learning to build VR systems. The course will cover the design of VR using the Unity game engine.

CMPSC 190A Randomized Algorithms

This is a theoretical/mathematical course studying randomized algorithms. The course will have a focus on Markov Chain Monte Carlo (MCMC) algorithms, and techniques for analyzing the convergence rate of MCMC algorithms. Interested students should have completed CMPSC 130B by the start of the course and should be comfortable with basic probability theory.

Prerequisite: CMPSC 130B (can be taking it in Winter quarter 2023). 

CMPSC 293C Plumbing for CS: Virtual Machines, Binary Translators, Linkers, and Other Strange Animals

This class covers essential components of today’s computing environment, which we all use and take for granted but do often not understand very well. We will look at different types of virtual machines, i.e., process and system VMs, with a particular focus on high-level VMs (e.g., the Java JVM) and dynamic translators and how to make them run efficiently. In addition, we will touch on some other cool system tools, such as linkers or debuggers, and their internals.

CMPSC 293G Security and Cryptography

The course will cover techniques to compute on encrypted data, particularly homomorphic encryption, both partial homomorphic encryption, and fully homomorphic encryption. The course will have a large theory component. However, it will also discuss how homomorphic encryption is applied to real systems such as databases, media streaming services, anonymous messaging services, and machine learning systems.

CMPSC 190I Introduction to Natural Language Processing

Have you ever used intelligent virtual assistants such as OpenAI ChatGPT, Google Now, Apple Siri, Amazon Alexa or Microsoft Cortana? What are the technologies behind such systems? How did IBM's Watson beat top human Jeopardy players? Or are you just curious about how Google Translate works? Understanding human language is an important goal for Artificial Intelligence, and this course introduces fundamental theories and practical applications in Natural Language Processing (NLP).