DNA Self-assembly has emerged as an important technique for molecular computation and nano-technology. At these scales, self- assembly is governed by simple (and local) probabilistic rules for growth, making it amenable to algorithmic techniques. We will discuss two important challenges in algorithmic self-assembly: robustness and efficiency. This talk will present recent results, and also attempt to provide a road-map of open problems.