I have received many queries about whether CS276 is open to undergraduates. This is a short FAQ listing my policy on this issue. CS276 is an advanced theory class that is not really intended or aimed at the typical undergraduate audience. I generally encourage undergraduates to first exhaust our upper-division undergraduate curriculum in the area (e.g., all CS17x courses) before taking graduate courses. However, I realize that there is no undergraduate course on cryptography, and I am willing to take a few highly qualified undergraduates in the course, if there is room. Minimum prerequisites: a strong background in CS theory and/or math. For most students, this means you should have taken CS170 and CS172 and gotten an A. (In special cases, some other form of documentation of background in CS theory and mathematical maturity may be acceptable.) Acceptance into the class for undergraduates is only by consent of the instructor. Please be aware that graduate students receive first priority for acceptance, if the class is full. If you believe you qualify, sign up for the wait list, show up to the first class, and talk to me personally after the first class. Expect to work very hard, if you are admitted into the class.