Computational Sciences: a Hands-On Approach