An introduction to some fundamental algorithms and data structures used in current applications. Examples include cryptocurrencies (hashing, Merkle trees, proofs of work), AI (nearest neighbor methods, k-d trees, autoencoders), and VR/AR (gradient descent, least squares, line-drawing algorithms). Six lectures will be replaced by applied clinics taught in the evening. Programming assignments in Python or Java.