Lectures
Following is an outline of lectures given along with references and links to additional reading.
\( \def\PAL{\rm PAL} \)
Lec 1 (16 Aug, Tue) : Administrative info. Computation and why study it.
Reading : Kozen Lec 1. For a broad perspective of the theory of computing, see Chapter 20 of this very nice book.
Lec 2 (17 Aug, Wed) : Languages versus problems. Alphabets, strings, the epsilon string, a word problem.
Reading : Kozen Lec 2.
Lec 3 (18 Aug, Thu) : Class cancelled for CS3050.
Reading :
Lec 4 (22 Aug, Mon) : Review of formulating problem as language. Examples - parity, graph reachability. Star closure.
Reading :
Lec 5 (23 Aug, Tue) : Class cancelled. To be compensated later.
Reading :
Lec 6 (24 Aug, Wed) : Automata as a computational model. Examples - two state system, counters, button as an automata. How to describe an automata ? Towards a formal definition.
Reading : Kozen Lec 3. Demo link to button as an automata.
Lec 7 (25 Aug, Thu) : Transition function, Extended transition function. Full formal definition. Why call ''finite'' automata ? Language accepted by a finite automata. Examples
Reading : Kozen Lec 3.
Lec 8 (29 Aug, Mon) : Designing a finite automata for the set of strings representing multiples of $3$ in binary. Proof of correctness by induction.
Reading : Kozen Lec 4.
Lec 9 (30 Aug, Tue) : Tutorial session 1
Reading : Lectures 1 through 8, solve pps1
Lec 10 (31 Aug, Wed) : Completed proof of correctness. Formally proving the language accepted by a finite automata using induction - a worked out example.
Reading :
Lec 11 (01 Sep, Thu) : Completed remaining part of the proof by induction. Designing automata for complement, intersection and union of languages
Reading : Kozen Lec 4.
Lec 12 (05 Sep, Mon) : Correctness argument for complement, intersection and union of languages accepted by DFA. Regular languages.
Reading : Kozen Lec 4.
Lec 13 (06 Sep, Tue) : Regular languages and regular expressions. Examples.
Reading : Hopcroft-Motwani-Ullman Chapter 3, section 3.1
Lec 14 (07 Sep, Wed) : Axiomatic rules for simplification of regular expressions - Kleene algebra. Worked out examples.
Reading : Kozen Lec 9. Hopcroft-Motwani-Ullman Chapter 3, section 3.4
Lec () (08 Sep, Thu) : Holiday due to Onam.
Lec 15 (12 Sep, Mon) : Towards equivalence of regular expressions and languages accepted by DFA - obtaining a regular expression from a DFA and using Kleene algebra for simplification.
Reading : Kozen Lec 9.
Lec 16 (13 Sep, Tue) : Class test 1
Reading :
Lec 17 (14 Sep, Wed) : Worked out examples for obtaining regular expression from DFA. Choice automata - introduction to non-determinism. Examples.
Reading : Kozen Lec 5.
Lec 18 (15 Sep, Thu) : Properties of NFA - closure under concatenation, Kleene closure and union. Obtaining an NFA from a regular expression. Examples.
Reading : Kozen Lec 8.
Lec 19 (19 Sep, Mon) : NFA for Kleene closure with examples and reason for failure of naive construction.
Reading : Kozen Lec 6.
Lec 20 (20 Sep, Tue) : Formal definition of NFA. Definitions of transition and extended transition functions.
Reading : Kozen Lec 6.
Lec 21 (21 Sep, Wed) : Quiz 1
Reading :
Lec 22 (22 Sep, Thu) : Making NFAs deterministic - the subset construction. Worked out example. Deterministic finite automata precisely accepts regular languages. What is non-determinism ? Computational tree view for choices.
Reading : Kozen Lec 6.
Lec 23 (26 Sep, Mon) : Non-determinism as guess followed by verification. Illustrated this by showing - if $A$ is regular, then $\mathsf{FirstHalves}(A)$ is also regular.
Reading : Kozen Lec 6, Question 26 - Miscellaneous exercises (page 322)
Lec 24 (27 Sep, Tue) : Completed NFA construction for $\mathsf{FirstHalves}(A)$ and argued correctness of the construction.
Reading : Kozen Question 26 - Miscellaneous exercises (page 322) and solution (page 358)
Lec 25 (28 Sep, Wed) : Limitations of finite automata - pumping lemma. Formal statement.
Reading : Kozen Lec 11
Lec 26 (29 Sep, Thu) : Pumping lemma as a game. Three worked out examples.
Reading : Kozen Lec 12
Lec () (03 Oct, Mon) : Recess break
Lec () (04 Oct, Tue) : Holiday due to Mahanavami.
Lec () (05 Oct, Wed) : Holiday due to Dussehra.
Lec 27 (06 Oct, Thu) : Completed worked out examples for pumping lemma. Using closure properties of regular languages in proving non-regularity.
Reading : Kozen Lec 12
Lec 28 (10 Oct, Mon) : DFA minimization algorithm. Quotient automata construction, minimality. An example.
Reading : Kozen Lec 14
Lec 29 (10 Oct, Mon) : (Compensatory lecture for Aug 23) Proof of correctness of the minimization algorithm.
Reading : Kozen Lec 14
Lec 30 (11 Oct, Tue) : Tutorial 2
Reading :
Lec 31 (12 Oct, Wed) : Completed the proof of correctness. Description of the minimal automata. Equivalence relations and partitions. States as equivalence classes.
Reading : Kozen Lec 13
Lec 32 (13 Oct, Thu) : Describing the quotient construction. Correctness of language acccepted. Relations over $\Sigma^*$ given DFAs for odd number of a's.
Reading : Kozen Lec 15
Lec 33 (17 Oct, Mon) : Obtaining equivalence relations from DFA. Right congruence and refinement property. Myhill-Nerode relations - definition.
Reading : Kozen Lec 15
Lec 34 (18 Oct, Tue) : Tutorial 3
Reading :
Lec 35 (19 Oct, Wed) : Myhill-Nerode relations - definitions, examples. Index of an equivalence relation. From Myhill-Nerode relations of finite index to DFA and back. Construction and correctness.
Reading : Kozen Lec 15
Lec 36 (20 Oct, Thu) : Comparing two Myhill-Nerode relations. Notion of Refinement. Coarse and fine relations wrt refinements. Finest and coarsest relations. Definition of $\equiv_L$ - coarsest Myhill-Nerode relation.
Reading : Kozen lec 16
Lec 37 (21 Oct, Fri) : (Compensatory class for Oct 25) Proof that $\equiv_L$ is the unique, coarsest Myhill-Nerode relation for a language $L$. An if and only if condition for a language to be regular - Myhill-Nerode theorem.
Reading : Kozen Lec 16
Lec 38 (21 Oct, Fri) : (Compensatory class for Oct 31, shorter session) For a regular $L$, using $\equiv_L$ to construct minimal automata. Proving non-regularity of languages. Examples.
Reading : Kozen Lec 16
Lec () (24 Oct, Mon) : Holiday due to Diwali.
Lec 39 (25 Oct, Tue) : Discussion session for problem sets, tutorials so far
Reading :
Lec 40 (26 Oct, Wed) : Quiz 2
Reading :
Lec 41 (27 Oct, Thu) : Introduction to context free languages (CFL). Regular languages are context free via an example. Examples - generator for calculator expressions, and regular expressions and programming languages. Parse trees and ambiguity.
Reading : Kozen Lec 19
Lec 42 (31 Oct, Mon) : Class cancelled.
Reading :
Lec 43 (01 Nov, Tue) : Formal definition of context free grammars (CFG). Language of a context free grammar, Production rules, Examples
Reading : Kozen Lec 19, 21
Lec 44 (02 Nov, Wed) : Normal forms- motivation and defition. Removing $\epsilon$-production rules and unit production rules. Chomsky normal form. Any context free grammar can be converted to Chomsky normal form. Worked out example.
Reading : Kozen Lec 21
Lec 45 (03 Nov, Thu) : Completed proof of correctness of obtaining a grammar in Chomsky normal form.
Reading : Kozen Lec 21
Lec 46 (07 Nov, Mon) : Closure properties of CFL. CFLs are not closed under intersection. Pumping lemma for context free languages
Reading : Kozen Lec 22 (for pumping lemma) and Lec 27 (for closure properties)
Lec () (08 Nov, Tue) : Holiday due to Guru Nanak Jayanti.
Lec 47 (09 Nov, Wed) : Statement of Pumping lemma and proof. The language $\{a^nb^na^n \mid n \ge 0\}$ is not context-free. Worked out example.
Reading : Kozen Lec 22, 23
Lec 48 (10 Nov, Thu) : Completed the worked out example. Back to closure properties. Why regular languages are context-free. Introduction to Push down automata. Push down automata can accept regular languages.
Reading : Kozen Lec 27
Lec 49 (14 Nov, Mon) : Tutorial 4
Reading :
Lec 50 (15 Nov, Tue) : Formal description of push down automata. Push down automata accepts precisely context free languages (statement). Intersection of context free language and regular language is context-free.
Reading : Kozen Lec 23
Lec 51 (16 Nov, Wed) : The CKY algorithm to check if a string belongs to a CFL.
Reading : Kozen Lec 27
Lec 52 (17 Nov, Thu) : Completed CKY algorithm. A short summary of the landscape so far. Notion of effective computability.
Reading : Kozen Lec 27, 28
Lec 53 (21 Nov, Mon) : Church-Turing thesis. Turing machines, Informal description and examples. Formally describing 1-tape Turing machines.
Reading : Kozen Lec 28
Lec 54 (22 Nov, Tue) : Tutorial 5
Reading :
Lec 55 (23 Nov, Wed) : Configurations, next configuration relation. Language accepted by a Turing machine. Accept, rejecting configurations. Halting and looping computations. Recursive and recursively enumerable languages - definitions.
Reading : Kozen Lec 28, 29
Lec 56 (24 Nov, Thu) : Variants of Turing machines - two tape, non-deterministic, two-way infinite and how they can simulate each other.
Reading : Kozen Lec 30
Lec 57 (28 Nov, Mon) : Properties of recursive and recursively enumerable sets. Universal Turing machines. Turing machines as strings.
Reading : Kozen Lec 31
Lec 58 (29 Nov, Tue) : Class Test 2
Reading :
Lec 59 (30 Nov, Wed) : Halting problem and membership problem. Proof of Undecidability of Halting problem via diagonalization.
Reading : Kozen Lec 31