CS 575 Automata and Formal Languages, Spring 2018



Time and Place: 11 am -- 12:15 pm T/Th, 397 ChemFizz

Professor: Dr. J. Goldsmith
Office: 311 Davis Marksbury Building
Office Hours: TBA or by appointment. Email questions encouraged and answered.

Course Description:

Introduction to models of computation and of formal grammars: finite automata and regular languages, pushdown automata and context-free languages, Turing machines, decidability, and computational complexity, including polynomial and nondeterministic polynomial time, polynomial space, and exponential time bounded computation.
Prereqs: CS 375 or consent of instructor; needed knowledge: Basic Boolean logic, set theory, and graph theory, especially notions of graph theory, depth first and breadth first search.


Introduction to the Theory of Computation. Michael Sipser, Course Technology; 3 edition (June 27, 2012). Note that the book is overpriced. You can acquire a cheaper version by looking at the previous edition.


There will be biweekly homeworks due Tuesdays at the beginning of class except those weeks when there is an exam; assignments will be posted at least a week in advance, on the web. The lowest homework grade will be dropped. Illegible work will not be graded. There will be one midterm exam and one final.

Homework will be 50% of your grade; the midterm will be 20% and the final 30%.

Homeworks will be due on Tuesdays at the beginning of class on: Jan. 23th, Feb. 6th, 20th, Mar. 27th, April 10th, and 24th.


Attendance in class and section is very strongly encouraged.

Copying of homework from other students or from other sources is strictly prohibited. Obtaining a solution from another source without citing the source is plagiarism. You are encouraged to visit Dr. Goldsmith in her office hours or to send her email if you are stuck on homework problems. You do not need an appointment for regularly scheduled hours.

Week by Week Course Outline:

Jan. 11 Math review, proofs; strings, languages0
Jan. 16--18Turing machines3
Jan. 23--25 TMs, Church-Turing thesis, RAMs 3
Mar. 30--Feb. 1 Time and space complexity 7
Feb. 6--8 Nondeterminism, NP, reductions7, 5.3 (ish)
Feb. 13--15 Decidability, Halting Problem4
Feb. 20--22 Semi-decidability, reductions, completeness 4
Feb. 27 Review Old Practice Midterm and New Practice Problems
Mar. 6--8 Finite automata1
Mar. 11--18 SPRING BREAK!
Mar. 20--22 DFAs, regular operations, NFAs, equivalence1
Mar. 27--29 Regular expressions, equivalence with FAs 1
Apr. 3--5Pumping Lemma, Myhill-Nerode Thm 1.4
Apr. 10--12 CFGs, PDAs, equivalence2
Apr. 17--19Ambiguity, Pumping Lemma, nondeterminism2
Apr. 24--262-stack automata, review of complexity 2
Practice exam
April 30thFINAL: Monday, April 30, 10:30 AM

Dear Student: As part of our curriculum improvement process, the Department of Computer Science would like to know how well this course has helped you meet the learning objectives for the course. Please respond to the supplemental questions beginning at 37 on the response sheet as follows:

0= Not Applicable 1= Unacceptable 2= Poor 3= Acceptable 4=Good 5=Outstanding

The course has helped me to improve my ability, my understanding, or my knowledge in the following categories:

  1. ability to apply knowledge of computing and mathematics appropriate to the discipline;
  2. recognize the relationship between machine models and language generation;
  3. analyze languages in terms of machine complexity;
  4. analyze algorithms in terms of time and space complexity;
  5. design better algorithms;
  6. recognize problems that are intractable or uncomputable;
  7. understand the relevance of Theory to the CS curriculum.

This page last modified: January 2nd, 2018