### Courses Taught at UCLA

I don't regularly teach anymore, but since folks occasionally find my old course notes useful, I've maintained them here.

**CS112: Modeling Uncertainty in Information Systems**(Spring 2011, Spring 2012)

(Previously offered under the title "Computer System Modeling Fundamentals")

This course is designed to help students develop mathematical reasoning skills necessary to solve problems that involve uncertainty. The first half of the course will cover the basics of probability, including probabilistic models, conditional probability, discrete and continuous random variables, expectation, mean and variance, and limit theorems. The second half of the course will focus on Markov chains and statistical inference. The foundational problem solving skills that students will learn in this class are crucial for many exciting areas of computer science that inherently involve uncertainty, including artificial intelligence and machine learning, data mining, financial modeling, natural language processing, bioinformatics, web search, algorithm design, cryptography, system design, network analysis, and more.

**CS260: Machine Learning Theory**(Fall 2010, Fall 2011)

(Initially offered as a section of CS269)

This course provides a taste of the theoretical foundations underlying common machine learning algorithms. It is primarily intended for students with some background and interest in machine learning who would like to know more about the theoretical foundations, and students with a background and interest in theoretical computer science who would like to know more about machine learning. Topics covered include an introduction to the PAC learning model, uniform convergence theory, VC dimension, online learning including the Perceptron and Winnow algorithms, no-regret learning and the Weighted Majority algorithm, ensemble methods and boosting, SVMs, connections to game theory, and some current learning theory research. Although this course has no official prerequisites, students who enroll should have a basic knowledge of probability and should be comfortable reading and writing formal mathematical proofs.

**CS269: Seminar on Mathematical Frameworks for Social Computing**(Winter 2012)

This seminar-style course will explore theoretical models and frameworks for social computing. We will examine ways in which techniques from learning theory, game theory, and theoretical computer science can be used to model and analyze social computing systems such as prediction markets, crowdsourcing markets, and peer production systems. Students will be expected to read and present research papers on these topics and complete an open-ended course project. Students who enroll should be very familiar with the basics of probability theory, comfortable reading and writing formal mathematical proofs, and eager to get involved in class discussions. A background in learning theory and/or game theory is helpful, but not required.