CompSci 334, Spring 2026
Formal Language and Automata with Applications
Syllabus

Professor: Susan Rodger

  • Office: LSRC D237
  • Office Hours:
    Mondays 11am-12pm
    Tuesdays 2:30-3:30pm
    Wednesdays 4pm-5pm

    (subject to change, will post on ED if they have to be moved)
    The zoom link for my office hours are posted in Ed.
    My Office hours are in person AND on zoom at the same time!

  • Email:

  • Phone: 660-6595

Graduate TA: Lingyi Xing

  • Office Hours: Mondays 3-4pm (in the link, posted on Ed), Friday 10am-12pm (on zoom, )
  • Email: lingyi.xing AT duke.edu

UTA: Joe Arch

Lecture Room


Course Meeting Time

  • LECTURE: Tuesdays and Thursdays: 11:45am-1pm

Texts

An Introduction to Formal Languages and
Automata, 7th Edition, Linz and Rodger, 2023.
JFLAP: An Interactive Formal Languages and
Automata Package, Rodger and Finley, 2006. ( free .pdf)

Reading

In general you should read the texts in order to be prepared to ask and answer questions in class. If you've looked at material before it's discussed in class you'll get much more out of the class discussion. This is especially true once class has been going for a while. And you may enjoy reading a book that was co-authored by a Duke undergrad.

There will be reading quizes on Canvas due before each class starting with the first class! They must be completed before class starts, at 11:45am on the day they are posted. You must submit them before class starts or you won't be able to submit them.

Exception: Due to drop/add, the first five quizzes QZ01-QZ05 will all turn off on January 22 at 11:45am.

You get up to 3 tries on each quiz and we use your highest score. You cannot makeup missed quizzes! We do drop some quiz points at the end of the semester, so it is ok to miss a few.

Web page

Many of the materials for this course (including this page) are available on:
http://www.cs.duke.edu/courses/spring26/compsci334/

Bulletin Board

You should regularly read the Ed Discussion bulletin board (on our Canvas site) for this course as it may contain announcements, hints, and information relevant to this class.

Collaboration

Homework and programming assignments should be your own work! You may consult with one or two other students (and as many times as you want with the TA and Prof. Rodger) on homework. Consult means you can discuss the general idea of a homework problem or programming assignment before writing it. Each person should write their own answers/code. For each homework you are expected to include a list of the people with whom you have consulted (including students, TA's, tutors, professors). Finally, you may not consult with the same Compsci 334 students on two consecutive assignments.

Tests must be your own work.

Extensions and Late Policy on homeworks and computing projects

LATE POLICY on Assignments (homeworks and computing projects): Assignments turned in up to 3 days late are 10% off (Sunday does not count as a late day). Assignments turned in by 1 week are 20% off. They must be turned in within one week late. See Prof. Rodger immediately if you are having difficulty with this.

EXTENSIONS: Everyone gets four free 3-day extensions that can be used for either a project or a homework (SUNDAYS are not counted). You must fill out the extension request form if you want to take that extension. You can only apply one extension to a homework or project. You cannot use an extension the last week of classes.

Can I use AI (LLMs) in this course?

You cannot use any AI, such as LLMs to solve problems and write code for you. You need to do the problem solving in order to learn how to solve problems.

For the programming component of the interpreter, you should plan the code out and writing all the code. Creating the interpreter is a great way to apply many of the concepts you have learned in this course and your programming courses. You can put on your resume that you wrote an interpretor for a programming language, that is impressive! But they will likely ask you questions about how you did that. So you will need to understand the problem solving that goes into that.

You CAN USE AI (LLMs) to help you in debugging small parts of your code for the interpreter.

We encourage you to take advantage of our office hours and Ed Discussion. You can post anonymously or privately on Ed Discussion.

Grading

Classwork/participation 5%
Canvas Quizes on reading 5%
Programming projects 15%
Homeworks 15%
Tests (3) 60%

Grading is done on an absolute, but adjustable scale. This means that there is no curve. Anyone earning 90% or more of the total number of points available will receive a grade in the A range (A+,A,A-), an earning 94% is an A; 80% = B, 70% = C, 60% = D. This scale may go down, but it will not go up.