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).

CMPSC 291I Haptics: Touch Perception, Interaction, and Engineering

Haptics lies at the intersection of robotics, human-computer interaction, and computational and human perception. The term "haptics" is often used to refer to science and engineering related to the sense of touch. This course introduces human haptics, including sensory specializations and touch perception. It reviews the engineering of electronic technologies for haptic (touch) feedback, emerging technologies, and the design of haptic systems for human-computer interaction, sensory substitution, virtual reality, augmented reality, and other emerging areas.

CMPSC 291A Adversarial Machine Learning

Deep neural networks have achieved remarkable success owing to their superior predictive performance. Yet, they are extremely vulnerable to adversarial attacks. This makes adversarial machine learning an emerging topic. The idea of learning with adversaries is crucial for expanding the learning capability, ensuring trustworthy decision-making, and enhancing the generalizability of AI models. Despite diverse adversarial concepts and applications, they share very similar learning, computation, and optimization foundations.