In this class, students work with a series of mathematical models of computation that serve as theoretical computers. Their work with theoretical computers helps them gain a better understanding of the strengths and limitations of the actual computers they are accustomed to using. The course begins with an overview of discrete math including permutations, combinations, counting arguments, and infinities. The students then progress to an axiomatic treatment of propositional calculus, which is essential to an understanding of computer interactions. Various methods of proof, including mathematical induction and Cantorian diagonalization, are emphasized.
Students draw connections between theoretical and practical computer science.
Programming is used only in the context of illustrating theoretical principles and is not the focus of this course. Students who have previously taken CTY's Theoretical Foundations of Computer Science should not take this course. The Johns Hopkins University. All rights reserved.