CMSC 28000: Introduction to Formal Languages (Spring 2026)

General information

Instructor
Timothy Ng (timng@uchicago.edu)
Class meetings
MWF 10:30–11:20, Ryerson 251
MWF 11:30–12:20, Ryerson 251

Overview

This course explores the mathematical foundations of computation. What is 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. 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.
Lectures
Lectures are often the first point at which students will be exposed to new ideas and material. They will cover material that is necessary for success in the course. However, lectures alone may not be sufficient for all students. It is not expected that students will master the material discussed in lecture without significant review, inquiry, and practice outside of lecture.

Course material and objectives

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

Regular languages and finite automata
Finite automata, determinism and non-determinism, closure properties, regular expressions and regular languages, Kleene’s theorem, Brzozowski derivatives, the pumping lemma for regular languages, the Myhill-Nerode theorem.
Context-free languages and grammars
Grammars and context-free languages, normal forms for grammars, parsing, pushdown automata, the pumping lemma for context-free languages, closure properties of context-free languages.
Decidable and undecidable languages
Turing machines, decidable and recognizable languages, the Church-Turing thesis, computable functions, diagonalization, undecidable languages, 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 provided and will serve as our primary source. Lectures are based largely on the following sources—you can consider one of these if you’re looking for an alternative 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 select material from the following texts.

  1. John Hopcroft and Jeffrey Ullman. Introduction to Automata Theory, Languages, and Computation, 1st ed. (1979). (This resource is now out of print and subsequent editions do not have the same material.)
  2. Jeffrey Shallit. A Second Course in Formal Languages and Automata Theory (2008).
  3. Jacques Sakarovitch. Elements of Automata Theory (2009).

Some copies of these texts will be held on course reserve at John Crerar Library. You can use the UChicago Library proxy to access electronic library resources when you are off-campus.

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.

Coursework and 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.

Submissions must be typed. $\LaTeX$ is the preferred and recommended method for preparing your submission but it is not required. No handwritten submissions of any kind will be accepted—this includes digitally handwritten submissions, such as those prepared on a tablet.

Collaboration, citation, and academic integrity

The purpose of the problem sets is to give you the opportunity to practice working through the process of solving problems, composing their solutions, and to receive feedback on that process. The work that you hand in to be graded is expected to be your own. Why is this important?

In a theory course where the emphasis is on proof, citing results is necessary to justify any claims that are made. Whether a result needs to be cited explicitly depends on its role in the course.

Any collaborators and sources beyond course materials that you may have used must be acknowledged explicitly.

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 College Community Standards for adjudication. Following the guidelines above on collaboration and citation should be sufficient, but if you have any questions, please ask the instructor.

How submissions are graded

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

Validity
Your solution will be judged on its correctness. This includes whether a result, method, or definition was applied correctly, calculations are correct, and proof steps follow the rules of logic.
Presentation
Your solution will be judged on its presentation as it relates to readability and fluency. A solution may be correct, but still to communicate an argument clearly to the reader.

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 presented appropriately will still be evaluated poorly. Furthermore, grades are assigned as a qualitative evaluation of the work and not a quantitative accounting of the work.

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?

Excellent
The solution is correct and readable. The solution is not necessarily perfect—it may have a few trivial flaws in logic or presentation that can be easily corrected.
Good
The solution is generally correct and readable and has some minor flaws in logic or presentation—often there is one last “step” that is missing. Understanding of the problem has been clearly demonstrated. The solution and presentation can be improved quickly with a few suggestions—for instance, a bit more generalization or one more logical step that needs to be taken.
Borderline
The solution could be correct and readable but has a major flaw in logic or presentation. There is evidence that there is some understanding of the problem and the solution is on the right track or has the right idea. The solution and presentation can be improved with some guidance and substantial revisions.
Needs revision
The solution is generally not correct or not readable. It is not clear that the problem was understood and/or the presentation of the solution is heavily flawed. In either case, there is a significant gap in understanding or execution. The solution should be revised with some guidance.
Incomplete
The solution was not submitted or is clearly incomplete—not enough of the solution has been submitted to be able to provide any useful feedback. Submissions that are graded Incomplete are ineligible for resubmission.

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.

Instructions for how to prepare resubmissions will be provided when problem sets become available for resubmission.

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 unless otherwise stated.

March 23
The theory of computation [1, 2]
March 25
Strings, languages, and machines [2, 3]
March 27
Finite automata [3, 4]
March 30
Language operations and closure properties [4]
April 1
Nondeterminism [5]
April 3
The power of nondeterminism [6]
April 6
Non-recognizable languages [11, 12]

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.