This document discusses probabilistic Turing machines and complexity classes related to bounded error probabilistic polynomial time (BPP). It defines probabilistic Turing machines that make random choices, and complexity classes like RP, coRP and ZPP based on one-sided error bounds. It also covers error reduction techniques that allow reducing the error probability for BPP algorithms. Finally, it examines the relationships between BPP and other complexity classes.