MIT professor Scott Aaronson wrote a nice piece title P vs. NP for dummies”, that I found when browsing HackerNews. And while browsing in the rest of site, more for the sake curiosity than for any other reason, I found professor Aaronson’s teaching statement. It’s a wonderfully lucid and sober document, and one that I wish had read in the beginning of my undergraduate years. The document is small (4 pages long), and well worth reading in its entirety, but I quote the passage that stroke me the most. The author makes five suggestions to make undergraduate teaching more rewarding; here’s the first one:
Teach Theoretical Computer Science as a Liberal-Arts Course. Whenever students are taking
our courses not out of intellectual curiosity but to fulﬁll the requirements for a degree, we will always
be ﬁghting an uphill battle. Not even the clearest, best-organized lecturer on earth can get around a
fundamental fact: that the typical student headed for a career at Microsoft (i) will never need to know the Master Theorem, (ii) knows she’ll never need to know the Master Theorem, (iii) doesn’t want to know the Master Theorem, and (iv) will immediately forget the Master Theorem if forced to learn it. Faced with this reality, I believe the best service we can provide for non-theory students is to teach them theoretical computer science essentially as a liberal-arts course. Aspiring computer scientists should know that they will not be gloriﬁed toaster repairmen, but part of a grand intellectual tradition stretching back to Euclid, Leibniz, and Gauss. They should know that, in Dijkstra’s words, “computer science is no more about computers than astronomy is about telescopes”—that the quarry we’re after is not a slightly-faster C compiler but a deeper understanding of life, mind, mathematics, and the physical world. They should know what the P versus NP question is asking and why it’s so diﬃcult. They should be regaled with stories of Turing’s codebreaking in World War II, and of Gödel writing a letter to the dying von Neumann about “a mathematical problem of which your opinion would very much interest me.” They should be challenged as to whether they would have had the insights of Edmonds, Cook, Karp, and Valiant, had they lived a few decades earlier. And they should be prepared to appreciate future breakthroughs in theoretical computer science on the scale of Shor’s algorithm or Primes in P. From the discussions at websites such as Slashdot, it’s clear that the “general nerd public” has enormous curiosity about these breakthroughs, and it’s also clear that the level of curiosity greatly exceeds the level of understanding.