1 / 10

TCSS 440/540: Theory of Computation

TCSS 440/540: Theory of Computation. An Introduction. What is this course about?. Suppose I give you 1,000,000 processors (2 GHz), 10 TB of memory, and a network to connect them. What can you compute and how fast?

taro
Download Presentation

TCSS 440/540: Theory of Computation

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. TCSS 440/540: Theory of Computation An Introduction

  2. What is this course about? • Suppose I give you 1,000,000 processors (2 GHz), 10 TB of memory, and a network to connect them. What can you compute and how fast? • How much does your answer change if I give you 2,000,000 processors and 20 TB? • Imagine if we connected all computers on UWT campus and used them as one big computer. What could you compute and how fast?

  3. In other words … • What are the capabilities and limitations of computers? • How would you even begin to answer these questions?

  4. One Approach • Empirical approach: build what you can, program, tinker, etc. • Problem: No matter how good your program is, how will you know whether there is a better program out there that you have not thought of or whether there is no such program?

  5. Another Approach • Analytical approach: Develop a formal model of your computer and prove things about your model. • Abstraction. • We already do abstraction to some extent. We don’t think about electrons travelling in wires or the effect of temperature or the color of the power cord when we program (someone else has to think about these things, though!)

  6. More abstraction • Memory hierarchy: caches, main memory, disks • Technological properties of the computer: Silicon, fiber optics, magnetic properties • We abstract them away (for now). • [picture of scary monster goes here]

  7. Areas of Theoretical Computer Science • Complexity Theory: Why are some problems harder than others? • For example, • searching for numbers in an array (EASY) • sorting a list of numbers (HARDER, but still pretty EASY) • Traveling salesperson problem (VERY HARD) • Factoring a 500-digit number (seems to VERY HARD but it might be EASY)

  8. Computability Theory: What is computable? • Some problems have no algorithmic solution • Given an arbitrary mathematical statement, determine whether it is true or false • Halting problem • Program correctness (applications to software development)

  9. Automata Theory • Finite automata • Text processing, compilers, hardware design • Context-free grammars • Programming languages, compilers • Natural language processing (AI)

  10. What You Should Get Out of This Course • Direct experience with the process of abstraction. • Exposure to elegance in computation and heightened aesthetic sense when you build real systems. • Exposure to some of the philosophical issues in computer science. • Some of the tools/techniques needed for other courses. Problem solving skills. • A different view of computation.

More Related