Cryptography, the art of writing or solving codes, has a long history in protecting private correspondence from unfriendly eyes. Indeed, our modern world (including the Internet) depends heavily on encryption of information. In this course, we learn about the development of cryptography from simple substitution codes to today's complex cryptographic systems. We delve into the mathematical basis underlying cryptographic systems. Topics to be discussed include the following: early ciphers; the development of code-breaking methods; the cipher of Mary, Queen of Scots; the Vigenere cipher; the Enigma machine; streaming ciphers; the impact of language; and public key encryption. As we consider the historical development of cryptography, we will consider what makes for a good cipher system. We conclude by looking at the future of cryptography and especially the potential impact of quantum computing. • Lecture + Q&A.