# diochnos/teaching/2019F/CS3823

## Fall 2019 – CS 3823 Theory of Computation

### Table of Contents

### Course Description

Introduces computation theory including grammars, finite state machines, pushdown automata, and Turing machines.

[Course Description] [Table of Contents] [Top]

### Basic Information

#### Syllabus

The syllabus is available here.

#### Time and Location

Tuesdays and Thursdays, 3:00pm – 4:15pm, George Lynn Cross Hall 0123.

#### Contact Information

Please see here.

#### Teaching Assistants

The teaching assistants for the class, listed alphabetically by last name, are:

- Krishna Atluri (12krishna) and
- Mohammad Mukhtaruzzaman (mukhtar).

#### Office Hours

We have office hours at the following times and places.

- Tuesdays
- 10:30am – 12:30pm, 115 Devon Energy Hall (Krishna Atluri)
- 4:30pm – 6:00pm, 244 Devon Energy Hall (Dimitris Diochnos)
- Wednesdays
- 11:00am – 1:00pm, 115 Devon Energy Hall (Mohammad Mukhtaruzzaman)
- Thursdays
- 12:30pm – 2:00pm, 244 Devon Energy Hall (Dimitris Diochnos)

##### Exceptions to the Regular Schedule of Office Hours

If you want to meet me outside of my office hours, please send me an email and arrange an appointment.

Wednesday,
September 25, 2019: I will be holding
office hours between 10:00am – 12:00pm and 2:00pm – 4:00pm. My regular office hours that were planned for Tuesday,
September 24 and Thursday, September 26 are **canceled**.

Wednesday,
October 2, 2019: I will be holding
**extra** office hours between 10:00am – 12:00pm and 2:00pm – 4:00pm - only for this week because the
midterm is in the following day.

Wednesday, November 5, 2019: I will be holding **extra**
office hours between 2:00pm – 5:00pm - only for this week because the midterm is in the
following day.

##### Exceptions to the Regular Schedule of Office Hours for the TAs

As exceptions appear along the way, they will also be announced here.

[Basic Information] [Table of Contents] [Top]

### Homework Assignments

Assignment 1: Announced Thursday, August 29. Due Friday, September 6.

Assignment 2: Announced Tuesday, September 17. Due Thursday, September 26.

Assignment 3: Announced Tuesday, October 15. Due Tuesday, October 22.

Assignment 4: Announced Thursday, October 24. Due Friday, November 1.

Assignment 5: Announced Monday, November 18. Due Tuesday, November 26.

[Homework Assignments] [Table of Contents] [Top]

### Theory of Computation Resources

- Basic Concepts and Notation, by Gabriel Robins.
- Think like the pros, by Emanuele Viola.
- Who Can Name the Bigger Number?, by Scott Aaronson.
- The Physical Origin of Universal Computing, by Michael Nielsen.

[Theory of Computation Resources] [Table of Contents] [Top]

### Class Log

#### Class 1 (Aug 20, 2019)

Discussion on syllabus and policies.

#### Class 2 (Aug 22, 2019)

Discussion on mathematical background.

We will finish our discussion next time.

#### Class 3 (Aug 27, 2019)

Introduction to deterministic finite automata. Examples, their description, defining computation, definition of regular languages, designing finite automata according to specifications.

Introduction to regular operations. Next time we will prove that regular languages are closed under union and intersection.

#### Class 4 (Aug 29, 2019)

Proved that regular languages are closed under union and intersection.

Started discussion on non-determinism. Multiple transitions for the same symbol, missing transitions for some symbols, transitions triggered on empty input (λ).

Example NFA with a complete run on a specific input exhibiting the behavior of the above concepts. Designing an NFA for a specific language in mind (having a 1 three positions from the end of the binary string); then doing so also with a DFA.

Homework 1 announced; due on Friday, September 6.

#### Class 5 (Sep 3, 2019)

Discussion on TeX/LaTeX. History, evolution, creators, usage.

Started discussion on the theorem about the equivalence between DFAs and NFAs.

#### Class 6 (Sep 5, 2019)

Revising some concepts from discrete mathematics; induction, Gauss' trick and extension to geometric series.

This time we proved the theorem that we left unfinished from last time.

The Computer Science party is tomorrow, so please come!

#### Class 7 (Sep 10, 2019)

Closure under the regular operations. We looked into union, concatenation, star.

Started our discussion on regular expressions.

#### September 12, 2019

No class due to a career fair.

#### Class 8 (Sep 17, 2019)

Discussion on homework assignments, midterm, the AI/ML symposium that is coming, and the meaning of closure for regular operations. For this last point we also had a glimpse on the big picture behind languages that we will explore in this class: regular, context-free, Turing decidable, Turing recognizable, Turing unrecognizable. We will be familiar with these notions in November.

Continued our discussion on regular expressions. Proved that a language described by a regular expression can be recognized by an NFA and we also saw some examples.

#### Class 9 (Sep 19, 2019)

By popularity vote we decided that the first midterm will take place on Thursday, October 3.

Discussed the conversion of regular languages to regular expressions.

In this direction we discussed generalized transition graphs (GTGs) / generalized non-deterministic finite automata (GNFAs) and described the procedure that can take any DFA to a GNFA and then reducing that GNFA from k nodes to a GNFA with just two nodes (start state and accept state). The label of the arrow connecting these two states is the regular expression that we want.

We saw two examples for this reduction.

#### Class 10 (Sep 24, 2019)

Announced office hours for this and the following week via email. An announcement is also made above on this webpage.

Announced material that will be in the coming midterm exam via email.

Verified the above announcements in class.

The pumping lemma for regular languages. Examples uses for proving non-regularity of certain languages.

#### Class 11 (Sep 26, 2019)

More examples on the use of pumping lemma for proving non-regularity of certain languages.

#### Class 12 (Oct 1, 2019)

Discussion on homework and answering students' questions.

Preparation for the midterm.

#### Class 13 (Oct 3, 2019)

First midterm exam.

#### Class 14 (Oct 8, 2019)

Midterm returned. Discussion on the solutions of the midterm.

#### Class 15 (Oct 10, 2019)

Discussed the solution to exercise 3 from homework 2.

Started the discussion on context-free grammars.

#### Class 16 (Oct 15, 2019)

Homework assignment 3 announced. Due Tuesday, October 22.

Designing CFGs - among others, how to convert a DFA to a CFG (which, btw, shows that RLs
⊆ CFLs; that is, regular languages are a subset of context-free languages – we
can combine this information with the fact that among CFLs we can find languages that are not
regular, e.g., {0^{n}1^{n} | n ≥ 0}, and conclude that RLs ⊊ CFLs;
that is, regular languages form a proper subset of context free languages).

Ambiguous grammars, inherently ambiguous languages.

Chomsky Normal Form for CFGs. We started discussing an example but we ran out of time. Next time we will finish with the example.

#### Class 17 (Oct 17, 2019)

We finished with the example on Chomsky Normal Form.

We discussed (nondeterministic) pushdown automata (PDAs). How they perform computation and we also saw examples.

#### Class 18 (Oct 22, 2019)

Pumping lemma for context-free languages and examples.

#### Class 19 (Oct 24, 2019)

One last example from last time.

Introduction to Turing machines: notation, the 7-tuple, configurations.

Homework 4 announced. Due Friday, November 1.

#### Class 20 (Oct 29, 2019)

Designing TMs, state diagrams of TMs, defining decidable and recognizable languages.

Example of a state diagram for a Turing machine - deciding the language {0^{2n} | n ≥ 0}.
One more example deciding the language {a^{i}b^{j}c^{k} | i × j = k and i, j, k ≥ 1}.

Discussion on recognizable vs decidable languages. Hilbert's 10th problem.

#### Class 21 (Oct 31, 2019)

Three different levels of description of a TM. We looked into the language B = {w#w | w ∈ {0,1}^{*}} and three different ways of describing the TM that decides this language.

We had a discussion about the big picture of things: proper subset relations between different classes of languages. How the pumping lemmas fit into this picture.

Discussion on finding the roots of univariate and multivariate polynomials. Discussed the sum of three cubes being equal to 42. Hilbert's tenth problem is recognizable but not decidable. We also mentioned that there are problems that are not even recognizable - we will see such an example in the future.

Complexity theory cares about **decidable** languages. There we find different classes, such as P, NP, PSPACE, etc. Of particular interest are the classes P and NP.

Equivalence of different models of Turing machines; multi-tape, nondeterministic, TMs that have the option to stay put, etc.

#### Class 22 (Nov 5, 2019)

Discussion on homework and answering students' questions.

Preparation for the midterm.

#### Class 23 (Nov 7, 2019)

Second midterm exam.

#### Class 24 (Nov 12, 2019)

Returning second midterm to students and discussing the solutions for that midterm.

#### Class 25 (Nov 14, 2019)

Discussion on the material for the classes before Thanksgiving.

Discussion on the big picture for the Chomsky hierarchy of languages.

A_{DFA}, A_{NFA}, A_{REX}, E_{DFA}, EQ_{DFA}, A_{CFG} are decidable languages.
There is one or two more languages discussed in the notes that I did not cover in class – you do not have to read them, though for the largest part their proofs are easy and it would not hurt at least skimming through their text.

Brief recap of set theoretic notions.

The acceptance problem, A_{TM}, is undecidable.

#### Class 26 (Nov 19, 2019)

Announce, in-class, homework 5 - will be due on Tuesday, November 26.

Co-Turing recognizable languages and Turing unrecognizable languages.

A_{TM} is not Turing recognizable.

High level discussion on reductions.

HALT_{TM} is undecidable (reduction from A_{TM}).

The Post Correspondence Problem. You should know what the problem is and that it is undecidable.

Rice's Theorem.

#### Class 27 (Nov 21, 2019)

Introduction, overview of complexity theory and some related problems.

Complexity classes P and NP.

#### Class 28 (Nov 26, 2019)

Problems that are *complete* for a class and discussion on NP-Complete problems.

The million-dollar question: P vs NP.

You can find the list with the seven open problems (each one of them pays one million dollars) of the Clay Mathematics Institute here.

#### Nov 28, 2019

Thanksgiving; no class.

#### Class 29 (Dec 3, 2019)

Solutions to homework 5. Perhaps some additional discussion on review problems.

#### Class 30 (Dec 5, 2019)

Review - preparation for the final.

#### Monday, December 9, 2019 (4.30pm – 6.30pm)

Final exam. In-class (George Lynn Cross Hall 0123 — where we met throughout the semester).