CS 332 Theory of Computation Course Description This course aims to look at models that represent features at the core of all computers and their applications. It introduces the notations of an automata, formal grammar, and formal language. The course shows the close connection between these abstractions and investigates the conclusions that can be derived from them. Also the course formalizes the concept of a mechanical computation by giving a precise definition of the term algorithm and studies the kinds of the problems that are or are not suitable for solution by such mechanical means. Prerequisite CS 331 – CS 212 – CS 322 – CS 102 Course Main goals 1- Introducing an overview of the theoretical foundation of computer science from the perspective of formal language. 2- Understanding the formal grammar and its types. 3- Understandings the Automata and formal languages. Course Objectives Understanding the basic ideas of the Theory of Computation. Understanding the Formal grammar and its types this including the following: o Know the definition of the grammar o To be able to write an abstract grammar o To be able to derive sentences from the grammar o To be able to drive language of the grammar o Understand the Derivation Trees o Understand Ambiguity Design and analysis of finite state machines (Mealy and Moore), especially the state sequence. Design and analysis of Finite Automata and its relation with regular grammar, regular expression, and regular language. Understanding the Generalized Sequential Machine (GSM) and illustrates how to configure it to construct Pushdown Automata, Linear bounded, and Turing Machine. Design and analysis Pushdown automata and its relation with context free grammar, and context free language. Design and analysis Turing machine Study briefly the limitation of algorithmic computation 1 Course Calendar Week 1 Topic Introduction and Mathematical preliminaries 2 3 Three Basic Concepts Formal Grammar 4 Hierarchy of Formal languages and Automat First Exam. Finite State Machine 5 6 7 8 9 10 11 12 13 14 Finite Automata Finite Automata Regular language and Regular grammar Regular language and Regular grammar Regular language and Regular grammar Pushdown Automat (PDA) Pushdown Automat Mid Term Exam. Turing Machine (TM) Turing Machine (TM) 15 Limitation of Algorithmic Computation ( a very briefly subjects, not in details) 16 Final Exam. Subtopics Abstract machine, Abstract language, Accepter, Generator – TransducerSets – Functions and RelationsGraphs and Trees- Proof Techniques Languages – Grammar - Automata Definition – Grammar types Derivations- Derivation tree – Ambiguous Grammar Generalized Sequential Machine. Ch. 1 Mealy machine - Moore Machine State sequence. DFA – NFA – Language with DFA From NFA to DFA – State reduction Regular Expression- language Ch 4 Connected between regular expression and regular language Regular Grammar – Convert from regular grammar to finite automata and reverse. 3 1 1,5 11, ch 7 2 2 3 3 NPDA- PDA and Context Free language. PDA as Accepter and Transducer. PDA and Grammars Standard TM – TM as Accepter TM as transducer – TM for complicated tasks Some unsolvable problems – The Post problem – Other model of computations ( recursive functions – Post systems) 2 7 7 9 9 12 Required Textbook 1- Peter Linz, “ An Introduction to Fomral Languages and Automata”. Additional Book 2- Peter J. Denning, Jack B. Dennis, and Joseph E. Qualitz“Machines, Languages, and Computation” Class Notes Some notes that support some course objectives. Grading Activity Reports (Number of Assignments) Oral Exam First Exam. Second Exam Final Exam Mark 10 10 20 20 40 Course Outline Chapter 1 Introduction Abstract Machine (AM) Abstract Language (AL) Relationship between AM and AL Accepter Generator Transducer Chapter 2 String and Languages String and String Operations Operations on Languages Chapter 3 Formal Grammars Representation of the Language Definition Types of Grammars Type 0: Unrestricted Grammar Type 1: Context Sensitive Grammar Type 2: Context Free Grammar Type 3: Regular Grammar 1- Right Regular 2- Left Regular 3 Derivation of sentence Derivation of grammar language Write a grammar Derivation Trees and Diagrams Ambiguity Chapter 4 : Finite State Machine (FSM) Definition Machine with transition assigns output ( Mealy machine) Machine with state assigns output (Moore machine) Convert from mealy to Moore and vice verce) State sequences Equivalent of FSM Chapter 5 : Finite State Language Finite State Accepter Nondeterministic Finite Accepter (NFA) Deterministic Finite Accepter (DFA) Convert from NFA to DFA Machine Design Convert from FSA to Regular Grammar Convert from Regular Grammar to FSA Chapter 6: Tape Automata Generalized Sequential Machine Two Way Accepters Chapter 7: Pushdown Automata Definition Examples Chapter 8: Turing Machine Definition Examples 4