Computational Molecular Biology: An Introduction