This preview shows pages 1–3. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.View Full Document
Unformatted text preview: CLASS NOTES COT 4210 Discrete Structures II © Dr. David A. Workman [email protected] School of Electrical Engineering and Computer Science University of Central Florida January 2001 (Revised August 2002) COT 4210 Discrete Structures II Workman Introduction to Computation Theory and the Chomsky Hierarchy Computer science is about the theory of computation and computing devices , not their application . However, what has made computer science so important in today’s society is that the computer is the most powerful and most widely applicable tool mankind has yet devised. The accomplishments of IBM’s “Deep Blue” against the world chess master should underscore the power of this tool. And, it begs the question whether or not the computer will one day become the “perfect human.” This is fantasy(?), but it is true that computers help humans “do things more perfectly” and thus multiply the human intellectual power and potential. Why study the theory of computation? What are its benefits? A theory identifies, encapsulates, abstracts and generalizes the fundamental concepts, properties and principles governing the behavior of complex systems. Theories are developed by studying many related examples or observable phenomena and then attempting to build abstract models that explain the observed characteristics of those examples. Models of a good theory have predictive capabilities enabling the theoretician to deduce new properties and behaviors of the system being studied. Theoretical models also provide a framework for analyzing and understanding completely different systems by showing that the new system satisfies the axioms and assumptions necessary to apply the theory. This is conceptual reuse - reuse at the highest level of abstraction. Theory, then, is knowledge in its most reusable form. How can you reuse the theories presented in this course? This course defines several classes of common and frequently occurring computational problems together with the algorithms (abstract machine models) necessary to solve them. For some of these problems, the theory tells us how to construct the most “efficient” solutions possible! 1 For other kinds of problems, the theory tells us that a solution of a given type does not exist - so don’t bother to look. Some concrete examples are: • Construct a program with the fewest number of statements that will recognize all and only valid numeric literals in Java. • Construct a logic circuit with the fewest number of gates that will control a coin changer on a vending machine. • Construct an algorithm that will determine whether or not a source file contains syntactically correct Java code. The algorithm must be O(n) in time complexity, where n is the length of the source file in bytes....
View Full Document
This note was uploaded on 06/09/2011 for the course COT 4210 taught by Professor Staff during the Spring '08 term at University of Central Florida.
- Spring '08
- Computer Science