1 / 29

CS 390 Introduction to Theoretical Computer Science

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,

Download Presentation

CS 390 Introduction to Theoretical Computer Science

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS 390 Introduction to Theoretical Computer Science

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

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

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

  5. 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.

  6. Office Hours Mondays & Wednesdays 4:30 - 5:30 p.m. You can walk in any other time.

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

  8. Objectives and Outline

  9. 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.

  10. Solve problemswith Computers

  11. To solve a problem by a computer a sequence of step by step instructions must be given to the computer. (Algorithm/Computer Program)

  12. The instructions must be of finite length and executable by the computer. The computation must terminate after a finite amount of time.

  13. 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

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

  15. No, not always !

  16. When can none be found ?

  17. Examples of unsolvable problem • Halting problem • Tiling problem

  18. Halting problem Does a given program stop after a finite amount of time for a given input ?

  19. 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 ?

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

  21. How do we know they are unsolvable ?

  22. To answer the question we must know what we mean by computation and computer, independent of differences among computers, and languages.

  23. We must know the essence of computation, and computer.

  24. The essence of computer and computation is represented by Turing machine, and computation by Turing machine. Also “problem solving” is modeled as “language recognition”.

  25. 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

  26. Course Outline (1) Review of mathematics (2) Languages --- abstract languages (3) Regular languages, regular expressions (4) Finite automata (5) Applications of finite automata

  27. 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

  28. 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.

  29. Review of Mathematics

More Related