160 likes | 288 Views
CS 454 Theory of Computation. Sonoma State University, Fall 2012 Instructor: B. (Ravi) Ravikumar Office: 116 I Darwin Hall. Lecture 1 Goals: overview (45 minutes) Course overview Field overview Chapter 1 (55 minutes).
E N D
CS 454 Theory of Computation Sonoma State University, Fall 2012 Instructor: B. (Ravi) Ravikumar Office: 116 I Darwin Hall
Lecture 1 • Goals: • overview (45 minutes) • Course overview • Field overview • Chapter 1 (55 minutes)
What is theory of computation? Theory of computation deals with computational models – what they can and can’t do. Computational models: instead of defining it, we will give some examples. • Cellular automaton • L-system • finite automaton
Course overview • finite automata • DFA, NFA, regular expressions • proof of equivalence, algorithms for conversions • What can’t be done by FA? • DFA minimization • context-free languages • grammar, pushdown automaton • equivalence • what can’t be done by cfg’s?
Turing machines • computability • variations of Turing machines • reductions, unsolvability • other computational models • Complexity Theory • time complexity • NP-completeness • Other topics • applications (e.g. compilers, image compression, graphics etc.) • cryptography, interactive proof systems • biologically inspired models of computation
Why Study Theory of Computation?From Stanford survey (Jeff Ullman) • A survey of Stanford grads 5 years out asked which of their courses did they use in their job. • Basics like CS106 (~ CS 215) took the top spots, of course. • But among optional courses, CS154 stood remarkably high. • 3X the score for AI, for example.
How Could That Be? • Regular expressions are used in many systems. • E.g., UNIX a.*b. • E.g., DTD's (Document Type Definition) describe XML tags with a RE format like person (name, addr, child*). • Finite automata model protocols, electronic circuits. • Theory is used in model-checking.
How? – (2) • Context-free grammars are used to describe the syntax of essentially every programming language. • Not to forget their important role in describing natural languages. • And DTD’s taken as a whole, are really CFG’s.
How? – (3) • When developing solutions to real problems, we often confront the limitations of what software can do. • Undecidable things – no program whatever can do it. • Intractable things – there are programs, but no fast programs. • CS 454 (and CS 415) give you the tools.
Other aspects of CS 454 • We’ll learn how to deal formally with discrete systems. • Proofs: You never really prove a program correct, but you need to be thinking of why a tricky technique really works. • Abstract models are important to design and understand complex software. • Abstract State Machine used to design Microsoft products • State Charts play a key role in software systems.
Text • Hopcroft, Motwani, Ullman, Automata Theory, Languages, and Computation 3rd Edition. • Goal is to cover roughly ¾ of the book.
Gradiance Registration • The “class token” for this edition of CS 454 is 7AC0798E • Register it at www.gradiance.com
Homework • The intent is that everyone will get 100% on all homeworks. • You are allowed to try as many times as you like. • Only the last try counts. • Don’t be afraid to guess and try again. • You’ll get some advice if you make a mistake.