Course Code |
CSC353 |
Course Title |
Theory of Automata |
Credit Hours |
3+0 |
Prerequisites by Course(s) and Topics |
Discrete Structures |
Assessment Instruments with Weights (homework, quizzes, midterms, final, programming assignments, lab work, etc.) |
SESSIONAL (Quizzes, Assignments, Presentations) =25 %
Midterm Exam =25 %
Final Exam = 50%
|
Course Coordinator |
Saba Noor |
URL (if any) |
https://www.tutorialspoint.com/automata_theory/index.htm |
Current Catalog Description |
1. Regular Languages 2. Finite Automata 3. Non-Determinism 4. Regular Expressions 5. Non-Regular Languages 6. Context-Free Languages 7. Pushdown Automata 8. Non-Context-Free Languages 9. Computability Theory 10. Church-Turing Thesis 11. Turing Machines |
Textbook (or Laboratory Manual for Laboratory Courses) |
Introduction to computer theory, Daniel I. A. Cohen, 2nd Edition |
Reference Material |
Introduction to computer theory, Daniel I. A. Cohen, 2nd Edition |
Course Goals |
The objective of this course is to explore the theoretical foundations of computer science from the perspective of formal languages and classify machines by their power to recognize languages. |
Course Learning Outcomes (CLOs): |
At the end of the course the students will be able to: | Domain | BT Level* |
understand the basic properties of formal languages and grammars. |
BT |
1 |
Explain and manipulate the different concepts in automata theory and formal languages such as formal proofs, (non-)deterministic automata, regular expressions, regular languages, context-free grammars, context-free languages, Turing machines; |
BT |
2 |
Determining the language accepted by an automata or generated by a regular expression or a context free grammar. |
BT |
2 |
Design automata, regular expressions and context free grammars for accepting or generating a certain language. |
BT |
4 |
Evaluating the algorithms and decision procedures for regular languages and context free grammar |
BT |
5 |
Creating Turing machine for recursive language |
BT |
6 |
* BT= Bloom’s Taxonomy, C=Cognitive domain, P=Psychomotor domain, A= Affective domain |
|
|
|
Topics Covered in the Course, with Number of Lectures on Each Topic (assume 15-week instruction and one-hour lectures) |
Week | Lecture | Topics Covered |
Week 1 |
1 |
General Introduction to Automata Theory |
|
2 |
Book Chapter 01 Introduction (What is automata theory) |
Week 2 |
3 |
Chapter 02 Languages |
|
4 |
Chapter 02 Languages and Practice Question |
Week 3 |
5 |
Kleene Star, Kleene Plus Theorem and its proofs |
|
6 |
Recursive Definition & Theorems |
Week 4 |
7 |
Regular Languages |
|
8 |
Regular expressions |
Week 5 |
9 |
Chapter 05 Finite Automata |
|
10 |
Finite Automata practice questions + Assignment |
Week 6 |
11 |
Chapter 06 Transition Graphs |
|
12 |
NFA to DFA and DFA to NFA |
Week 7 |
13 |
Chapter 09 Moore and Melay Machines |
|
14 |
chapter 09 Melay Machines Quiz#02 |
Week 8 |
1 hours |
Mid Term |
Week 9 |
15 |
Moore to melay and melay to moore machine cinversins |
|
16 |
Moore to melay and melay to moore machine conversions |
Week 10 |
17 |
CFG and CFL |
|
18 |
CFG, Right liner grammar, Left liner grammar and relationship |
Week 11 |
19 |
Parse Tree, Types of Parse Tree, Examples, Ambiguity, Precidence |
|
20 |
Left-Recursive |
Week 12 |
21 |
Chapter 17: Push Down Automata Simple |
|
22 |
Push Down Automata Complex |
Week 13 |
23 |
Introduction to JFLAP Tool |
|
24 |
JFLAP Tool Implementation |
Week 14 |
25 |
PDA |
|
26 |
Written Quiz 03 |
Week 15 |
27 |
Turing Machine |
|
28 |
Turing Machine |
Week 16 |
29 |
JFLAP Tool (Push Down automata and turning machine) |
|
30 |
Project Presentation |
Week 17 |
2 hours |
Final Term |
|
Laboratory Projects/Experiments Done in the Course |
|
Programming Assignments Done in the Course |
3 assignments |