This course is a first introduction to the theory of quantum computing and information. It covers the rules of quantum mechanics (qubits, unitary transformations, density matrices); quantum gates and circuits; entanglement; the Bell inequality; protocols for teleportation, quantum key distribution, quantum money and other tasks; basic quantum algorithms such as Shor’s and Grover’s; basic quantum complexity theory; and the challenges of building scalable quantum computers. Previous exposure to quantum mechanics is not required. The prerequisites are linear algebra and some exposure to classical algorithms and programming. The course is mainly theoretical, although it includes limited use of IBM Q Experience to design quantum circuits and run them on real quantum hardware.