cs 390 introduction to theoretical computer science

Post on 01-Jan-2016

51 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

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, - PowerPoint PPT Presentation

TRANSCRIPT

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

top related