CS 291I: Computational Systems for Visual Art and Design

Computational systems of rules, relationships, and behaviors can extend traditional art and design practices or support new creative workflows and outcomes. In this course, we will explore the creation of computational systems for visual art and design. Following a studio format, we will learn creative coding platforms and algorithms to create visual works that are flexible, dynamic, and generative. In the process, we will touch on the design philosophy and abstractions of existing creative coding platforms and examine methods to create alternatives.

CS 291A: Scalable Internet Services

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. Yet despite these advances, some concerns just don’t go away.

CS 292C: Computer-Aided Reasoning for Software

This is a graduate-level introduction to automated reasoning techniques and their application in tools for the design, analysis, and synthesis of software. In the first half of the course, we will study the logical foundations and algorithms behind modern SAT solvers, SMT solvers, and finite model finders. In the second half of the course, we will apply these techniques to automatic bug finding, program verification, and program synthesis.

CS 291K: Introduction to Deep Learning

CS291K is a graduate-level introductory course to machine learning, in particular deep learning and will cover mostly DL topics developed in the past 4 to 5 years. While previous exposure to pattern recognition, machine learning, artificial intelligence and neural networks is not required, older topics (more than 4 or 5 years old) will not be discussed in any detail. Graduate-level preparation in math (especially probability, random processes, and linear algebra) is a must and students should know how to program in Python.

CS 293S: Internet of Things


Course Description: In this course students learn basics about the Internet of Things, what it is, why this is happening now and a number of important software platforms, protocols (e.g. MQTT or CoAP) as well as important application verticals such as smart city, eHealth and smart agriculture.
Area: Systems
 

CS 292F: Quantum Information and Quantum Computation

This course gives an 
introduction to quantum computing with an emphasis on the computer science part of the field. 
Topics that will be covered are: elementary quantum mechanics, quantum information, quantum gates and circuits, quantum circuit complexity, teleportation, quantum cryptography, Shor's quantum algorithm for factoring integers and discrete logarithms, Grover's quantum searching algorithm, lower bounds in quantum computation, and the future of the field

293S: Program Optimization for Performance

With the increasing diversity and complexity of modern computers and irregular applications from domains like graphics, social networks, and data mining, the development of efficient, reliable software has become increasingly dependent on automatic support from compilers and other program analysis and translation tools. This course covers principal topics in programming languages and compiler technology for program understanding, optimization, and parallelization.