cs 390 introduction to theoretical computer science

29
CS 390 Introduction to Theoretical Computer Science

Upload: alfreda-burt

Post on 01-Jan-2016

42 views

Category:

Documents


1 download

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 Presentation

TRANSCRIPT

Page 1: CS 390 Introduction to Theoretical Computer Science

CS 390 Introduction to Theoretical Computer Science

Page 2: CS 390 Introduction to Theoretical Computer Science

Instructor

Name: Shunichi Toida

Office: ED 252-4

Phone: 683 - 3392

e-mail: [email protected]

Page 3: CS 390 Introduction to Theoretical Computer Science

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

Grading

Homework 20%

Projects 10%

Test x 2 35%

Final Exam 35%

Page 5: CS 390 Introduction to Theoretical Computer Science

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

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

Final Exam

Thursday, August 3, 2000

3:00 - 6:00 p.m.

ED 226

Page 8: CS 390 Introduction to Theoretical Computer Science

Objectives and Outline

Page 9: CS 390 Introduction to Theoretical Computer Science

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

Solve problems with Computers

Page 11: CS 390 Introduction to Theoretical Computer Science

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

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

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

Can such a sequence of instructions always be

found for a given problem ?

Page 15: CS 390 Introduction to Theoretical Computer Science

No, not always !

Page 16: CS 390 Introduction to Theoretical Computer Science

When can none be found ?

Page 17: CS 390 Introduction to Theoretical Computer Science

Examples of unsolvable problem

– Halting problem

– Tiling problem

Page 18: CS 390 Introduction to Theoretical Computer Science

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

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

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

Page 21: CS 390 Introduction to Theoretical Computer Science

How do we know they are unsolvable ?

Page 22: CS 390 Introduction to Theoretical Computer Science

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

We must know

the essence of computation, and

computer.

Page 24: CS 390 Introduction to Theoretical Computer Science

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

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

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

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

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

Review of Mathematics