# ESP Biography

## PAUL CHRISTIANO, ESP Teacher

Major: Mathematics

College/Employer: MIT

Not Available.

## Past Classes

(Clicking a class title will bring you to the course's section of the corresponding course catalog)

C4052: Streaming Algorithms in Splash! 2010 (Nov. 20 - 21, 2010)
Imagine you have one normal-sized sheet of scratch paper to write on and a list of a million numbers. You read the list, making notes on your scratch paper as you go. Afterwards, someone asks "How many times did 1134547 appear in that list?" You look at your scratch paper and respond, "Between 15000 and 16000 times," and you are right. How can this be possible? You have kept track approximately of millions of things while only writing down thousands of digits. Programs which try to extract conclusions from huge quantities of data on the internet find themselves in scaled-up versions of this same situation. The volume of data being continually presented swamps the available memory, requiring new algorithmic ideas. We will discuss some of the problems and solutions in this field.

M3447: Proofs, Games and Debates: Complexity & Interaction I in Junction Summer 2010 (Jul. 01 - Aug. 11, 2010)
If I want to prove something to you, I can try to write down a mathematical proof to convince you. Often, though, we care about claims that don't have simple proofs. For example, if I wanted to prove that white always wins in chess, I might need quintillions of pages to enumerate every possible line of play for black. An important idea in modern computer science is to study interactive proof systems: protocols that powerful provers can use to quickly prove a claim which would otherwise take impractically long. We will discuss a number of such systems, culminating in one powerful enough to simulate an exponentially long mathematical proof. Most of the systems we discuss won't themselves be practically useful, but they are theoretically interesting and have practically important consequences.

M3449: Streaming Algorithms in Junction Summer 2010 (Jul. 01 - Aug. 11, 2010)
Imagine you have one normal-sized sheet of scratch paper to write on and a list of a million numbers. You read the list, making notes on your scratch paper as you go. Afterwards, someone asks "How many times did 1134547 appear in that list?" You look at your scratch paper and respond, "Between 15000 and 16000 times," and you are right. How can this be possible? You have kept track approximately of millions of things while only writing down thousands of digits. Programs which try to extract conclusions from huge quantities of data on the internet find themselves in scaled-up versions of this same situation. The volume of data being continually presented swamps the available memory, requiring new algorithmic ideas. We will discuss some of the problems and solutions in this field.

M3450: How to Sell Stuff Rationally (To Rational People) in Junction Summer 2010 (Jul. 01 - Aug. 11, 2010)
Suppose I have several million dollars of precious artwork to sell, and a thousand collectors are interested. The collectors may behave in complicated ways--they will value different pieces of artwork differently, they may be interested only in buying several pieces as a group, and of course they may try to collude and game the system. How can I conduct an auction so that everyone is happy, I make a lot of money, and no one can game the system? I will present a number of results (some recent and some very old) concerning this and related problems in the field of mechanism design. We will discuss a variety of problems in designing auctions, elections, and efficiently allocating public goods. Some of the ideas are simple--you have probably encountered a few in your daily life--and some are rather complex and surprising.

M3505: Finding Things Quickly in Junction Summer 2010 (Jul. 01 - Aug. 11, 2010)
Being able to put stuff away somewhere you can find it is important. When you are storing a billion things, it gets even more important. Many modern computer programs need to solve this problem frequently. We will discuss one way, called hashing, to arrange data in a computer (or not in a computer, if for some reason you need to store huge amounts of data by hand) so that you can find it again extremely quickly. We will cover universal hash families, FKS hashing, and cuckoo hashing.

M3506: Arguments, Knowledge, and Simulation: Complexity & Interaction II in Junction Summer 2010 (Jul. 01 - Aug. 11, 2010)
If I want to prove something to you, I can try to write down a mathematical proof to convince you. Often, though, we care about claims that don't have simple proofs. For example, if I wanted to prove that white always wins in chess, I might need quintillions of pages to enumerate every possible line of play for black. An important idea in modern computer science is to study interactive proof systems: protocols that powerful provers can use to quickly prove a claim which would otherwise take impractically long. We will discuss a number of such systems, culminating in one powerful enough to simulate an exponentially long mathematical proof. Most of the systems we discuss won't themselves be practically useful, but they are theoretically interesting and have practically important consequences.

M3507: Life as an Algorithms Problem in Junction Summer 2010 (Jul. 01 - Aug. 11, 2010)
Thinking about sophisticated algorithm using everyday reasoning is hard. Thinking about algorithms using algorithmic reasoning is easy. Thinking about the world using everyday reasoning can get hard. Clearly, the solution is to think about the world using algorithmic reasoning. We will discuss some of the approximations and assumptions which are second nature to computer scientists but may seem strange to normal humans, including asymptotic analysis, amortization, and adversarial design.

C3080: Cryptography in Splash! 2009 (Nov. 21 - 22, 2009)
I want to tell you some secret information in a public place where everyone can hear me. How can I do this? I will tell you.

M2396: Introduction to Cryptography in HSSP Summer 2009 (Jul. 12, 2009)
Suppose you and a friend are talking to each other, but an eavesdropper hears every word you say. Can you still communicate without letting the eavesdropper learn anything about your conversation? Is it possible to end your emails with signatures which no one else can forge? We will discuss solutions to these and other problems of a similar flavor. The focus will be skewed towards obtaining solutions which are provably secure rather than particularly practical.

C1673: Introduction to Computability Theory in Splash! 2008 (Nov. 22 - 23, 2008)
Many problems can be solved automatically by computers, but are there problems that can't be? We will discuss some limitations on the problems which can be solved by any physical machine and some interesting examples of problems that cannot be solved in general, no matter how long you are willing to spend. If time permits there may be a discussion of Godel's incompleteness theorems and their connection to the subject.

S1956: Pedantry in Splash! 2008 (Nov. 22 - 23, 2008)
Learn how to endear yourself to friends and family with this special course on improving your skill in acting like an annoying, nitpicky snob. We cover techniques in picking apart grammatical errors, mocking minor flaws in logic, giving off an air of smug sarcasm, and other techniques for criticizing the inconsequential imperfections in the language of those around you.

S2026: Your Intuition Sucks in Splash! 2008 (Nov. 22 - 23, 2008)
Hear some crazy logical puzzles, weird physical truths, and other mind-blowing nuggets of reality that will completely change your life, make you rich and famous, and rocket you towards nirvana.