Class material for UC Berkeley's PHC240A.