Wednesday 4 November 2020

 



First Term, Academic Year 2020/2021

M 416  - Theory of computation

Helwan University

Faculty of science

Math. Department



 

Course Description

This module introduces the theory of computation through a set of abstract machines that serve as models for computation - finite automata, pushdown automata, and Turing machines – and  examines the relationship between these automata and formal languages. Additional topics beyond the automata classes themselves include deterministic and nondeterministic machines, regular expressions, context free grammars, undecidability, and the P = NP question.


Course Objectives:

Finite automata are useful models for many important kinds of hardware and software. Here are the most important kinds: Software for designing and checking the behavior of digital circuits; The “lexical analyzer” of a typical complier, that is, the compiler component that breaks the input text into logical units, such as identifiers, keywords, and punctuation; Software for scanning large bodies of text, such as collections of Web pages, to find occurrences of words, phrases, or other patterns; Software for verifying systems of all types that have a finite number of distinct states, such as communication protocols or protocols for secure exchange of information.

 

Course Components


1.     Basic concepts and definitions; Set operations; partition of a set

2.     Equivalence relations; Properties on relation on set.

3.     Proving Equivalences about Sets.

4.     Central concepts of Automata Theory.

5.     Regular Expressions; Operations on Regular expressions


6.     Finite Automata and Regular Expressions.

7.     Conversion from FA and regular expressions.

8.     Deterministic Finite Automata (DFA); Minimization of DFA.

9.     Non-Deterministic Finite Automata (NDFA).

10.  Equivalence of Deterministic and Non-Deterministic Finite Automata.

11.  Equivalence between DFA,NFA, NFA-Λ

12.  Context-Free Grammars.

13.  Parse Trees; Ambiguity in Grammars and Languages.

14.  Standard Forms; Chomsky Normal Forms;

15.  Greibach normal Forms.

16.  Minimization of CFG’s.

17.  Pushdown Automata (PDA).

18.  Deterministic and Non-Deterministic (PDA); Formal definition of NPDA.

19.  Transition functions of NPDA; NPDA Execution.

20.  Accepting Strings with NPDA; Equivalence of PDAs and CFG.

21.  The Turing Machine.

22.  Programming Techniques for Turing Machines; Formal definition of TM’s.

23.  TM’s as acceptors; TM’s as transducers; Recognizing Languages with TM’s.; Sorting with

24.  TM’s.; Programming in TM’s.

25.  Multiple Tracks, Subroutines, Complexity issues and analysis


 

Text book:

Title: Introduction to Computer Theory

Author: Daniel I. A. Cohen

Publisher: Prentice-Hall, Second Edition, 1997.

 

In addition to the above, the students will be provided with handouts by the lecturer.

Recommended:

 

 John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman, "Introduction to Automata Theory, Languages, and Computation", Second Edition, Prentice-Hall, 2001

 

Learning Outcomes:


Knowledge and understanding

- Acquire a full understanding and mentality of Automata Theory as the basis of all computer science

languages design

- Have a clear understanding of the Automata theory concepts such as RE's, DFA's, NFA's, Stack's,

Turing machines, and Grammars

 

Cognitive skills (thinking and analysis).

- Be able to design FAs, NFAs, Grammars, languages modelling, small compilers basics

- Be able to design sample automata

 

Communication skills (personal and academic).

- Be able to minimize FA's and Grammars of Context Free Languages

 

Practical and subject specific skills (Transferable Skills).


 

Evaluation Method:

Method

Percentage

Quizzes & Assignments

10%

Projects

10%

Mid Test

10%

Final Examination

70%

 

Course Topics

 

Week

Basic and support material to be covered

Slides

Homework

(1)

Basic concepts and definitions

Set operations; partition of a set

Equivalence relations; Properties on relation

on set; Proving Equivalences about Sets.

Central concepts of Automata Theory.

Lecture 1

 

(2)

Regular Expressions; Operations on Regular

expressions

Finite Automata and Regular Expressions.

Recursive definitions; Conversion from

FA and regular expressions; Kleen’s

Theory; Mealy Moore Machines.

Conversion from Mealy to Moore and vice

versa.

Lecture 2a

Sheet 1

(3)

Deterministic Finite Automata (DFA).

Minimization of DFA; Non-Deterministic

Finite Automata (NDFA).

Lecture 2b

 

(4)

Equivalence of Deterministic and Non-

Deterministic Finite Automata.

Lecture 3a

Sheet 2

(5)

Finite Automata with Epsilon-Transition.

Equivalence between DFA,NFA, NFA-Λ

Lecture 3b

Assignment 1

(6)

Pumping Lemma for Regular Languages.

Closure Properties of Regular Languages.

Lecture 4

Sheet 3

(7)

Context-Free Grammars; Regular

Grammars; Parse Trees.

Lecture 5

 

(8)

Ambiguity in Grammars and Languages.

Standard Forms; Chomsky Normal Forms;

Greibach normal Forms.

Lecture 6

Sheet 4

(9)

Pumping Lemma for Context-Free Languages;

Closure Properties of Context-Free

Languages; Minimization of CFG’s.

Lecture 7

 

(10)

Pushdown Automata (PDA).

Lecture 8

Sheet 5

(11)

Deterministic and Non-Deterministic (PDA);

Formal definition of NPDA.

Transition functions of NPDA; NPDA

Execution; Accepting Strings with NPDA;

Equivalence of PDAs and CFG.

Lecture 9

 

(12)

The Turing Machine.

Lecture 10

Sheet 6

(13)

Programming Techniques for Turing

Machines; Formal definition of TM’s.

TM’s as acceptors; TM’s as transducers;

Recognizing Languages with TM’s.;

Sorting with TM’s.; Programming in TM’s

Lecture 11

 

(14)

Multiple Tracks, Subroutines, Complexity

issues and analysis

Lecture 12

Sheet 7

(15)

Specimen

examination

(Optional)

Equivalence of PDA’s and CFG.

Lecture 13

 

(16)

Final

Examination

Revision

 

 

 

 

No comments:

Post a Comment