CSC 303

Theory of Computation

Course Description

An introduction to the fundamental ideas and the basic paradigms of computer science, the very foundation on which to base one's thinking about computers now and in the future. This course will address some of the following topics in the theory of computation-- the theory of automata and formal languages, computability by a Turing machine, and computational complexity. Computational tasks that cannot be solved on any computer or tasks where there is no practical, reasonably fast algorithm to solve them will be considered. The perspective here is from that of computing, but the treatment is mathematical in nature.