Post on 01-Jan-2016
description
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,
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 and Outline
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.
Solve problems with Computers
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 ?
No, not always !
When can none be found ?
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.
How do we know they are unsolvable ?
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 processingby 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.
Review of Mathematics