Computational Methods for Design and Discovery in Nanotechnology