290I - Deep Learning for Pattern Recognition

Deep learning is a phrase given to a current widely used class of methodologies for building Pattern Recognition and Machine Learning algorithms in Academia and Industry.  Many of the deep learning techniques are from the field of Artificial Neural Networks (ANNs).  This course will provide an overview of the history of ANN research and applications from the 1950s to the present, followed by in-depth discussions and demonstrations of widely used and useful algorithms at the current time.

290T - Computational Algebra

This course cover a collection of research topics in computational algebra and number theory, as related to cryptography, cryptanalysis, security, and error-correcting codes. The students are expected to follow the course presentations, and return homework assignments. Additionally, each student is required to pick a particular area and write a short paper or presentation, covering the fundamentals of the area and describing possible open problems.

Topics

595C - Automated Worst Case and Side Channel Analysis for Software

As bug detection techniques become more effective in eliminating flaws in software systems, attacks that rely on inherent space-time complexity of algorithms used for building software systems are gaining prominence. If an adversary can generate arbitrary inputs that induce behaviors with expensive space-time resource utilization at the defender's end, in addition to mounting denial-of-service attacks, the adversary can also use the same inputs to facilitate side-channel attacks in order to infer some secret from the observed system behavior.

290F - Applied Machine Learning: Systems, Networks and Security

In this course, we will study specific machine learning as practical data mining and classification tools to be applied in the general areas of distributed systems, networking, and security. We will start by introducing broadly machine learning classifiers, and then study (by reading technical papers) how a variety of ML tools have been applied in these areas. The course is meant to be an interactive, discussion based class, where students will read and present papers.

290I - Mixed and Augmented Reality (same course as Winter 2015)

Mixed and Augmented Reality, an active research field since the 1990s, has recently gained significant popularity because of the possibility of being implemented on smart phones. Many people see it as one of the most important computer interfaces in the future of computing. Augmented Reality is the concept of overlaying computer-generated information on top of the physical world. Mixed Reality is a bit broader and subsumes the fields of Augmented Reality, Augmented Virtuality, and Virtual Reality. This class provides a hands-on introduction to these novel interface technologies.

290A - Big Data and Networks

CS 290A is the first in a new group of courses we are introducing in the broad area of network science research.  This course will focus on fundamental theory and algorithms for working with Big Data and networks. Topics covered will include graph embedding, spanning trees, network flow, random graph models, network formation and evolution, structure and attribute-based search, clustering, partitioning, and distributed dynamical systems. 

 

290B - Scalable Internet Services (same course as Fall 2014)

This course explores advanced topics in highly scalable Internet services and their underlying systems architecture. Software today is increasingly being delivered as a service: accessible globally via web browsers and mobile applications and backed by millions of servers. Modern frameworks and platforms are making it easier to build and deploy these systems, such as Ruby on Rails and Amazon's EC2.