CS 390 Introduction to Theoretical Computer Science Instructor

  • Slides: 29
Download presentation
CS 390 Introduction to Theoretical Computer Science

CS 390 Introduction to Theoretical Computer Science

Instructor Name: Office: Phone: e-mail: Shunichi Toida ED 252 -4 683 - 3392 toida@cs.

Instructor Name: Office: Phone: e-mail: Shunichi Toida ED 252 -4 683 - 3392 toida@cs. odu. edu

Textbook John Martin, Introduction to Languages and the Theory of Computation, 2 nd edition,

Textbook John Martin, Introduction to Languages and the Theory of Computation, 2 nd edition, Mc. Graw-Hill, New York, 1996.

Grading Homework Projects Test x 2 Final Exam 20% 10% 35%

Grading Homework Projects Test x 2 Final Exam 20% 10% 35%

Home Page for CS 390 http: //www. cs. odu. edu/~toida /courses/CS 390/390. html Homework

Home Page for CS 390 http: //www. cs. odu. edu/~toida /courses/CS 390/390. html Homework questions and solutions, syllabus etc. are on this page.

Office Hours Mondays & Wednesdays 4: 30 - 5: 30 p. m. You can

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

Final Exam Thursday, August 3, 2000 3: 00 - 6: 00 p. m. ED 226

Objectives and Outline

Objectives and Outline

Objectives • Study the concept of computation, and limitations of computer and computation. •

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

Solve problems with Computers

To solve a problem by a computer a sequence of step by step instructions

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

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

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 ?

Can such a sequence of instructions always be found for a given problem ?

No, not always !

No, not always !

When can none be found ?

When can none be found ?

Examples of unsolvable problem – Halting problem – Tiling problem

Examples of unsolvable problem – Halting problem – Tiling problem

Halting problem Does a given program stop after a finite amount of time for

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

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.

It is known that no computer programs can be written to solve those problems.

How do we know they are unsolvable ?

How do we know they are unsolvable ?

To answer the question we must know what we mean by computation and computer,

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.

We must know the essence of computation, and computer.

The essence of computer and computation is represented by Turing machine, and computation by

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

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,

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

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.

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

Review of Mathematics