This is great! I also didn't feel I understood the problem during stats class until I simulated in python. Thanks for sharing all your code.