CS 595A: Theory Seminar

In this seminar course we will cover recent research papers on theory and algorithms. Students taking the course for credit are required to present at the seminar. + Taking the course for credit requires instructor approval + Everyone welcome to attend/audit

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 595J : From PhD to Hired - Improve Your Research Presentation Skills

Our goal is to help you prepare for the job application process, whether it’s in academia or industry. During the seminar, we will go over the writing, speaking, and interview skills you need to prepare a stellar job application package. More specifically, we will discuss how to write good research statements, design job talks and present your research. We will also talk about what to look for in a potential workplace, what sorts of questions to ask during your interview, how to negotiate and more.

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 595G: Hacking Club Seminar

This seminar covers various topics related to vulnerability analysis and hacking. A deep understanding of the details of both the vulnerabilities that make security compromises possible and the countermeasures that are required to detect and block the attacks is a necessary prerequisite to address the ever-changing set of security issues that affect applications, operating systems, and networks. The seminar has a practical emphasis, and it is geared towards learning new tools and techniques in a group setting.