But is it? What if we could invent the ultimate computer? One that made today’s best supercomputer look like an abacus. Surely then a skilled programmer with superstar abilities could solve any problem! Right?
Well... no. Some problems, as it turns out, are fundamentally difficult and some are truly impossible for any computer to solve. As computer programmers, it is our duty to delve deep into this realm of computational capability. In Udacity’s new course, Introduction to Theoretical Computer Science: Dealing with Challenging Problems (CS 313), which begins on October 1, you will do exactly this.
As Sebastian Wernicke, the instructor for this course, puts it, “Theoretical computer science is about what computers can and cannot do. It shows us the fundamental capabilities and limitations of computation itself. Simple problems no computer can ever solve. Complicated problems that are actually easy. Anyone serious about computer science should know this.”
But if some problems really are impossible, why bother learning about them? Sebastian puts it nicely: “One of the most exciting things for me is that theoretical computer science often sounds ‘depressing’ because many famous results will tell you ‘a computer cannot do that. Ever.’ Yet when you look closely at these results and try to understand them, you can often find pretty neat ‘loopholes’ that will tell you ‘yes, a computer CAN do that as long as you tread carefully and put some thought into the process.’ Not many people know this.”
| Sebastian Wernicke: Nothing is impossible. Unless it is. |
This course assumes a knowledge of computer programming and a familiarity with algorithms. If you’re intimidated by such a theoretical course, don’t be! In the strictest sense of the word, it won’t be difficult.
So what are you waiting for? Sign up now!