Busy Beaver is a good start, and they got to it within about 15 minutes of the start of the contest. Chaining busy beavers will also get you much larger, but by that point, someone had already chained exponentials in a similar fashion, so it wouldn't count as a new trick. The next trick was to define the second-order Busy Beaver function, BB_2. I'll assume you're familiar with the definition of the Busy Beaver function; If not, I suggest Wikipedia :). BB_2 is the busy beaver function for Turing machines that have the ability to solve the halting problem on normal Turing machines (e.g. suppose they have a magical oracle attached that knows the answer to the halting problem for any machine). Such a machine can therefore compute Busy Beaver in a small number of steps, and so can produce numbers much larger than the standard Busy Beaver function. So, the next entry was BB_2(10^100) Of course, we can continue: Define BB_3 to be the busy beaver function for machines with halting-problem oracles for second-order turing machines, BB_4 to be ... and so on. But, before we get caught up in games trying to increase the subscript, we can go even further. We can in fact define BB_aleph-0, to be the busy beaver function for a Turing machine that has a oracle that answers the halting problem for *any* finite-order TM. Note that even though this definition now incorporates an infinite quantity, the number defined is still finite, since it is defined in terms of finite, halting, turing machines, along with oracles that only produce finite numbers. So, next entry is BB_\aleph-0(10^100) But, why stop at the *first* infinite ordinal? We can define BB_(\aleph-0+1)(10^100) as the busy beaver function for turing machines that have the same oracle as above, as well as being able to solve the halting problem for order-aleph-0 TMs. And, in fact, we can define a Turing machine for any ordinal (any size of infinity), with a corresponding Busy Beaver function. So, the next entry was BB_(\omega^{\omega^{\omega^{\omega}}}(10^100)) (\omega means the same thing as aleph-0, when we're discussing ordinals). At this point, the contestants had pretty much exhausted Busy Beaver. You can, of course, keep nesting these functions, and keep putting in larger infinities, but neither of those is fundamentally new. However, there was one *big* trick left before the contest ended. Every concept mentioned so far, can be rigorously defined in terms of mathematical set theory (I'm not sure if you're familiar with this, but mathematicians have basically settled on pure set theory as the basis of all mathematics, and everything else is, in principle, defined in terms of sets). Therefore, conceptually, we could define a larger number than *any* of these by saying something like: ``The smallest number larger than any representable in standard set theory using fewer than 10^100 symbols'' However, this doesn't quite work, because we don't have a rigorous way to define ``representable''. It turns out that doing so would be equivalent to having a truth predicate for set theory -- that is, a predicate, in set theory, that when applied to a (encoded) statement of set theory, tells whether or not that statement is true. And, in the 1930s, Alfred Tarski proved that no consistent axiomatic schema can contain its own truth predicate. However, let us define a second-order set theory. In standard set theory, you can take some expression, e.g. Runs(Bob) and replace some object with a variable, and quantify over it: \exists x : Runs(x) In our second-order set theory, you can quantify over *predicates* as well, e.g. \exists x : x(Bob) Now, it turns out, this set theory is completely well-defined, and, furthermore, it is powerful enough to contain standard set theory's truth predicate. Therefore, in this *second-order set theory*, the above statement is well-defined, and we can submit that definition as our number. After the MIT professor finished this explanation, the Princeton challenger literally fell over onto the floor, and the judge declared the MIT professor the winner.