About CS 51
In CS 51, we won't ask you to memorize any utterly useless facts (or even thoroughly useful ones!).
We're after something bigger.
All your life you've been faced with computational problems, from sharing toys with friends to the programming assignment you just handed in. But what does it mean to compute something? What makes some problems harder than others? Are there questions even the world's most powerful computer can't answer?
We'll answer these questions and, in the process, explore important concepts such as Turing machines, languages, reductions, and NP-completeness.
It's a magical world, the world of theoretical computer science, and we hope you'll join us in exploring it!
the course staff