An Introduction to Statistical Computing: A Simulation-based Approach