CMSC 28000: Introduction to Formal Languages (Spring 2023)

General information

Instructor
Timothy Ng (timng@uchicago.edu)
Class meeting
MWF 9:30–10:30, HM 140
Links

Overview

This course explores the mathematical foundations of computation. How do we quantify computational power? Are there limits on the kinds of problems that computers can solve? To answer such questions, we examine the curious connection between computation and mathematical linguistics.

Communication

There are a number of different ways we'll be communicating about the class.

Course materials
Lecture notes will be made available via this course website. The course website also contains basic information about the course (i.e. you can treat this like a syllabus).
Discussion and announcements
We will use Ed Discussion for course discussion and announcements. Restricted course materials will also be posted here.
Coursework and grades
We will use Gradescope for distributing and receiving coursework. Your grades will also be available here.
Office hours
Office hours are times when the course staff are available for you. The instructor and teaching assistants will have scheduled office hours in-person and/or online. While most students use this as an opportunity to ask about coursework, you're free to ask about or discuss things that are related directly or indirectly with the course.

Course materials and objectives

The following is a list of topics that will be covered in the course.

Regular languages
Deterministic and non-deterministic finite automata, closure properties, regular expressions, Brzozowski derivatives, the pumping lemma for regular languages, DFA minimization, the Myhill-Nerode theorem.
Context-free languages
Context-free grammars, normal forms, the pumping lemma for context-free languages, pushdown automata, closure properties.
Decidable and undecidable languages
Turing machines, the Church-Turing thesis, computability, undecidability, the Halting Problem, reductions.

Upon completion of the course, students should be able to

Text

There is no required textbook for this course. Lecture notes will be made available. Lectures are based largely on the following sources—you can consider one of these if you're looking for a reference.

  1. Dexter Kozen. Automata and Computability (1997). This is available online for free via the UChicago Library.
  2. Michael Sipser. Introduction to the Theory of Computation, 3rd ed. (2012). Any edition of this would be a solid reference.

The lectures also incorporate material from the following texts, to a lesser extent.

  1. John Hopcroft and Jeffrey Ullman. Introduction to Automata Theory, Languages, and Computation, 1st ed. (1979).
  2. Jeffrey Shallit. A Second Course in Formal Languages and Automata Theory (2008).
  3. Jacques Sakarovitch. Elements of Automata Theory (2009). This is also available online for free through the UChicago library.

If you refer to one of these texts, keep in mind that some notation and definitions will vary. In such cases, the course notes will take precedence.

Evaluation

Your computed grade in this course will be determined by the following coursework components.

Problem sets

Problem sets will be released on Wednesdays and will be due on the following Thursday at 8:00 pm (20:00) Central.

Problem sets will be distributed and submitted via Gradescope.

Collaboration and citation

The purpose of problem sets is to give you the opportunity to practice working through the process of solving problems and to receive feedback on that process. The work that you hand in to be graded is expected to be your own so that the feedback you receive will be the most useful. Be sure to acknowledge your collaborators and any sources beyond course materials that you may have used.

How solutions are graded

Your solutions on problem sets and exams are judged on the following basis:

Grading of problems is based on the overall quality of the solution. Clearly, solutions need to be valid in order to be evaluated highly, but a completely valid solution that is not readable will still be evaluated poorly. Furthermore, grades are assigned as a qualitative evaluation of the work and not a quantitative accounting of the work. This appears as a 4-point scale on Gradescope.

Generally, the overarching principle that guides the grading is: How much work and guidance is needed for you to revise your submission into something that is Excellent?

The assigned grade is the grader’s judgement of whether the solution meets the standards of the class. In addition to the assigned grade, the grader is expected to provide detailed feedback, addressing specific flaws in the submitted work that can and should be improved in future work.

Resubmission

Part of the learning process is identifying and correcting mistakes. After your submissions have been graded and returned to you, you will have the opportunity to use the feedback you receive to revise and resubmit your work.

Regrade requests

You may submit a regrade request in the event of an error by the grader. That is, if the feedback provided by the grader is a factual error, you may request a review of the grading. Please indicate the source of the error in this case.

We will not consider regrade requests concerning disagreement with a grader’s evaluation of your work. In such cases, you should consider the feedback that was given and apply it towards revision and resubmission of your work.

Lectures

Section numbers refer to Kozen.

March 20
The theory of computation, strings and words [1,2]
March 22
Languages, finite automata [2,3]
March 24
Finite automata, divisibility [3,4]
March 27
Closure properties, the product automaton [4]
March 29
Nondeterministic finite automata [5]
March 31
The subset construction, $\varepsilon$-transitions [6]
April 3
Regular languages and regular expressions [7,8]
April 5
Finite automata and regular expressions [9]
April 7
Derivatives of regular expressions [Sakarovitch 4.4]
April 10
Non-regular languages [11,12]
April 12
The Myhill–Nerode theorem [15,16]
April 14
DFA minimization [13,14]
April 17
Grammars and context-free languages [19]
April 19
Properties of context-free grammars [19,21]
April 21
Chomsky normal form, parsing [21,27]
April 24
Pushdown automata [23]
April 26
Equivalence of of context-free grammars and pushdown automata [E,24]
April 28
Closure properties of context-free languages [25,27]
May 1
Non-context-free languages [22]
May 3
Computability and Turing machines [28]
May 5
Working with Turing machines [29,30]
May 8
Decision problems on formal languages [Sipser 4.1]
May 10
Universal machines and diagonalization [31]
May 12
Undecidable problems and Rice's theorem [32,34]
May 15
Decision problems on context-free languages [35]
May 17
Post's correspondence problem and reduction [33]
May 19
Q&A

Academic integrity

It is your responsibility to be familiar with the University’s policy on academic honesty. Instances of academic dishonesty will be referred to the Office of the Provost for adjudication. Following the guidelines above on collaboration and citation should be sufficient, but if you have any questions, please ask me.

Accessibility

Students with disabilities who have been approved for the use of academic accommodations by Student Disability Services (SDS) and need reasonable accommodation to participate fully in this course should follow the procedures established by SDS for using accommodations. Timely notifications are required in order to ensure that your accommodations can be implemented. Please meet with me to discuss your access needs in this class after you have completed the SDS procedures for requesting accommodations.