Increasing Interaction and Support in the Formal Languages and Automata Theory Course
|
|
|
- Coleen Allison
- 9 years ago
- Views:
Transcription
1 Increasing Interaction and Support in the Formal Languages and Automata Theory Course [Extended Abstract] Susan H. Rodger Jinghui Lim Stephen Reading ABSTRACT The introduction of educational software such as JFLAP into the course Formal Languages and Automata (FLA) has created a learning environment with automatic feedback on theoretical topics. In this paper we show how we further increase the interaction in the FLA course with the expansion of additional theoretical topics in JFLAP, and how we have added grading support into JFLAP for instructors. Categories and Subject Descriptors F.4.3 [Theory of Computation]: Mathematical Logic and Formal Languages Formal Languages; D.1.7 [Software]: Programming Techniques Visual Programming General Terms Theory Keywords JFLAP, automata, formal languages, pumping lemma, Moore machine, Mealy machine 1. INTRODUCTION The teaching of formal languages and automata (FLA) is moving from a pencil and paper environment to an interactive learning environment with the introduction of educational software to experiment with the many concepts in this course. This approach has both advantages and disadvantages. The advantages allow students to experiment with concepts that would be difficult and tedious to do on paper, The work of all three authors was supported in part by the National Science Foundation through grant NSF DUE CCLI-EMD Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. ITiCSE 07, June 23 27, 2007, Dundee, Scotland, United Kingdom. Copyright 2007 ACM /07/ $5.00. and to receive immediate feedback on problem solving. The disadvantages include the difficulty for the instructor choosing to move this route with a large number and variety of tools being developed, the added burden of grading homeworks in a format other than paper, and the difficulty on students learning several tools with different formats. A large variety of tools have been developed to experiment with one or more concepts from the FLA course. We list a few of those tools here, there are many more[5]. Turings World[1] is for experimenting extensively with Turing machines. Forlan[10] is a toolset for experimenting with regular languages. Language Emulator[12] is a toolkit for regular languages and includes Moore and Mealy machines. The tool jfast[13] allows experimentation with finite automata, pushdown automata and Turing machines. Grinder[4] focuses on finite state automata. RegEx[2] allows experimentation with regular expressions. A single tool that covers a large number of topics takes enormous development time, but can be easier on instructors and students in moving from one concept to another. There are three efforts to create a large collection of FLA concepts in one tool. Taylor[11] explores many types of machines including Turing machines, finite automata, pushdown automata, and linear bounded automata using the software Deus Ex Machina, but does not include support for other topics such as grammars or transformations between grammars and automata. Ross[3] is in the process of developing an extensive hypertextbook called Webworks that will include many topics in automata theory, and incorporates text, sound, pictures, illustrations, slide shows, video clips and active learning models. This is a huge development effort in the works for several years now. JFLAP[8, 9], described in more detail in Section 2, is a software tool under development for over fifteen years to incorporate many topics in automata theory in one tool including automata, grammars and experimentation with proofs. In this paper we show how we further increase the interaction in the FLA course with the expansion of additional theoretical topics in JFLAP, and how we encourage the creation of JFLAP files for grading by providing grading support for instructors within JFLAP. The main additional theoretical topics in JFLAP are described in Section 3 and include Moore and Mealy machines, and games for learning about regular and context-free pumping lemmas. The batch grading support is described in Section 4, and includes an
2 interface for loading and grading a large number of student JFLAP files. 2. OVERVIEW OF JFLAP JFLAP (Java Formal Languages and Automata Package) is instructional software for experimenting with automata and grammars, but goes further in allowing one to experiment with proofs and applications related to these topics. JFLAP s main feature is the ability to experiment with theoretical machines and grammars. With JFLAP one can build and run user-defined input on finite automata, pushdown automata, multi-tape Turing machines, regular grammars, context-free grammars (CFG), unrestricted grammars, and L-systems. After constructing the automaton or grammar, one can trace through a single input string or receive automatic feedback on multiple inputs. JFLAP s second feature is the ability to construct in steps the proof of the transformation of one form to another form. For example, after constructing a nondeterministic finite automata (NFA), one can step through its conversion to a deterministic finite automata (DFA), then to a minimal state DFA, and then to regular grammar. As another example, one can build a CFG and construct in steps the equivalent nondeterministic PDA. JFLAP s third feature is the experimentation with applications of theoretical material. One example is experimenting with parsing by constructing the SLR(1) parse table in steps, and then stepping through the parsing of input strings and the construction of the equivalent parse tree. The construction of the parse table includes building a special DFA that models the parsing process, thus seeing a use for a DFA. Another application is building an L-system grammar of a plant, and rendering it to watch a simulation of the plant growing. 3. NEW TOPICS IN JFLAP 6.0 In this section we describe new topics we have integrated into JFLAP. All these topics allow students to experiment with them and receive immediate feedback. One new topic is transducers. A transducer is a finite automaton that generates output. JFLAP now provides experimentation with two types of transducers: Mealy machines for generating output based on transitions and Moore machines for generating output based on states. Another new topic is the pumping lemma. We provide pumping lemma games for both the regular pumping lemma and the context-free pumping lemma. Given a language, the student plays against the computer to help categorize the language. For example, if the language is not regular, the game will prove it is not regular, and if the language is regular, a partition is found to show the pumping lemma holds for that language. 3.1 Mealy Machines A Mealy machine is similar to a finite state automaton, but it does not have final states and it can produce output through its transitions. Adding Mealy machines to JFLAP expands on applications of automata as Mealy machines can model problems in many disciplines. We first provide a definition of a Mealy machine and then give an example of a Mealy machine implemented in JFLAP. Definition: A Mealy machine is defined as a 6-tuple, Figure 1: A Mealy Machine built with JFLAP Figure 2: Mealy Output from Several Inputs (Q,Σ,Γ,δ,ω, q 0), where Q is finite set of states Σ is input alphabet Γ is output alphabet q 0 is initial state δ is the transition function, δ:q Σ Q ω is the output function, ω:q Σ Γ Using JFLAP we build a Mealy machine to output information describing whether there is an odd number of 1 s in a string. Since a Mealy machine doesn t have a final state, we will output the current status of a binary string based on how many digits have been viewed. Figure 1 shows the corresponding Mealy machine. There are two states q 0 and q 1, with q 0 indicated as the start state. The meaning of state q 0 is an even number of 1 s have been seen and the meaning of state q 1 is an odd number of 1 s have been seen. The transition 1; O from q 0 to q 1 meansifa1isprocessed, output the letter O meaning an odd number of 1 s have been processed, and the transition 1; E from q 1 to q 0 meansifa1 is seen output the letter E meaning there is an even number of 1 s. The output for several inputs run in JFLAP is shown in Figure Moore Machines A Moore machine is a transducer similar to a Mealy machine, but generates output based on states instead of transitions. Like the Mealy machine, the definition of a Moore machine is a 6-tuple, but with ω defined as ω : Q Γ. We build an example of a Moore machine in JFLAP shown in Figure 3 that divides binary numbers in half with truncation. One way to divide a binary number in half is to remove its last digit. However, Moore machines process the input string from left to right and do not have final states. Thus our algorithm keeps track of two symbols at a time (the previous and current symbol) and outputs the previous symbol. This example also illustrates a feature of JFLAP that allows one to change the name of states to more meaningful names. The states in this machine have been renamed to be the previous and current symbol seen. Here the start
3 First, we give the definition of the pumping lemma for regular languages. Pumping Lemma: Let L be an infinite regular language. Then there is a constant m>0 such that for any w L, with w m, w can be partitioned into three parts w = xyz with xy m y 1 xy i z L for all i 0 Figure 3: Moore Machine - Dividing Binary Numbers Figure 4: Moore Machine Output Runs in JFLAP state (indicated by the triangular arrow) has been renamed from the default q 0 to 00. Assuming 0 s preceeding any binary number are ignored, this start state represents the two previous and current nonexistant symbols as both 0 before processing any input. The output associated with each state is shown as a box attached to the top-right side of the state. The output for each state in this example is the previous symbol processed, which also happens to be the leftmost symbol of the state name. Thus, the output for state 00 is 0 and the output for state 10 is 1. Let s process the string 101. Starting in state 00 automatically outputs the output for that state, 0. Processing the 1 moves to state 01 and outputs 0. Processing the 0 moves to state 10 and outputs 1. Processing the final 1 moves to state 01 and outputs 0. Thus the resulting output is 0010, which is equivalent to 10. Results of several inputs for this problem run in JFLAP are shown in Figure Regular Pumping Lemma Game The pumping lemma is a more abstract concept than an automaton. In the FLA course, students experiment with a regular language in the form of an automaton, which is a concrete item that can be built and traced through with input. Then they are asked to identify a language, whether or not it is regular. If they can build a DFA for the language, they can easily answer the question. If they cannot, then they must consider proving the language is not regular. One such procedure is to use the pumping lemma. In this section we describe how we have created a pumping lemma game students can play to learn this concept. We modeled our pumping lemma game after the descriptions in [6]. The pumping lemma can be used to prove a language is not regular. The game approach with JFLAP involves two players, the student and JFLAP. JFLAP s goal is to prove the language is not regular. The student s goal is to make it as hard as possible. The game proceeds as follows. First the student selects a language for the game (one of nine choices) and selects an integer for m, the constant in the pumping lemma. JFLAP then picks a string in the language such that the string is of length greater than or equal to m. The student then has to partition the string into the three parts x, y, andz such that xy i z is in the language for all i 0. Here is an example shown in Figure 5 for the language {a n b n n 0}. In step 1, the user selected 7. In step 2 JFLAP shows the string a 7 b 7 andaskstheusertoselect a decomposition. Step 3 starts with the slider bars all the way to the left. The user slid the first bar over two spaces to indicate the selection of x = aa, the second bar over an additional two spaces to indicate the selection of y = aa and z becomes the rest of the string, z = a 3 b 7. JFLAP provides helpful messages to guide the user. When the user selects x, the second slider bar moves along also, and if the user slides the second bar back to the left, an error message is shown. If the user slides the bar too far to the right, making the condition xy m not true, JFLAP displays a message showing this condition has been violated and the user must make another selection. Once the user has a correct partition, in step 4, JFLAP shows a choice of i that gives a contradiction, 0 in this case and the generated string that is not in the language. Step 5 provides further explanation by providing an animation of building the pumped string that is not in the language. One has a choice of nine languages to choose from, one of which is regular. In this case, the student can find a partition that allows the string to be pumped. 3.4 Context-Free Pumping Lemma The pumping lemma game for context-free languages (CFL) is more complicated as there may be many cases to consider. We first give the definition of the pumping lemma for CFL s. Pumping Lemma for CFL s Let L be an infinite contextfree language. Then there is a constant m>0, such that for any w L, with w m, w can be partitioned into five parts w = uvxyz with vxy m, (limit on size of substring) vy 1, (v and y not both empty) For all i 0, uv i xy i z L In this pumping lemma game, the user starts by selecting a language from a list of nine possible languages. The window is partitioned into two parts. The left side looks similar
4 Figure 5: Regular Pumping Lemma Game to the window for the regular pumping lemma. The right side of the window is for categorizing all the cases describing the choices for v and y (explained below), and starts as empty. Theuserplaysthegamebyselectingthechoiceof m in step 1. JFLAP shows a string in step 2 that is in the language and whose length is greater than or equal to m. In step three the user moves the slider bars to partition the string into five parts u, v, x, y and z. In step 4 JFLAP finds an i to give a contradiction and step 5 shows an animation of building the string that provides the contradiction. At this point, the user can add the case to the right side of the window, and then start over to find another case. We now explain the cases for a language. Consider the language a n b n c n. The condition vxy m limits the size of this substring, but doesn t restrict where it can start. (Note that in the regular pumping lemma, the substring xy always started on the left end of the string. ) To prove a language is not CFL, every possible partition must be considered and proven that it fails. Without a starting restriction for vxy we must consider all possible starting positions. We have done this by focusing on the contents for v and y and describing what type of letter they contain. For example, v has a s then there are three cases for y: 1) y is all a s, 2) y is a s followed by b s and 3) y is b s. Note that y cannot have c s or vxy >m. In this example, there are 11 cases that the student must find. The user can find as many cases as they want, and at some point they can select Find to show all the cases. 3.5 Other New Features of JFLAP 6.0 We would like to mention a few other features that have been added to JFLAP. Annotations (called notes) can now be added in the editor pane at any location. In Figure 3 we added a note with a title to the Moore machine. Copying portions of a drawing is now easier by allowing one to select a bounding box area to copy. Multi-run input has been added to Grammars. In previous versions of JFLAP, only one input could be tested at a time on a grammar, with the result being either a derivation or a parse tree. Now one can run several inputs at the same time, and then select one at a time from the results to view the derivation or parse tree. One change to make JFLAP fit with more textbooks has been a new preference to select the representation of the empty string, either lambda or epsilon. JFLAP stores your preference in a file and displays the empty string from any file with your preference. 4. BATCH GRADING SUPPORT In previous versions of JFLAP, running multiple inputs at once for an automaton was added to aid in grading and to provide students with faster testing. In particular, one machine would be loaded and run on several inputs. The next machines loaded would use the same inputs, so the grader would not have to reenter them. However, grading could still take a long time for a large course as each machine has to be loaded and run. In JFLAP 6.0, batch grading support has been added that
5 including experimentation with automata, grammars, and proofs involving these concepts. We have recently added the experimentation of transducers to JFLAP, Moore and Mealy machines, and a new approach of games for learning the pumping lemmas. We also address concerns of grading JFLAP files by providing an interface for grading a large number of JFLAP files. Figure 6: Batch Grading Three Automata allows one to load and produce output for multiple machines at once. Before using, the grader should place all the files in one directory and create an input text file with accept or reject status for each string. From the main JFLAP menu one selects Batch and then selects the automata files to run followed by selecting the input file. A window then appears with a picture of one of the automaton in the left side of the window, and the right side of the window lists the name of the files and the input strings to test. After selecting Run Inputs the results are displayed. For example, Figure 6 shows a run with three automata named fa1.jff, fa2.jff and fa5.jff. The machine fa5.jff has been selected and highlighted, and its graphic picture is shown on the left side of the window. On the right side are shown the results of running four input strings on each of these three files. The results for file fa1.jff are shown first, then the results for file fa2.jff and then the results for fa5.jff. The file fa5.jff accepts all four strings, and the other two files reject all four strings. There are several options with batch grading. By selecting a different automaton on the right, the picture on the left changes to correspond to that automaton. One can add an additional automaton, and it is added with all the current inputs. One can add an input string, adding a line for each automaton. Files can be selected and edited to fix a bug. A trace for a specific automaton and string can be viewed. Most important, the results can be saved to files. Selecting Save Results writes each input string and its result for each file to a file of the same name with a.txt extension added. These files can be returned to students. Batch grading is available for finite automata, pushdown automata, Turing machines and grammars. 5. USE OF JFLAP JFLAP is used world wide in over 160 countries in formal languages courses, compiler courses, discrete math courses and artificial intelligence courses. The JFLAP web site [7] tracks usage of JFLAP. This web site allows users to download JFLAP for free and has had over 35,000 downloads since This site provides many resources including sample files, tutorial, slides, and papers. JFLAP is used at in the course CompSci 140 and informal feedback from students over the past ten years has been very positive. JFLAP is currently undergoing a formal two-year study from with twelve universities participating to evaluate JFLAP s effectiveness in learning automata theory topics. 6. CONCLUSION We continue to develop JFLAP into an extensive tool covering many of the topics in a formal languages course 7. ACKNOWLEDGMENTS Thanks to Peter Linz for suggestions on improving the pumping lemma interface. 8. REFERENCES [1] J. Barwise and J. Etchemendy. Turing s World 3.0 for the Macintosh. CSLI, Cambridge University Press, [2] C. W. Brown and E. A. Hardisty. Regexex: An interactive system providing regular expression exercises. In Thirty-eighth SIGCSE Technical Symposium on Education, page (to appear). SIGCSE, March [3] J. Cogliati, F. Goosey, M. Grinder, B. Pascoe, R. Ross, and C. Williams. Realizing the promise of visualization in the theory of computing. JERIC, 5, [4] M. T. Grinder. A preliminary empirical evaluation of the effectiveness of a finite state automaton animator. In Thirty-fourth SIGCSE Technical Symposium on Education, pages SIGCSE, February [5] V. J. Harvey and S. H. Rodger. Editorial for the special issue on software support for teaching discrete mathematics. Journal on Educational Resources in Computing, 5(2):1 16, June [6] P. Linz. An Introduction to Formal Languages and Automata, 4th Edition. Jones and Bartlett, Sudbury, MA, [7] S. H. Rodger. Jflap web site, [8] S. H. Rodger, B. Bressler, T. Finley, and S. Reading. Turning automata theory into a hands-on course. In Thirty-seventh SIGCSE Technical Symposium on Education, pages SIGCSE, March [9] S. H. Rodger and T. W. Finley. JFLAP - An Interactive Formal Languages and Automata Package. Jones and Bartlett, Sudbury, MA, [10] A. Stoughton. Experimenting with formal languages. In Thirty-sixth SIGCSE Technical Symposium on Education, page 566. SIGCSE, February [11] R. Taylor. Models of Computation and Formal Languages. Oxford University Press, New York, [12] L. F. M. Vieira, M. A. M. Vieira, and N. J. Vieira. Language emulator, a helpful toolkit in the learning process of computer theory. In Thirty-fifth SIGCSE Technical Symposium on Education, pages SIGCSE, March [13] T. M. White and T. P. Way. jfast: A java finite automata simulator. In Thirty-seventh SIGCSE Technical Symposium on Education, pages SIGCSE, March 2006.
Increasing Interaction and Support in the Formal Languages and Automata Theory Course
Increasing Interaction and Support in the Formal Languages and Automata Theory Course Susan H. Rodger Duke University ITiCSE 2007 June 25, 2007 Supported by NSF Grant DUE 0442513. Outline Overview of JFLAP
Implementation of Recursively Enumerable Languages using Universal Turing Machine in JFLAP
International Journal of Information and Computation Technology. ISSN 0974-2239 Volume 4, Number 1 (2014), pp. 79-84 International Research Publications House http://www. irphouse.com /ijict.htm Implementation
Automata and Computability. Solutions to Exercises
Automata and Computability Solutions to Exercises Fall 25 Alexis Maciel Department of Computer Science Clarkson University Copyright c 25 Alexis Maciel ii Contents Preface vii Introduction 2 Finite Automata
3515ICT Theory of Computation Turing Machines
Griffith University 3515ICT Theory of Computation Turing Machines (Based loosely on slides by Harald Søndergaard of The University of Melbourne) 9-0 Overview Turing machines: a general model of computation
Model 2.4 Faculty member + student
Model 2.4 Faculty member + student Course syllabus for Formal languages and Automata Theory. Faculty member information: Name of faculty member responsible for the course Office Hours Office Number Email
Pushdown automata. Informatics 2A: Lecture 9. Alex Simpson. 3 October, 2014. School of Informatics University of Edinburgh [email protected].
Pushdown automata Informatics 2A: Lecture 9 Alex Simpson School of Informatics University of Edinburgh [email protected] 3 October, 2014 1 / 17 Recap of lecture 8 Context-free languages are defined by context-free
Duke University. Department of Computer Science. July 11, 2007. 2007 Premier Award
Duke University Department of Computer Science Department of Computer Science Box 90129 Duke University Durham, NC 27708-0129 [email protected] July 11, 2007 2007 Premier Award Greetings: Enclosed is a
CS 301 Course Information
CS 301: Languages and Automata January 9, 2009 CS 301 Course Information Prof. Robert H. Sloan Handout 1 Lecture: Tuesday Thursday, 2:00 3:15, LC A5 Weekly Problem Session: Wednesday, 4:00 4:50 p.m., LC
Turing Machines: An Introduction
CIT 596 Theory of Computation 1 We have seen several abstract models of computing devices: Deterministic Finite Automata, Nondeterministic Finite Automata, Nondeterministic Finite Automata with ɛ-transitions,
Philadelphia University Faculty of Information Technology Department of Computer Science First Semester, 2007/2008.
Philadelphia University Faculty of Information Technology Department of Computer Science First Semester, 2007/2008 Course Syllabus Course Title: Theory of Computation Course Level: 3 Lecture Time: Course
Reading 13 : Finite State Automata and Regular Expressions
CS/Math 24: Introduction to Discrete Mathematics Fall 25 Reading 3 : Finite State Automata and Regular Expressions Instructors: Beck Hasti, Gautam Prakriya In this reading we study a mathematical model
The Halting Problem is Undecidable
185 Corollary G = { M, w w L(M) } is not Turing-recognizable. Proof. = ERR, where ERR is the easy to decide language: ERR = { x { 0, 1 }* x does not have a prefix that is a valid code for a Turing machine
Formal Languages and Automata Theory - Regular Expressions and Finite Automata -
Formal Languages and Automata Theory - Regular Expressions and Finite Automata - Samarjit Chakraborty Computer Engineering and Networks Laboratory Swiss Federal Institute of Technology (ETH) Zürich March
CS154. Turing Machines. Turing Machine. Turing Machines versus DFAs FINITE STATE CONTROL AI N P U T INFINITE TAPE. read write move.
CS54 Turing Machines Turing Machine q 0 AI N P U T IN TAPE read write move read write move Language = {0} q This Turing machine recognizes the language {0} Turing Machines versus DFAs TM can both write
Course Manual Automata & Complexity 2015
Course Manual Automata & Complexity 2015 Course code: Course homepage: Coordinator: Teachers lectures: Teacher exercise classes: Credits: X_401049 http://www.cs.vu.nl/~tcs/ac prof. dr. W.J. Fokkink home:
Turing Machines, Part I
Turing Machines, Part I Languages The $64,000 Question What is a language? What is a class of languages? Computer Science Theory 2 1 Now our picture looks like Context Free Languages Deterministic Context
ÖVNINGSUPPGIFTER I SAMMANHANGSFRIA SPRÅK. 15 april 2003. Master Edition
ÖVNINGSUPPGIFTER I SAMMANHANGSFRIA SPRÅK 5 april 23 Master Edition CONTEXT FREE LANGUAGES & PUSH-DOWN AUTOMATA CONTEXT-FREE GRAMMARS, CFG Problems Sudkamp Problem. (3.2.) Which language generates the grammar
Introduction to Automata Theory. Reading: Chapter 1
Introduction to Automata Theory Reading: Chapter 1 1 What is Automata Theory? Study of abstract computing devices, or machines Automaton = an abstract computing device Note: A device need not even be a
Automata and Formal Languages
Automata and Formal Languages Winter 2009-2010 Yacov Hel-Or 1 What this course is all about This course is about mathematical models of computation We ll study different machine models (finite automata,
Pushdown Automata. place the input head on the leftmost input symbol. while symbol read = b and pile contains discs advance head remove disc from pile
Pushdown Automata In the last section we found that restricting the computational power of computing devices produced solvable decision problems for the class of sets accepted by finite automata. But along
6.045: Automata, Computability, and Complexity Or, Great Ideas in Theoretical Computer Science Spring, 2010. Class 4 Nancy Lynch
6.045: Automata, Computability, and Complexity Or, Great Ideas in Theoretical Computer Science Spring, 2010 Class 4 Nancy Lynch Today Two more models of computation: Nondeterministic Finite Automata (NFAs)
SRM UNIVERSITY FACULTY OF ENGINEERING & TECHNOLOGY SCHOOL OF COMPUTING DEPARTMENT OF SOFTWARE ENGINEERING COURSE PLAN
Course Code : CS0355 SRM UNIVERSITY FACULTY OF ENGINEERING & TECHNOLOGY SCHOOL OF COMPUTING DEPARTMENT OF SOFTWARE ENGINEERING COURSE PLAN Course Title : THEORY OF COMPUTATION Semester : VI Course : June
Regular Languages and Finite State Machines
Regular Languages and Finite State Machines Plan for the Day: Mathematical preliminaries - some review One application formal definition of finite automata Examples 1 Sets A set is an unordered collection
Regular Expressions and Automata using Haskell
Regular Expressions and Automata using Haskell Simon Thompson Computing Laboratory University of Kent at Canterbury January 2000 Contents 1 Introduction 2 2 Regular Expressions 2 3 Matching regular expressions
Genetic programming with regular expressions
Genetic programming with regular expressions Børge Svingen Chief Technology Officer, Open AdExchange [email protected] 2009-03-23 Pattern discovery Pattern discovery: Recognizing patterns that characterize
Regular Expressions with Nested Levels of Back Referencing Form a Hierarchy
Regular Expressions with Nested Levels of Back Referencing Form a Hierarchy Kim S. Larsen Odense University Abstract For many years, regular expressions with back referencing have been used in a variety
Universal Turing Machine: A Model for all Computational Problems
Universal Turing Machine: A Model for all Computational Problems Edward E. Ogheneovo Lecturer I, Dept of Computer Science, University of Port Harcourt, Port Harcourt Nigeria. ABSTRACT: Turing machines
Finite Automata. Reading: Chapter 2
Finite Automata Reading: Chapter 2 1 Finite Automaton (FA) Informally, a state diagram that comprehensively captures all possible states and transitions that a machine can take while responding to a stream
Computational Models Lecture 8, Spring 2009
Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown Univ. p. 1 Computational Models Lecture 8, Spring 2009 Encoding of TMs Universal Turing Machines The Halting/Acceptance
CS5236 Advanced Automata Theory
CS5236 Advanced Automata Theory Frank Stephan Semester I, Academic Year 2012-2013 Advanced Automata Theory is a lecture which will first review the basics of formal languages and automata theory and then
Honors Class (Foundations of) Informatics. Tom Verhoeff. Department of Mathematics & Computer Science Software Engineering & Technology
Honors Class (Foundations of) Informatics Tom Verhoeff Department of Mathematics & Computer Science Software Engineering & Technology www.win.tue.nl/~wstomv/edu/hci c 2011, T. Verhoeff @ TUE.NL 1/20 Information
(IALC, Chapters 8 and 9) Introduction to Turing s life, Turing machines, universal machines, unsolvable problems.
3130CIT: Theory of Computation Turing machines and undecidability (IALC, Chapters 8 and 9) Introduction to Turing s life, Turing machines, universal machines, unsolvable problems. An undecidable problem
Informatique Fondamentale IMA S8
Informatique Fondamentale IMA S8 Cours 1 - Intro + schedule + finite state machines Laure Gonnord http://laure.gonnord.org/pro/teaching/ [email protected] Université Lille 1 - Polytech Lille
CAs and Turing Machines. The Basis for Universal Computation
CAs and Turing Machines The Basis for Universal Computation What We Mean By Universal When we claim universal computation we mean that the CA is capable of calculating anything that could possibly be calculated*.
COMPUTER SCIENCE STUDENTS NEED ADEQUATE MATHEMATICAL BACKGROUND
COMPUTER SCIENCE STUDENTS NEED ADEQUATE MATHEMATICAL BACKGROUND Hasmik GHARIBYAN PAULSON Computer Science Department, California Polytechnic State University, 1 Grand Avenue, San Luis Obispo, CA 93407,
CSE 135: Introduction to Theory of Computation Decidability and Recognizability
CSE 135: Introduction to Theory of Computation Decidability and Recognizability Sungjin Im University of California, Merced 04-28, 30-2014 High-Level Descriptions of Computation Instead of giving a Turing
Fast nondeterministic recognition of context-free languages using two queues
Fast nondeterministic recognition of context-free languages using two queues Burton Rosenberg University of Miami Abstract We show how to accept a context-free language nondeterministically in O( n log
Finite Automata. Reading: Chapter 2
Finite Automata Reading: Chapter 2 1 Finite Automata Informally, a state machine that comprehensively captures all possible states and transitions that a machine can take while responding to a stream (or
6.080 / 6.089 Great Ideas in Theoretical Computer Science Spring 2008
MIT OpenCourseWare http://ocw.mit.edu 6.080 / 6.089 Great Ideas in Theoretical Computer Science Spring 2008 For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms.
Notes on Complexity Theory Last updated: August, 2011. Lecture 1
Notes on Complexity Theory Last updated: August, 2011 Jonathan Katz Lecture 1 1 Turing Machines I assume that most students have encountered Turing machines before. (Students who have not may want to look
Overview of E0222: Automata and Computability
Overview of E0222: Automata and Computability Deepak D Souza Department of Computer Science and Automation Indian Institute of Science, Bangalore. August 3, 2011 What this course is about What we study
Lecture 2: Universality
CS 710: Complexity Theory 1/21/2010 Lecture 2: Universality Instructor: Dieter van Melkebeek Scribe: Tyson Williams In this lecture, we introduce the notion of a universal machine, develop efficient universal
Computer Architecture Syllabus of Qualifying Examination
Computer Architecture Syllabus of Qualifying Examination PhD in Engineering with a focus in Computer Science Reference course: CS 5200 Computer Architecture, College of EAS, UCCS Created by Prof. Xiaobo
Compiler Construction
Compiler Construction Regular expressions Scanning Görel Hedin Reviderad 2013 01 23.a 2013 Compiler Construction 2013 F02-1 Compiler overview source code lexical analysis tokens intermediate code generation
Computability Theory
CSC 438F/2404F Notes (S. Cook and T. Pitassi) Fall, 2014 Computability Theory This section is partly inspired by the material in A Course in Mathematical Logic by Bell and Machover, Chap 6, sections 1-10.
CS 341: Foundations of Computer Science II elearning Section Syllabus, Spring 2015
CS 341: Foundations of Computer Science II elearning Section Syllabus, Spring 2015 Course Info Instructor: Prof. Marvin K. Nakayama Office: GITC 4312 Phone: 973-596-3398 E-mail: [email protected] (Be sure
Deterministic Finite Automata
1 Deterministic Finite Automata Definition: A deterministic finite automaton (DFA) consists of 1. a finite set of states (often denoted Q) 2. a finite set Σ of symbols (alphabet) 3. a transition function
Automata on Infinite Words and Trees
Automata on Infinite Words and Trees Course notes for the course Automata on Infinite Words and Trees given by Dr. Meghyn Bienvenu at Universität Bremen in the 2009-2010 winter semester Last modified:
T-79.186 Reactive Systems: Introduction and Finite State Automata
T-79.186 Reactive Systems: Introduction and Finite State Automata Timo Latvala 14.1.2004 Reactive Systems: Introduction and Finite State Automata 1-1 Reactive Systems Reactive systems are a class of software
Computer Science Theory. From the course description:
Computer Science Theory Goals of Course From the course description: Introduction to the theory of computation covering regular, context-free and computable (recursive) languages with finite state machines,
On Winning Conditions of High Borel Complexity in Pushdown Games
Fundamenta Informaticae (2005) 1 22 1 IOS Press On Winning Conditions of High Borel Complexity in Pushdown Games Olivier Finkel Equipe de Logique Mathématique U.F.R. de Mathématiques, Université Paris
CS 3719 (Theory of Computation and Algorithms) Lecture 4
CS 3719 (Theory of Computation and Algorithms) Lecture 4 Antonina Kolokolova January 18, 2012 1 Undecidable languages 1.1 Church-Turing thesis Let s recap how it all started. In 1990, Hilbert stated a
Pushdown Automata. International PhD School in Formal Languages and Applications Rovira i Virgili University Tarragona, Spain
Pushdown Automata transparencies made for a course at the International PhD School in Formal Languages and Applications Rovira i Virgili University Tarragona, Spain Hendrik Jan Hoogeboom, Leiden http://www.liacs.nl/
6.080/6.089 GITCS Feb 12, 2008. Lecture 3
6.8/6.89 GITCS Feb 2, 28 Lecturer: Scott Aaronson Lecture 3 Scribe: Adam Rogal Administrivia. Scribe notes The purpose of scribe notes is to transcribe our lectures. Although I have formal notes of my
Lifting the Hood of the Computer: * Program Animation with the Teaching Machine
Lifting the Hood of the Computer: * Program Animation with the Teaching Machine Michael P. Bruce-Lockhart and Theodore S. Norvell Electrical and Computer Engineering Faculty of Engineering and Applied
How To Compare A Markov Algorithm To A Turing Machine
Markov Algorithm CHEN Yuanmi December 18, 2007 1 Abstract Markov Algorithm can be understood as a priority string rewriting system. In this short paper we give the definition of Markov algorithm and also
FINITE STATE AND TURING MACHINES
FINITE STATE AND TURING MACHINES FSM With Output Without Output (also called Finite State Automata) Mealy Machine Moore Machine FINITE STATE MACHINES... 2 INTRODUCTION TO FSM S... 2 STATE TRANSITION DIAGRAMS
Chapter 7 Uncomputability
Chapter 7 Uncomputability 190 7.1 Introduction Undecidability of concrete problems. First undecidable problem obtained by diagonalisation. Other undecidable problems obtained by means of the reduction
C H A P T E R Regular Expressions regular expression
7 CHAPTER Regular Expressions Most programmers and other power-users of computer systems have used tools that match text patterns. You may have used a Web search engine with a pattern like travel cancun
Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students
Eastern Washington University Department of Computer Science Questionnaire for Prospective Masters in Computer Science Students I. Personal Information Name: Last First M.I. Mailing Address: Permanent
Introduction to Turing Machines
Automata Theory, Languages and Computation - Mírian Halfeld-Ferrari p. 1/2 Introduction to Turing Machines SITE : http://www.sir.blois.univ-tours.fr/ mirian/ Automata Theory, Languages and Computation
COMPUTER SCIENCE. FACULTY: Jennifer Bowen, Chair Denise Byrnes, Associate Chair Sofia Visa
FACULTY: Jennifer Bowen, Chair Denise Byrnes, Associate Chair Sofia Visa COMPUTER SCIENCE Computer Science is the study of computer programs, abstract models of computers, and applications of computing.
Section IV.1: Recursive Algorithms and Recursion Trees
Section IV.1: Recursive Algorithms and Recursion Trees Definition IV.1.1: A recursive algorithm is an algorithm that solves a problem by (1) reducing it to an instance of the same problem with smaller
APP INVENTOR. Test Review
APP INVENTOR Test Review Main Concepts App Inventor Lists Creating Random Numbers Variables Searching and Sorting Data Linear Search Binary Search Selection Sort Quick Sort Abstraction Modulus Division
CSCI 3136 Principles of Programming Languages
CSCI 3136 Principles of Programming Languages Faculty of Computer Science Dalhousie University Winter 2013 CSCI 3136 Principles of Programming Languages Faculty of Computer Science Dalhousie University
Circuits and Boolean Expressions
Circuits and Boolean Expressions Provided by TryEngineering - Lesson Focus Boolean logic is essential to understanding computer architecture. It is also useful in program construction and Artificial Intelligence.
Computer Science Information Sheet for entry in 2016. What is Computer Science?
Computer Science Information Sheet for entry in 2016 What is Computer Science? Computer Science is about understanding computer systems and networks at a deep level. Computers and the programs they run
Regular Languages and Finite Automata
Regular Languages and Finite Automata 1 Introduction Hing Leung Department of Computer Science New Mexico State University Sep 16, 2010 In 1943, McCulloch and Pitts [4] published a pioneering work on a
2110711 THEORY of COMPUTATION
2110711 THEORY of COMPUTATION ATHASIT SURARERKS ELITE Athasit Surarerks ELITE Engineering Laboratory in Theoretical Enumerable System Computer Engineering, Faculty of Engineering Chulalongkorn University
Finite Automata and Regular Languages
CHAPTER 3 Finite Automata and Regular Languages 3. Introduction 3.. States and Automata A finite-state machine or finite automaton (the noun comes from the Greek; the singular is automaton, the Greek-derived
CSC4510 AUTOMATA 2.1 Finite Automata: Examples and D efinitions Definitions
CSC45 AUTOMATA 2. Finite Automata: Examples and Definitions Finite Automata: Examples and Definitions A finite automaton is a simple type of computer. Itsoutputislimitedto yes to or no. It has very primitive
Testing LTL Formula Translation into Büchi Automata
Testing LTL Formula Translation into Büchi Automata Heikki Tauriainen and Keijo Heljanko Helsinki University of Technology, Laboratory for Theoretical Computer Science, P. O. Box 5400, FIN-02015 HUT, Finland
Teaching Formal Methods for Computational Linguistics at Uppsala University
Teaching Formal Methods for Computational Linguistics at Uppsala University Roussanka Loukanova Computational Linguistics Dept. of Linguistics and Philology, Uppsala University P.O. Box 635, 751 26 Uppsala,
StateFlow Hands On Tutorial
StateFlow Hands On Tutorial HS/PDEEC 2010 03 04 José Pinto [email protected] Session Outline Simulink and Stateflow Numerical Simulation of ODEs Initial Value Problem (Hands on) ODEs with resets (Hands
Reliability Guarantees in Automata Based Scheduling for Embedded Control Software
1 Reliability Guarantees in Automata Based Scheduling for Embedded Control Software Santhosh Prabhu, Aritra Hazra, Pallab Dasgupta Department of CSE, IIT Kharagpur West Bengal, India - 721302. Email: {santhosh.prabhu,
Compiling Recursion to Reconfigurable Hardware using CLaSH
Compiling Recursion to Reconfigurable Hardware using CLaSH Ruud Harmsen University of Twente P.O. Box 217, 7500AE Enschede The Netherlands [email protected] ABSTRACT Recursion is an important
Push-down Automata and Context-free Grammars
14 Push-down Automata and Context-free Grammars This chapter details the design of push-down automata (PDA) for various languages, the conversion of CFGs to PDAs, and vice versa. In particular, after formally
Course Syllabus. Also listed as CS 5349.0U1 Automata Theory (http://go.utdallas.edu/cs5349.0u1.14u)
Course Syllabus Course Information CS 4384.0U1 Automata Theory Summer 2014 TR 3-5:15PM. ECSS 2.312 3 Semester Hours UTD Coursebook: http://go.utdallas.edu/cs4384.0u1.14u Also listed as CS 5349.0U1 Automata
1 Definition of a Turing machine
Introduction to Algorithms Notes on Turing Machines CS 4820, Spring 2012 April 2-16, 2012 1 Definition of a Turing machine Turing machines are an abstract model of computation. They provide a precise,
Automata Theory. Şubat 2006 Tuğrul Yılmaz Ankara Üniversitesi
Automata Theory Automata theory is the study of abstract computing devices. A. M. Turing studied an abstract machine that had all the capabilities of today s computers. Turing s goal was to describe the
Introduction to Finite Automata
Introduction to Finite Automata Our First Machine Model Captain Pedro Ortiz Department of Computer Science United States Naval Academy SI-340 Theory of Computing Fall 2012 Captain Pedro Ortiz (US Naval
Modeling of Graph and Automaton in Database
1, 2 Modeling of Graph and Automaton in Database Shoji Miyanaga 1, 2 Table scheme that relational database provides can model the structure of graph which consists of vertices and edges. Recent database
NFAs with Tagged Transitions, their Conversion to Deterministic Automata and Application to Regular Expressions
NFAs with Tagged Transitions, their Conversion to Deterministic Automata and Application to Regular Expressions Ville Laurikari Helsinki University of Technology Laboratory of Computer Science PL 9700,
MACM 101 Discrete Mathematics I
MACM 101 Discrete Mathematics I Exercises on Combinatorics, Probability, Languages and Integers. Due: Tuesday, November 2th (at the beginning of the class) Reminder: the work you submit must be your own.
High School Algebra Reasoning with Equations and Inequalities Solve equations and inequalities in one variable.
Performance Assessment Task Quadratic (2009) Grade 9 The task challenges a student to demonstrate an understanding of quadratic functions in various forms. A student must make sense of the meaning of relations
How to make the computer understand? Lecture 15: Putting it all together. Example (Output assembly code) Example (input program) Anatomy of a Computer
How to make the computer understand? Fall 2005 Lecture 15: Putting it all together From parsing to code generation Write a program using a programming language Microprocessors talk in assembly language
Continued Fractions and the Euclidean Algorithm
Continued Fractions and the Euclidean Algorithm Lecture notes prepared for MATH 326, Spring 997 Department of Mathematics and Statistics University at Albany William F Hammond Table of Contents Introduction
The P versus NP Solution
The P versus NP Solution Frank Vega To cite this version: Frank Vega. The P versus NP Solution. 2015. HAL Id: hal-01143424 https://hal.archives-ouvertes.fr/hal-01143424 Submitted on 17 Apr
Syllabus of. BCA III (Bachelor of Computer Application) Semester-V
Syllabus of BCA III (Bachelor of Computer Application) Semester-V Designed by Dr. S.B. Kishor GONDWANA UNIVERSITY, GADCHIROLI SESSION 2014-2015 SEM V BCA III Paper 1 Paper 2 Theory of Computational Analyzer
Program Your Own Game
Program Your Own Game Provided by TryEngineering - Lesson Focus Lesson focuses on how software engineers design computer games and other software. Student teams work together to develop a simple computer
COURSE TITLE COURSE DESCRIPTION
COURSE TITLE COURSE DESCRIPTION CS-00X COMPUTING EXIT INTERVIEW All graduating students are required to meet with their department chairperson/program director to finalize requirements for degree completion.
Representing Reversible Cellular Automata with Reversible Block Cellular Automata
Discrete Mathematics and Theoretical Computer Science Proceedings AA (DM-CCG), 2001, 145 154 Representing Reversible Cellular Automata with Reversible Block Cellular Automata Jérôme Durand-Lose Laboratoire
Web Data Extraction: 1 o Semestre 2007/2008
Web Data : Given Slides baseados nos slides oficiais do livro Web Data Mining c Bing Liu, Springer, December, 2006. Departamento de Engenharia Informática Instituto Superior Técnico 1 o Semestre 2007/2008
Formal Grammars and Languages
Formal Grammars and Languages Tao Jiang Department of Computer Science McMaster University Hamilton, Ontario L8S 4K1, Canada Bala Ravikumar Department of Computer Science University of Rhode Island Kingston,
