200 likes | 297 Views
Computability COMS 3261. Agenda. Tuesday, 9/4/2001 Today : Introduction to the course policies, expectations and the subject matter For next time: Read chapter 0 Do review problems “problem set 0” not to hand in. Instructor: Zeph Grunschlag, Instructor TA’s: Ayesha Abdul-Quader
E N D
Agenda Tuesday, 9/4/2001 • Today: Introduction to the course policies, expectations and the subject matter • For next time: • Read chapter 0 • Do review problems “problem set 0” not to hand in.
Instructor: Zeph Grunschlag, Instructor TA’s: Ayesha Abdul-Quader Daniel Perotti Michael Kalnicki Yoav Hirsch
About me • 3rd year at Columbia • Graduated from Berkeley in ’99 • Mathematics PhD. • Thesis title: Algorithms in Geometric Group Theory • Research areas: • Group theory and topology • Formal languages • Computer vision
Course Policies, Schedule, Syllabus • Go over handout explaining required text, overview of course, grading breakdown, policies, etc. • All available from course homepage: www.cs.columbia.edu/~zeph/3261 • All homework, and most other material will be available online
Lectures and Notes • Lectures will consist of a mixture of slides and black-board work. • Definitions, general concepts, illustrations – on the slides and available on the web • Specific examples, exercises – blackboard • May also use e-podium camera, if need to do extra board-work.
Course Thematic Overview We’ll explore some theoretical models of computation, which are closely related to actual computers in every day use. Three viewpoints are encountered • Automata Theory • Grammars • Algorithms
AutomataTheory This is the study of abstract computing devices or machines. Various models are studied with different abilities and limitations on their capabilities. GOAL: Describe precisely the computational power of each machine. E.G., can a computer answer the same computational questions if its hard-drive is removed?
Grammars • A grammar is a set of rules which governs what is and isn’t syntactically correct. • English example: “I dog love.” -- violates English Grammar • Java example: public class Wrong{ private int x } -- violates Java’s specification (given by a grammar linked to from links page www.cs.columbia.edu/~zeph/3261/links.html)
Grammars GOAL: Can we automate the process of finding syntactic errors by magically transforming any grammatical specification to a computer or computer program? If so, which of the computer models studied in Automata Theory is suitable for the purpose?
Algorithms • The last major theme focuses on algorithmic problems which computer scientists encounter (such as adding numbers together), as opposed to the computer which solves them (Automata Theory) or the means by which they are described (Grammars).
Algorithms GOAL: Given a specific problem such as • adding numbers • telling if a string is palindromic (racecar) • the Traveling Salesperson Problem Which automata can solve the problem? Which grammars can describe it? Are there problems that are unsolvable by means of a computer or indescribable? Are there important problems which are undecidable, or at least, cannot be solved in a reasonable amount of time by any computer?
Formal Languages • Formal languages will act as the glue that unifies the treatment of all three perspectives. • Pre-definition: A formal language is a set consisting of strings. • In some sense, one can think of English as consisting of all valid English words {a, aback, abacus, abaft, abandon, … } • Probably more accurate to think of English as consisting of valid English sentences. • Java is the set of all compiling Java programs.
Formal Languages • Automata theory: Computers are defined to act purely on strings and therefore define certain languages. • Grammars: Grammars generate languages by admitting a subset of all possible strings. (most natural ) • Algorithms: Instances of algorithmic problems are viewed as strings by identifying them with their description. (least natural )
Chronolgical Overview Automata, Grammars and Algorithms are explored simultaneously through four computational models, progressively more complicated (though #3 is more powerful than #4) • Finite Automata • Pushdown Stack Automata • Turing Machines • Polynomial-Time Turing Machines
Chomsky Hierarchy All REC = computed by TM Context Free = computed by PDA Regular = computed by FA Finite languages
Theory vs. Practice • This is a true theory course • No programming –except for simple tools like egrep • Definition/Example/Theorem/Proof style –to a point • All the objects studied are mathematical in nature • The last theory course required of all.
Theory vs. Practice • So what good is this course? • Every valid scientific discipline needs to have a solid theoretical foundation • Valid theoretical models reflect the essence of practical truths. Much thought went into noticing that F = ma was a great modeler for physical motion. Similarly, much research went into the models that we’ll study.
Theory vs. Practice • But what’s the practical value? • This course has many practical applications • Some portions are less applicable (e.g. Turing Machines) but are of fundamental importance and form a common language across all disciplines of CS • Useful in future courses • Theory courses: 4231, 4236 • Non-theory also: 3823, 3824, 4115
Practical Applications Pattern recognition, intrusion detection, software engineering (UML), GUI programming (event-listeners), network security (protocols), verification (discovering bugs in chips), natural language processing (Amtrak reservation system), computational genomics (DNA sequencing), compilers, document definitions (XML), and many many more. For the most part, we won’t delve too far into the practical applications.