Understanding Coding Through Simulations