|
|
|
|
|
|
|
|
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)
| |
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.
Tests must be your own work.
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.
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.
| 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.