everything.study
CPSC 4585

Probabilistic Programming

Undergraduate

Introduction to probabilistic programming, a field at the intersection of programming languages, probability theory, and artificial intelligence. The central idea in probabilistic programming is to represent probabilistic models as programs, and use special metaprograms (e.g., compilers and interpreters) to implement inference, learning, and prediction. Topics include the mathematical foundations of probabilistic programming (including the basics of synthetic probability theory); probabilistic modeling (including Bayesian approaches to regression, clustering, topic modeling, and structure learning); and exact and approximate algorithms for inference (including variable elimination, knowledge compilation, Markov chain Monte Carlo, sequential Monte Carlo, and variational inference). Coursework includes biweekly programming assignments, in-class quizzes, and a final project completed in groups of up to three students. CPSC 2020 , or equivalent background in probability. CPSC 2230 , or equivalent programming maturity (with permission of instructor). Facility with Python programming and functional programming is expected. Although assignments are programming-oriented rather than proof-oriented, a degree of mathematical maturity (e.g., having taken at least one proof-based math course) is recommended. QR TTh 4pm-5:15pm

Sources