Span Programs and Quantum Query Algorithms - Ben Reichardt