This course is meant to give you a rigorous, intermediate-level introduction to probability theory and its applications. You will learn to reason carefully about randomness: how to build and work with probability models, manipulate random variables and their distributions, compute and bound expectations and variances, and understand the powerful limiting behavior that emerges when randomness is combined at scale. Topics covered will include probability spaces and counting, conditional probability and independence, discrete and continuous random variables, expectation and variance, joint distributions, functions of random variables, concentration inequalities, and the law of large numbers and central limit theorem. Throughout the semester we will connect these ideas to modern applications — including several running examples drawn from randomized numerical linear algebra.
There is no required textbook for this course. My lectures will be primarily based on Introduction to Probability by Bertsekas and Tsitsiklis, Introduction to Probability by Blitzstein and Hwang (freely available online at https://probabilitybook.net/), and Introduction to Probability for Computing by Harchol-Balter.
We will occasionally run numerical experiments and simulations in this course to explore probabilistic phenomena. We will work in Python.