Special Topics Course
CMPSC 292F Real-Time High Quality Rendering
One of the perennial goals of Computer Graphics is creating high quality images which are indistinguishable from photographs: a goal referred to as photorealism. Another important goal is interactivity for visualization, simulation, gaming and other real-time applications. These two goals have historically been at odds with each other.
CMPSC 292A Randomized Algorithms
The goal of the class is to learn the basics of probability theory, how to reason rigorously about probability, to learn concentration inequalities (Markov, Chebyshev, Chernoff, ++) and know to apply those in the context of algorithm analysis and design.
Textbook: Randomized Algorithms by Mitzenmaher and Upfal (Second Edition). We will cover approximately the 7 first chapters, plus possibly additional readings. The precise syllabus will develop as we go along! See Q&A Lecture Schedule post for the approximate schedule.
CMPSC 190I Deep Learning
Deep Learning has been driving the progress of AI in the past decade and has found versatile applications in many products and everyday life. Examples include recommendation systems for online videos, automatic language translation, smart home assistants, and autonomous driving vehicles. This course will introduce general principles, methods, network architectures, and applications of Deep Learning. We cover neural network architectures including convolutional neural networks, recurrent neural networks, Transformer, and graph neural networks.
CMPSC 190B IoT Systems
The Internet of Things (IoT) embeds ordinary physical objects in our environment with digital intelligence -- via sensing, control, communications, and compute capabilities. As such, IoT advances are likely key drivers of the next computing revolution. This course will teach IoT systems end-to-end, including the fundamentals of IoT devices, software architectures, communication protocols, security approaches, as well as the distributed, multi-tier (e.g. sensors, edge, and cloud) programming and deployment considerations needed to support emerging IoT applications.
CMPSC 190A Algorithms Engineering
Course purpose: The course focuses on the ability to translate theoretical knowledge about algorithms, data structures, and complexity to efficiently be able to perform the complete process of analyzing a problem, estimate the running time of suggested solutions, and to implement a running program.
CMPSC 291A Future User Interfaces
In this course, we will examine upcoming user interface technologies that will impact how we interact with our devices and digital content in the future. These include: immersive technologies (augmented and virtual reality), physiological interfaces (e.g., brain and body interfaces), wearable computing (e.g., devices both for reading and writing data to the user's body), multisensory and multimodal interactions in mixed, augmented and virtual realities (e.g., spatial audio, body movement), haptics (e.g., force feedback, sensing weight, feeling textures), and others.
CMPSC 291A Scalable Internet Services
This course explores advanced topics in highly scalable Internet services and their underlying systems’ architecture. Software today is primarily delivered as a service: accessible globally via web browsers and mobile applications, and backed by millions of servers. Modern web frameworks (e.g., Ruby on Rails, Django, and Express), and continuous improvements to cloud providers (e.g., Amazon Web Services, Google Cloud Platform, and Microsoft Azure) make it increasingly easier to build and deploy these systems.
CMPSC 293S Information Retrieval and Web Search
This course covers advanced topics on information retrieval, web search, and related scalable information systems. The topics include search engines, indexing, retrieval and ranking, and support for large-scale online search services/data processing. Recent papers in top conferences will be reviewed, and issues in relevance, efficiency, scalability, and possibly privacy will be studied.
CMPSC 291K Machine Learning
Machine Learning is about developing systems that automatically improve their performance through experience. It has found massive applications in real products. Examples include systems that recommend online videos, automatic translating languages, and autonomous driving vehicles. This course covers the theory, models, and practical algorithms for machine learning from a variety of perspectives.