Understanding Molecular Simulation : From Algorithms to Applications