CSCI5450 Randomness and Computation