Algorithms and Foundations: Research and Curriculum
Jeff EdmondsGrade Level
School must be accessible by TTC
Being a successful computer scientist in the future will require much more than coding simple algorithms that have been handed to you. This either has been done already or is becoming automated. On the other hand, many exciting problems arise everywhere, everyday, in every field of computer science. With training, these problems can be solved by you. The goal is to understand and think about complex things in simple ways. But don’t be fooled, however. There are deep ideas in simple things.
Theory is an area of Computer Science that teaches one to think creatively, abstractly, and logically. You will learn a rich storehouse of tools from which to draw. However, in order to be able to solve the particular problem that arises for you, you will need to abstract away its inessential features. In doing so, you will see that, though it is cosmetically completely different than any problem solved before, it is in fact substantially the same as some problems that have already been studied and substantially different than others. For example, there are problems that have quick algorithms to solve them. There are others for which the fastest algorithms known take more time than the age of the universe. Still others, provably have no algorithm at all. Understanding these similarities and differences, guides you in knowing which tools to use to solve your problem.