Cryptology, the study of secret codes, serves as an excellent setting for developing quantitative problem-solving skills. Moreover, it's fun, particularly because most of the unpleasant, mechanical aspects can be handled by the computer, leaving the creative, interesting part for the you. In this course we will tackle the problem of cryptanalysis, deciphering encoded text, using some rather tried and true mathematical techniques. To assist you is a Java program that I have developed called Krypto. This program is easy to use and very helpful, but it does not solve the most interesting ciphers. For that you will have to use your own reasoning skills. We will spend the first part of the semester on "classic" cryptology, techniques used prior to the "information age" that have been rendered useless by modern computers. Later we will consider the modern techniques now employed to maintain security and authenticate documents. We will also discuss some the more colorful events in the history of cryptology. We will use this Website for distributing material, and the handin program for submitting homework. You are be responsible for checking the Website regularly, since I will use it to communicate important information throughout the semester.