320 likes | 624 Views
CS 390 Introduction to Theoretical Computer Science. Instructor. Name: Shunichi Toida Office: ED 252-4 Phone: 683 - 3392 e-mail: toida@cs.odu.edu. Textbook. John Martin, Introduction to Languages and the Theory of Computation, 2nd edition,
E N D
Instructor Name: Shunichi Toida Office: ED 252-4 Phone: 683 - 3392 e-mail: toida@cs.odu.edu
Textbook John Martin, Introduction to Languages and the Theory of Computation, 2nd edition, McGraw-Hill, New York, 1996.
Grading Homework 20% Projects 10% Test x 2 35% Final Exam 35%
Home Page for CS 390 http://www.cs.odu.edu/~toida /courses/CS390/390.html Homework questions and solutions, syllabus etc. are on this page.
Office Hours Mondays & Wednesdays 4:30 - 5:30 p.m. You can walk in any other time.
Final Exam Thursday, August 3, 2000 3:00 - 6:00 p.m. ED 226
Objectives • Study the concept of computation, and limitations of computer and computation. • Learn abstract languages called formal languages and devices to process them called automata. • Train in reasoning and problem solving. • Train in reading and writing technical articles.
To solve a problem by a computer a sequence of step by step instructions must be given to the computer. (Algorithm/Computer Program)
The instructions must be of finite length and executable by the computer. The computation must terminate after a finite amount of time.
Hierarchy of Computational Problems • Problems which can be solved by a fast algorithm ---- CS 361 • Problems which can NOT be solved by a fast algorithm ---- CS 361 • Problems which may or may not be solved by a fast algorithm --- CS 361, 483 • Problems which can not be solved by a computer -- CS 390
Can such a sequence of instructions always be found for a given problem ?
Examples of unsolvable problem • Halting problem • Tiling problem
Halting problem Does a given program stop after a finite amount of time for a given input ?
Tiling problem Can a given finite area, of any size, be covered using only tiles of given types such that the colors on any touching edges are the same ?
It is known that no computer programs can be written to solve those problems.
To answer the question we must know what we mean by computation and computer, independent of differences among computers, and languages.
We must know the essence of computation, and computer.
The essence of computer and computation is represented by Turing machine, and computation by Turing machine. Also “problem solving” is modeled as “language recognition”.
Four Major Topics • Regular languages and finite automata as a warm up for Turing machines --- also practically useful • Turing machines • Computation as processing by Turing machine • Unsolvability of Halting Problem
Course Outline (1) Review of mathematics (2) Languages --- abstract languages (3) Regular languages, regular expressions (4) Finite automata (5) Applications of finite automata
Course Outline Continued (6) Context-free languages, and push down automata --- used for compilers (7) Turing machines (8) Turing acceptable, decidable, computable (9) Unsolvability of Halting Problem
Objectives Revisited • Study the concept of computation, and limitations of computer and computation. • Learn abstract languages called formal languages and devices to process them called automata. • Train in reasoning and problem solving. • Train in reading and writing technical articles.