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 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 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 388R Randomized Algorithms

Prof. Eric Price, TTh 2-3:30 pm. The design and analysis of efficient randomized algorithms.

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 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 Computational Neuroscience

Prof. Ilia Fiete, F 12-3 pm. Introduction to computational neuroscience. Examines neural network and learning theory, coding, dynamics, memory, computation and learning in recurrent and feed forward neural circuits. 

C S 395T Human Computation and Crowdsourcing

Prof. Matt Lease, Th 12-3 pm. Study of the properties and behavior of information. Technology for information processing and management. Introduction to the theory, methods, and applications of human computation and crowdsourcing; covering a breadth of key concepts as well as more specialized depth in one or more key sub-areas. 

C S 395T Structured Models for NLP

Prof. G. Durrett, TTh 9:30-11 am.

C S 395T Numer Optimiz: Graphics/AI

Prof. Q. Huang, TTh 3:30-5 pm.

C S 395T Neural Computation

Prof. A. Huth, TTh 12:30-2 pm.

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 380D Distributed Computing

Prof. Velayudhan, TTh 2-3:30pm. 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. Three lecture hours a week for one semester. Prerequisite: Graduate standing and Computer Science 372.

CS 384G Computer Graphics

Prof. Vouga, TTh 3:30-5pm. Same as Computational Science, Engineering, and Mathematics 382G. Advanced material in computer graphics, including in-depth treatments of techniques for realistic image synthesis, advanced geometric modeling methods, animation and dynamic simulation, scientific visualization, and high-performance graphics architectures. Three lecture hours a week for one semester. Computational Science, Engineering, and Mathematics 382G and Computer Science 384G may not both be counted. Prerequisite: Graduate standing; and Computer Science 354 or another introductory course in computer graphics, or equivalent background and consent of instructor.

CS 386D Database Systems

Prof. MIranker, M 9am-12pm. Introduction to the principles of database systems, including fundamental ideas and algorithms used in the construction of centralized database management systems, distributed database management systems, and database machines and their roles in Internet infrastructure. Topics include data storage and indexing algorithms, query processing and optimization, concurrency control, recovery, XML and object-oriented databases, database evaluation and tuning, and recent directions in database research. Three lecture hours a week for one semester. Prerequisite: Graduate standing and Computer Science 347 and 375.

CS 386L Programming Languages

Prof. Cook, TTh 9:30-11am. Topics include formal syntax representations, program correctness, typing, and data abstraction. Features and problems in languages that allow parallelism. Exploration of different programming styles, such as imperative, functional, logic, data flow, and object-oriented programming. Three lecture hours a week for one semester. Prerequisite: Graduate standing, and Computer Science 345 or consent of instructor.

CS 388 Natural Language Processing

Prof. Mooney, MW 2:00-3:30pm. Computational methods for syntactic and semantic analysis of structures representing meanings of natural language; study of current natural language processing systems; methods for computing outlines and discourse structures of descriptive text. Three lecture hours a week for one semester. Prerequisite: Graduate standing, and a course in artificial intelligence or consent of instructor.

CS 388C Combinatorics and Graph Theory

Prof. Gal, TTh 12:30-2pm. Counting, matching theory, extremal set theory, Ramsey theory, probabilistic method, linear algebra method, coding theory. Applications to computer science, including randomized algorithms. Three lecture hours a week for one semester. Prerequisite: Graduate standing, and Computer Science 336 or the equivalent or consent of instructor. An understanding of elementary proof and counting techniques is assumed.

CS 388G Algorithms: Techniques and Theory

Prof. Plaxton, MW 2-3:30pm. Sorting and searching algorithms, graph algorithms, algorithm design techniques, lower bound theory, fast Fourier transforms, NP-completeness. Three lecture hours a week for one semester. Prerequisite: Graduate standing, and Computer Science 357 or the equivalent or consent of instructor.

CS 388L Introducation to Mathematical Logic

Prof. Lifschitz, TTh 12:30-2pm. Introduction to some of the principal topics of mathematical logic: propositional and predicate calculus; Goedel's completeness theorem; first-order theories; formalizing mathematical reasoning; first-order arithmetic; recursive functions; Goedel's incompleteness theorems; axiomatic set theory. Three lecture hours a week for one semester. Prerequisite: Graduate standing and experience in abstract mathematical thinking.

CS 389L Automated Logical Reasoning

Prof. Dillig, TTh 3:30-5pm. Subjects include automated reasoning techniques for propositional logic, first-order logic, linear arithmetic over reals and integers, theory of uninterpreted functions, and combinations of these theories. Examines automated logical reasoning both from a theoretical and practical perspective, giving a hands-on experience building useful tools, such as SAT and SMT solvers. Three lecture hours a week for one semester. Computer Science 389L and 395T (Topic: Automated Logical Reasoning) may not both be counted. Prerequisite: Graduate standing.

CS 391D Data Mining: A Mathematical Perspective

Prof. T. Dhillon, F 9am-12pm. Mathematical and statistical aspects of data mining. Topics include supervised learning (regression, classification, support vector machines) and unsupervised learning (clustering, principal components analysis, dimensionality reduction). Uses technical tools that draw from linear algebra, multivariate statistics, and optimization. Three lecture hours a week for one semester. Computer Science 391D and 395T (Topic: Data Mining: A Statistical Learning Perspective) may not both be counted. Prerequisite: Graduate standing, and Mathematics 341 or the equivalent.

CS 392F Automated Software Design

Prof. Batory, TTh 2:00-3:30pm. Model driven engineering; metamodels, UML diagrams, constraints, transformations, software product lines, feature models, feature modularity, category theory, functors, commuting diagrams, program algebras, feature interactions, multi-dimensional separation of concerns, design-by-transformation, parallel software architectures, correct-by-construction, architecture refinement, optimization, and extension, program refactorings, design patterns, refactoring scripts. Three lecture hours a week for one semester. Computer Science 392F and 395T (Topic: Feature-Oriented Programming) may not both be counted. Prerequisite: Graduate standing, and a basic knowledge of Java, compilers and grammars, and object-oriented design methods.

CS 395T Computational Statistics with Application to Bioinformatics

Prof. Bajaj, MW 11:00am-12:30pm. This course dwells on fundamentals and algorithms for data in high dimensions with provably probabilistic bounds on the accuracy. The emphasis shall be on high dimensional linear and non-linear geometric data with applications in Bioinformatics and Scientific Computing. The course is aimed at first or second year graduate students, especially in the CSEM, CS, and ECE programs, but others are welcome. 

CS 395T Hardware Verification

Prof. Hunt, MW 3:30-5pm.


CS 395T Physical Simulation

Prof. Vouga, TTh 2-3:30pm. 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.


CS 395T Prediction Mechanisms in Computer Architecture

Prof. Lin, F 10am-12pm. This research-focused course will explore uses of prediction to improve hardware performance. The goal is to understand the state-of-the art, to understand basic concepts and mechanisms for performing prediction, including machine learning, and to identify new ideas for advancing the state-of-the art. Students will focus on caching and data prefetching, but may also pursue other topics in computer architecture if they are interested.


CS 396M Advanced Networking Protocols

Prof. Lam, TTh 4-5:30pm. Topics include routing, multiple access, internetworking, security, performance models, and verification methods. Three lecture hours a week for one semester. Prerequisite: Graduate standing.