theoryIntro - Abstract Thinking Intro to the Theory of...

Info icon This preview shows pages 1–4. Sign up to view the full content.

View Full Document Right Arrow Icon
Abstract Thinking, Intro to the Theory of Computation SC/COSC 2001 3.0 Lecture Notes Jeff Edmonds Winter 99-00, Version 0.2
Image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
Contents 1 Preface 2 2 DFAs, Iterative Programs, and Loop Invariants 5 2.1 Different Models and Notations for Simple Devices and Processes . . . . . . . . . . . . . . . . 5 2.2 Iterative Programs and Loop Invariants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.3 Mechanically Compiling an Iterative Program into a DFA . . . . . . . . . . . . . . . . . . . . 9 2.4 More Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3 Converting NFA to DFA using the Clones and the Iterative Program Levels of Abstrac- tion 22 4 Overview of Results 28 5 Pumping vs Bumping Lemma 30 5.1 Pumping Lemma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 5.2 Bumping the Pumping Lemma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 6 Context Free Grammars 36 6.1 Proving Which Language is Generated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 6.2 Pumping Lemma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 7 Parsing with Context-Free Grammars 42 1
Image of page 2
Chapter 1 Preface These notes are by no means complete. They are just those that I have managed to scratch together so far. Intro: Thinking Abstractly: On one level, this course can be viewed as teaching a sequence of simple models of computation and simple algorithms. On a higher level, the goal of the course is to teach you to think abstractly about computation. The more abstractions a person has from which to view the problem, the deeper his understanding of it will be, the more tools he will have at his disposal, and the better prepared he will be to design his own innovative ways to solve the problems that may arise in other courses or in the work place. Hence, we present a number of different notations, analogies, and paradigms within which to develop and to think about algorithms. Explaining: To be able to prove yourself within a test or the world, you need to be able to explain the material well. In addition, explaining it to someone else is the best way to learn it yourself. Hence, I highly recommend spending a lot of time explain the material over and over again out loud to yourself, to each other, and to your stuffed bear. Dreaming: When designing an algorithm, the tendency is to start coding. When studying, the tendency is to read or to do problems. Though these are important, I would like to emphasis the importance of thinking, even day dreaming, about the material. This can be done while going along with your day, while swimming, showering, cooking, or laying in bed. Ask questions. Why is it done this way and not that way? Invent other algorithms for solving a problem. Then look for input instances for which your algorithm gives the wrong answer. Mathematics is not all linear thinking. If the essence of the material, what the questions are really asking, is allowed to seep down into your subconscious then with time little thoughts will begin to percolate up. Pursue these ideas. Sometimes even flashes of inspiration appear. Course Outline: Useful Models: We learn about regular languages, deterministic finite automata, context free gram- mars, Turing machines, and NP-completeness. We learn the definitions, how to construct, and how to manipulate them.
Image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
Image of page 4
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}

What students are saying

  • Left Quote Icon

    As a current student on this bumpy collegiate pathway, I stumbled upon Course Hero, where I can find study resources for nearly all my courses, get online help from tutors 24/7, and even share my old projects, papers, and lecture notes with other students.

    Student Picture

    Kiran Temple University Fox School of Business ‘17, Course Hero Intern

  • Left Quote Icon

    I cannot even describe how much Course Hero helped me this summer. It’s truly become something I can always rely on and help me. In the end, I was not only able to survive summer classes, but I was able to thrive thanks to Course Hero.

    Student Picture

    Dana University of Pennsylvania ‘17, Course Hero Intern

  • Left Quote Icon

    The ability to access any university’s resources through Course Hero proved invaluable in my case. I was behind on Tulane coursework and actually used UCLA’s materials to help me move forward and get everything together on time.

    Student Picture

    Jill Tulane University ‘16, Course Hero Intern