This course gives an introduction of the theory of automata and language, as a foundation of the theory of computation including computability and complexity. By understanding the contents of this course, students will learn mathematical properties on the software and the hardware of computers. The topics studied in this course include strings and language, finite automata, nondeterminism, regular expressions, context-free grammar, pushdown automata, and the pumping lemmas.
By the end of this course, students will be able to understand:
1) the mathematical objects in language theory
2) the models and the properties for regular language
3) the models and the properties for context-free language.
Automata, language, string, finite automata, nondeterminism, regular expression, context-free grammar, pushdown automata, the pumping lemma
|✔ Specialist skills||Intercultural skills||Communication skills||✔ Critical thinking skills||✔ Practical and/or problem-solving skills|
Each class includes a standard or an exercise style of lecture. An exercise style of lecture includes supplementary materials and the answers for the quizzes. Each class also includes quizzes on the contents of this class or the previous classes.
|Course schedule||Required learning|
|Class 1||Overview of this course, computational problems, strings and languages||Understand the notion of strings and languages|
|Class 2||Deterministic finite automata, descriptions of automata based on the formalized definition||Understand the notion of deterministic finite automata|
|Class 3||Nondeterminism, the equivalence between deterministic and nondeterministic automata||Understand the notion of nondeterminism|
|Class 4||Exercise-style lecture on finite automata||Understand the methods for constructing finite automata|
|Class 5||The regular operations, closure under the regular operations, regular expressions||Understand the notion of regular expressions|
|Class 6||Equivalence between regular expressions and finite automata||Understand the properties on regular expressions|
|Class 7||The pumping lemma for regular languages||Understand the notion of the pumping lemma|
|Class 8||Context-free grammar, ambiguity of context-free grammar||Understand the notion of context-free grammar|
|Class 9||Exercise-style lecture on the pumping lemma for regular language, and on context-free grammar||Understand the applications of the pumping lemma|
|Class 10||Chomsky normal form||Understand the method for transforming context-free grammar to Chomsky normal form|
|Class 11||Pushdown automata, Equivalence between pushdown automata and context-free grammar I||Understand the notion of pushdown automata|
|Class 12||Equivalence between pushdown automata and context-free grammar II||Understand the transformation in the proof of the equivalence|
|Class 13||The pumping lemma for context-free language||Understand the notion of the pumping lemma|
|Class 14||Exercise-style lecture on the pumping lemma for context-free language||Understand the applications of the pumping lemma|
To enhance effective learning, students are encouraged to spend approximately 100 minutes preparing for class and another 100 minutes reviewing class content afterwards (including assignments) for each class.
They should do so by referring to textbooks and other course material.
Introduction to the Theory of Computation, Second Edition, Michael Sipser, Thomson Course Technology, 2005, ISBN 978-0534-95097-2.
References will be announced in the first class.
The evaluation consists of the quizzes in classes (60%) and the final exam (40%).
It is preferable to have the knowledge on the basics of algorithms and data structures.