CSCI3130 Formal Language and Automata Theory - CUHK Course Review

Term Taken: 2019 Fall

Instructor: Prof. Chan Siu On

Grading Scheme

Original Scheme:

  • Homework (30%)
  • Midterm Exam (30%)
  • Final Exam (40%)

Scheme for 2019 Course Cancellation:

  • Homework (50%)
  • Midterm Exam (50%)


Introduction to the Theory of Computation, Michael Sipser, 3rd ed

Topics Covered

  • Finite Automata (DFA, NFA).
  • Regular Expressions.
  • Context-Free Grammar.
  • Pushdown Automata.
  • Pumping Lemma.
  • LR(0) Parser.
  • Church-Turing Thesis.
  • Reductions.
  • Decidability and Undecidability.
  • NP-completeness.
  • Cook-Levin Theorem.
  • Space Complexity.
  • Zero Knowledge Proofs.


In my opinion, this subject along with algorithms are the core of computer science.

In the first half of the lectures, Prof. Chan went through some basic automaton models and formal languages such as DFA, NFA, Regular Language, CFG, PDA. These materials were quite easy to understand by just going through the lecture notes.

The most interesting part of the course was the second half of the lectures. We dove into the theory of computation and complexity. The materials included Turing Machines, reductions, decidability, undecidability, NP-completeness, and space complexity. These were the essential knowledge for theoretical computer science so that all computer science students should at least have some basic understandings of them. However, these theoretical topics can get quite confusing sometimes in the sense that even if you study hard, you may not totally grasp the grand idea behind. So, try your best. At least for me, this course taught me about the limitations of not only computing models but also my brain.

More CUHK Course Reviews