cs 390 introduction to theoretical computer science
DESCRIPTION
CS 390 Introduction to Theoretical Computer Science. Instructor. Name: Shunichi Toida Office: ED 252-4 Phone: 683 - 3392 e-mail: [email protected]. Textbook. John Martin, Introduction to Languages and the Theory of Computation, 2nd edition, - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: CS 390 Introduction to Theoretical Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062314/568132a2550346895d994451/html5/thumbnails/1.jpg)
CS 390 Introduction to Theoretical Computer Science
![Page 3: CS 390 Introduction to Theoretical Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062314/568132a2550346895d994451/html5/thumbnails/3.jpg)
Textbook
John Martin,
Introduction to Languages and the Theory of Computation,
2nd edition,
McGraw-Hill, New York, 1996.
![Page 4: CS 390 Introduction to Theoretical Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062314/568132a2550346895d994451/html5/thumbnails/4.jpg)
Grading
Homework 20%
Projects 10%
Test x 2 35%
Final Exam 35%
![Page 5: CS 390 Introduction to Theoretical Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062314/568132a2550346895d994451/html5/thumbnails/5.jpg)
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.
![Page 6: CS 390 Introduction to Theoretical Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062314/568132a2550346895d994451/html5/thumbnails/6.jpg)
Office Hours
Mondays & Wednesdays
4:30 - 5:30 p.m.
You can walk in any other time.
![Page 7: CS 390 Introduction to Theoretical Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062314/568132a2550346895d994451/html5/thumbnails/7.jpg)
Final Exam
Thursday, August 3, 2000
3:00 - 6:00 p.m.
ED 226
![Page 8: CS 390 Introduction to Theoretical Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062314/568132a2550346895d994451/html5/thumbnails/8.jpg)
Objectives and Outline
![Page 9: CS 390 Introduction to Theoretical Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062314/568132a2550346895d994451/html5/thumbnails/9.jpg)
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.
![Page 10: CS 390 Introduction to Theoretical Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062314/568132a2550346895d994451/html5/thumbnails/10.jpg)
Solve problems with Computers
![Page 11: CS 390 Introduction to Theoretical Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062314/568132a2550346895d994451/html5/thumbnails/11.jpg)
To solve a problem by a computer
a sequence of step by step
instructions must be given to the
computer.
(Algorithm/Computer Program)
![Page 12: CS 390 Introduction to Theoretical Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062314/568132a2550346895d994451/html5/thumbnails/12.jpg)
The instructions must be of finite
length and executable by the
computer.
The computation must terminate
after a finite amount of time.
![Page 13: CS 390 Introduction to Theoretical Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062314/568132a2550346895d994451/html5/thumbnails/13.jpg)
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
![Page 14: CS 390 Introduction to Theoretical Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062314/568132a2550346895d994451/html5/thumbnails/14.jpg)
Can such a sequence of instructions always be
found for a given problem ?
![Page 15: CS 390 Introduction to Theoretical Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062314/568132a2550346895d994451/html5/thumbnails/15.jpg)
No, not always !
![Page 16: CS 390 Introduction to Theoretical Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062314/568132a2550346895d994451/html5/thumbnails/16.jpg)
When can none be found ?
![Page 17: CS 390 Introduction to Theoretical Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062314/568132a2550346895d994451/html5/thumbnails/17.jpg)
Examples of unsolvable problem
– Halting problem
– Tiling problem
![Page 18: CS 390 Introduction to Theoretical Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062314/568132a2550346895d994451/html5/thumbnails/18.jpg)
Halting problem
Does a given program stop after a finite amount of time for a given input ?
![Page 19: CS 390 Introduction to Theoretical Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062314/568132a2550346895d994451/html5/thumbnails/19.jpg)
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 ?
![Page 20: CS 390 Introduction to Theoretical Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062314/568132a2550346895d994451/html5/thumbnails/20.jpg)
It is known that no computer programs can be written to solve those problems.
![Page 21: CS 390 Introduction to Theoretical Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062314/568132a2550346895d994451/html5/thumbnails/21.jpg)
How do we know they are unsolvable ?
![Page 22: CS 390 Introduction to Theoretical Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062314/568132a2550346895d994451/html5/thumbnails/22.jpg)
To answer the question we must know
what we mean by computation and computer,
independent of differences among computers, and languages.
![Page 23: CS 390 Introduction to Theoretical Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062314/568132a2550346895d994451/html5/thumbnails/23.jpg)
We must know
the essence of computation, and
computer.
![Page 24: CS 390 Introduction to Theoretical Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062314/568132a2550346895d994451/html5/thumbnails/24.jpg)
The essence of computer and computation is represented by
Turing machine, and
computation by Turing machine.
Also “problem solving” is modeled as “language recognition”.
![Page 25: CS 390 Introduction to Theoretical Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062314/568132a2550346895d994451/html5/thumbnails/25.jpg)
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
![Page 26: CS 390 Introduction to Theoretical Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062314/568132a2550346895d994451/html5/thumbnails/26.jpg)
Course Outline
(1) Review of mathematics
(2) Languages --- abstract languages
(3) Regular languages, regular expressions
(4) Finite automata
(5) Applications of finite automata
![Page 27: CS 390 Introduction to Theoretical Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062314/568132a2550346895d994451/html5/thumbnails/27.jpg)
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
![Page 28: CS 390 Introduction to Theoretical Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062314/568132a2550346895d994451/html5/thumbnails/28.jpg)
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.
![Page 29: CS 390 Introduction to Theoretical Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062314/568132a2550346895d994451/html5/thumbnails/29.jpg)
Review of Mathematics