Abstract
In this talk, I will give an overview of techniques for quantum algorithms, and also describe some recently discovered applications. A surprising fact about quantum algorithms is that they are based on a few basic primitives, but the combination and generalization of these techniques give rise to a diverse set of applications. In the talk I will show how the techniques evolved starting from the Deutsch-Jozsa algorithm to, e.g., exponential speed-ups for some problems related to convex optimization.