#### fall 2017 courses

## C S 381V *Visual Recognition*

Prof. Kristen Grauman, W 1-4:00pm. This is a graduate seminar course in computer vision. We will survey and discuss current vision papers relating to visual recognition (primarily of objects and object categories), autoannotation of images, and scene understanding. The goals of the course will be to understand current approaches to some important problems, to actively analyze their strengths and weaknesses, and to identify interesting open questions and possible directions for future research.

## C S 383C *Numerical Anly: Linear Algebra*

Prof. G. Biros, TTH 9:30-11am. Matrix Computations arise in a varied number of applications, such as, quantum chemistry computations, statistics, economics, data mining, etc. This first year graduate course focuses on some of the fundamental computations that occur in these applications. The standard problems whose numerical solutions we will study are (i) systems of linear equations, (ii) least squares problems, (iii) eigenvalue problems as well as SVD computations. We will also learn basic principles applicable to a variety of numerical problems and apply them to the standard problems. These principles include (i) matrix factorizations, (ii) perturbation theory and condition numbers, (iii) effects of roundoff error on algorithms and (iv) analysis of the speed of algorithms.

## C S 386C *Dependable Computing Systems*

Prof. A. Mok, TTH 2-3:30pm. System models from synchronous to asynchronous, with emphasis on in-between models such as the timed asynchronous model. Control structures such as timed state-transition systems, and constraints in temporal and real-time logics. Analysis techniques such as model checking of timed systems, and extended Presburger arithmetic. Basic building blocks such as clock synchronization, synchronous atomic broadcast, time-bounded membership protocols, real-time scheduling theory, and state recovery methods. Practical implementation issues such as special operating system data structures and algorithms, open system design, and security concerns.

## C S 386W *Wireless Networking*

Prof. L. Qiu, M 1-4pm. Fundamental concepts and principles of wireless network technologies and protocol design, ranging from physical layer to application layer, and in-depth studies of current wireless research.

## C S 394N *Neural Networks*

Prof. R. Miikkulainen, W 9am-12:00pm. The main goals of the class are to (1) obtain an overview of current state of the art in the field, (2) carry out a substantial research project, and (3) get practice in research skills such as conducting a literature study, putting together a research and a conference talk, and writing a research paper. The course is organized so that selecting and completing a research project should be as easy as possible. The first part of the course is an introduction to neural networks. Biological information processing is first briefly discussed, followed by an overview of the most important artificial neural network architectures and algorithms such as backpropagation, self-organizing maps, reinforcement learning, and neuroevolution. Distributed representations will be introduced and the foundations of connectionist artificial intelligence will be discussed. The second part is research oriented. Each team of 2 students will select an advanced topic in neural networks, study the literature in depth and give a 50 min presentation to the class on that topic.

## C S 395T *Robot Learning*

Prof. S. Neikum, TTH 11am-12:3pm. This course will survey a variety of machine learning techiques that allow robots to learn from human demonstrations, interactions, and experiences in the world. Rather than exclusively focus on techniques that directly involve humans, we will also discuss autonomous learning methods that can reduce the burden of robot programmers and end-users. Topics will include motion generalization, supervised learning, reinforcement learning, inverse reinforcement learning, feature selection, skill acqusition, active learning, natural language processing, human-robot collaboration, and human factors.

## C S 395T *Verification and Synthesis for Cyberphysical Systems*

Prof. U. Topcu, T 2-5pm. Topics: Modeling & finite transition systems, linear time propertires, automata based representations, temporal logic, model checking, closed-system snthesis & demo, probablistic varification (DTMCs and MDPs), open systems synthesis, hybrid systems, abstract based control, optimization primer, deductive verificatio

## C S 398T* Supervised Teaching in Computer Science*

Dr. A. Norman. TH 12:30-2 pm. The class meets for the first 10-12 weeks of the semester, and the students participate in independent study for the rest of the semester. For approximately the first half of the course, there will be research talks by several CS faculty members. For the rest of the course, the course will cover topics related to teaching and TA training.

## C S 380D *Distributed Computing I*

Prof. L. Alvisi, MW 5-6:30 pm. Models of distributed systems; language issues, proving properties of distributed systems; time, clocks, partial ordering of events; deadlock and termination detection; diffusing computations; computing in hostile environments; distributed resource management.

## C S 380L* Advanced Operating Systems*

Prof. C. Rossbach, TTH 2-3:30 p.m. Study of the formal structure, design principles, organization, implementation, and performance analysis of multiprogramming and/or multiprocessor computer systems.

## C S 384G* Computer Graphics*

Prof. D. Fussell, TTH 12:30-2 pm. Students will learn about displays, sampling theory, image processing, Ggometric transformations, shading, ray tracing, texture mapping, Z-buffers, hierarchical modeling, parametric curves, procedural models, particle systems, subdivision curves, parametric surfaces, subdivision surfaces, perception and color, GPUs and Programmable Shaders.

## C S 388G *Algorithms: Techniques and Theory*

Prof. C. Plaxton, TTh 2-3:30 pm. Sorting and searching algorithms, graph algorithms, algorithm design techniques, lower bound theory, fast Fourier transforms, NP-completeness.

## C S 391L *Machine Learning*

Prof. D. Ballard, MW 9:30-11 am. Computing systems that automatically improve their performance with experience, including various approaches to inductive classification such as version space, decision tree, rule-based, neural network, Bayesian, and instance-based methods; as well as computational learning theory, explanation-based learning, and knowledge refinement.

## C S 395T *Heterogeneous Parallel Computing*

Prof. K. Pingali, TTh 12:30-2 pm. How do we make parallel programming mainstream? This is one of the most important problems facing computer systems researchers today, and solving it is the key to unlocking the performance potential of multicore processors. This seminar course focuses on breakthroughs in this area that attempt to address this problem by exploiting the deep structure of parallelism. These ideas are useful not only for computational science applications but also for complex applications from other domains such as data-mining, network science, artificial intelligence, and games.

## C S 395T *Program Verification*

Prof. T. Dillig, M 11-2 pm. This course surveys program semantics, program logics, and algorithmic techniques used in formal software verification and analysis. Topics include Hoare logic, verification conditions, abstract interpretation, and model checking.

## C S 395T *Pseudorandomness*

Prof. D. Zuckerman, TTh 11-12:30 pm. Randomization is very useful in almost all areas of computer science, such as algorithms, cryptography, and distributed computing. These uses of randomness seem wonderful until one realizes that computers do not use truly random bits. Instead, most computers get their random bits by using pseudorandom generators. A pseudorandom generator is a deterministic algorithm that takes as input a short random seed and outputs a long string which is ``random'' enough for the purpose at hand. In this course, we will develop provably good pseudorandom generators (PRGs) for a variety of tasks. We will also study several important, related pseudorandom objects: expander graphs, randomness extractors, and error-correcting codes. We will discuss several recent results, including algebraic extractors from codes, applications of additive number theory, pseudorandom generators for polynomials, and SL=L. A tentative list of topics and approximate times follows.

## C S 395T *Randomized Algorithms*

Prof. E. Price, TTh 2-3:30 pm. This graduate course will study the use of randomness in algorithms. Over the past thirty years, randomization has become an increasingly important part of theoretical computer science.

## C S 395T *Deep Learning Seminar*

Prof. P. Kraehenbuehl, MW 2-3:30 pm. This class covers advanced topics in deep learning, ranging from optimization to computer vision, computer graphics and unsupervised feature learning, and touches on deep language models, as well as deep learning for games. This is meant to be a very interactive class for upper level students (MS or PhD). For every class we read two recent research papers (most no older than two years), which we will discuss in class.

#### spring 2017 courses

## CS 391L *Machine Learning*

Prof. Ballard, MW 9:30-11am. Students will learn about sampling distribution, decision trees, Bayes nets, and Markov models.

## CS 389L *Automated Logical Reasoning*

Prof. I. Dillig, TTh 11-12:30pm. In this course, we will study widely-used logical theories and decision procedures for answering whether formulas in these theories are satisfiable. In particular, we will consider automated reasoning techniques for propositional logic, first-order logic, linear arithmetic over reals and integers, theory of uninterpreted functions, and combinations of these theories. We will also look at applications of logic, particularly in program verification..

## CS 384G *Computer Graphics*

Prof. Fussell, TTh 12:30-2pm. Students will learn about displays, sampling theory, image processing, Ggometric transformations, shading, ray tracing, texture mapping, Z-buffers, hierarchical modeling, parametric curves, procedural models, particle systems, subdivision curves, parametric surfaces, subdivision surfaces, perception and color, GPUs and Programmable Shaders.

## CS 389R *Recursion and Induction*

Prof. Hunt, TTh 11-12:30pm. This course concerns itself with mathematically modeling computation and analyzing these models.

## CS 386D *Database Systems*

Prof. Miranker, M 9am-12pm. Focus on the Semantic Web and data integration. One theme of term project ideas concerns leveraging relational database theory and architecture to improve the implementation of the Semantic Web.

## CS 388 *Natural Language Processing*

Prof. Mooney, MW 2:00-3:30pm. The intent of the course is to present a fairly broad graduate-level introduction to Natural Language Processing (NLP, a.k.a. comptuational linguistics), the study of computing systems that can process, understand, or communicate in human language. The primary focus of the course will be on understanding various NLP tasks as listed on the course syllabus, algorithms for effectively solving these problems, and methods for evaluating their performance. There will be a focus on statistical learning algorithms that train on (annotated) text corpora to automatically acquire the knowledge needed to perform the task.

## CS 388H *Cryptography*

Prof. Waters, MW 9:00-10:30am. The objective of this course is to familiarize the students with a foundational background in cryptography. Topics will include foundations, public key cryptography, secure formalization, symmetric key cryptography and zero knowledge proofs.

## CS 395T *Physical Simulation and Animation for Computer Graphics*

Prof. Vouga, TTh 12:30-2pm. This project-oriented course will introduce you to the key concepts and algorithms for simulating physical systems: starting from the ground up with particle systems and mass-spring networks, we will move on to cover topics such as rigid and elastic bodies, collisions, cloth, and fluids.