CS345 / MA345 / CS541
Automata Theory and Formal Languages
Fall 2023
Syllabus

Official Course Description. This course gives an introduction to formal languages and their relation to automata. Topics include deterministic and non-deterministic finite automata, regular expressions and languages, closure properties and decision procedures for context-free languages, recursive and recursively enumerable sets, Turing machines, and decidability. Some aspects of computational complexity may also be explored.

Prerequisites. CS142 and MA211.

Location and Times. CAMP 176. MWF 9:00-9:50.

Instructor. Alexis Maciel. Science Center 379, 268-2385, alexis@clarkson.edu. Office Hours: MW 2:00-3:30 and TR 9:30-11:00.

Teaching assistant. Kun Han. hank@clarkson.edu

Required Text. None.

Course Objectives.

  1. To teach you concepts and results that constitute the foundations of computing, that is, the knowledge that allows us to understand what computation is. These include the Turing machine, the existence of undecidable problems, and the P versus NP question.

  2. To teach you concepts and results of practical importance such as those related to regular expressions, context-free grammars, undecidability and NP-completeness.

  3. To increase your ability to think and communicate clearly.
Demonstrable outcomes. By the end of the semester,
  1. You will have a good understanding of concepts and results from the theory of computation, covering the range of topics listed below.

  2. You will be able to solve problems related to those topics.

Topics to be covered. Deterministic and nondeterministic finite automata, regular expressions, regular languages, the Pumping Lemma, context-free grammars, pushdown automata, context-free languages, deterministic and nondeterministic Turing machines, the Church-Turing thesis, and undecidability results. Time permitting, some notions of computational complexity, such as time and space complexity, the classes P and NP, and NP-completeness.

Grading. Your evaluation will be based on several homework assignments (A) and three tests (T). Your course grade will be computed using the following formula:

25% A + 75% (T1 + T2 + T3) / 3

All three tests will be 60-minutes long. The first two tests will be given in the evening. Tentative dates are Thursday, October 12 and Thursday, November 9, both at 7 p.m. The final exam will consist of Test 3 and optional retakes for each of the first two tests. All students are required to write the final exam (no exemptions).

Each test grade will replace any lower grade on an assignment that covers the same material.

Distance students: You will be able to take the tests remotely but you will need to arrange a proctor. I will contact you later with more information.

Policy for the test retakes. If your grade on a retake is higher than the original grade, you keep the higher grade. If your grade on a retake is lower than the original grade, your test grade becomes the average of the two grades.

Letter grades. Numerical course grades will be converted to letters by using the following scale:

Letter F D C- C C+ B- B B+ A- A A+
Min grade - 60 67 70 73 77 80 83 87 90 95

(Graduate students: Keep in mind that C is the minimum passing grade for you.)

Policy for missed work. There will be no make-up assignments. Make-ups for the first two tests may be arranged but only if a good reason is provided, in advance, if possible.

Laptops and other electronic devices. They are permitted in class only for the purpose of taking notes.