Course Description
In this class we will study the foundations of the theory of computation. The key concepts we will cover include formal languages and automata, computability, and complexity classes. These ideas form the underpinnings of what computer scientists study. By the end of the course you will be familiar with many of the fundamental concepts necessary to be a computer scientist.
The prerequisite for this course include CS/M 166, M 161, M 229, CS 200, and CS 253 (or concurrent registration). This class covers many abstract concepts that can be fairly non-trivial. You must be prepared to put a significant amount of effort into understanding the readings and getting the most out of the lectures. You should also be somewhat comfortable with understanding and carrying out formal and rigorous mathematical arguments.
Click [here] for course announcements.
Instructor
Andrew Sutton
Email: {lastname}@cs.colostate.edu
Phone: (970) 491-7016
Office: CS 242
Office hours: 11:00am - 12:00pm T Th (or by appointment)
Teaching Assistant
William Springer
Office hours: 5:00pm - 7:00pm Th
Location: CS 120
Where and when
Lecture: 9:30am - 10:45am T Th; CS 130
Recitation: 9:00am - 9:50am F; Clark C 250
List of topics
- Finite Automata and Regular Languages
- Pushdown Automata and Context-Free Languages
- Computational Limits and Complexity
- Turing Machines and Computability
Click [here] for a detailed (if tentative) class schedule.
Required texts
-
Peter Linz, An Introduction to Formal Languages
and Automata , 4th edition, Jones and Bartlett, ISBN 0763737984.
Susan H. Rodger and Thomas W. Finley, JFLAP: An
Interactive Formal Languages and Automata Package , Jones and
Bartlett, ISBN 0763738344.
Student responsibilities
The reading should be your primary focus in the class, and the class sessions should serve to give you feedback about what you missed. After a class, review the readings assigned for the class and try to figure out, with the benefit of hindsight, how you could have figured out the points you got stuck on without the benefit of the class.
I will sometimes give pop quizzes on the assigned reading. You need to make a good-faith effort to understand the reading before coming to the lecture. One reason for this is that it helps the class move along more quickly by eliminating the need to address trivialities, such as definitions, in class. A more important reason is that a class is training toward becoming an independent computer scientist who can read the literature of our field and doesn't need an instructor (or coworker) to explain it.
Grading
The final grade will be determined as follows.
Quizzes: 10%
Homework Assignments: 30%
Midterm Exam 1: 20%
Midterm Exam 2: 20%
Comprehensive Final Exam: 20%
Final letter grades are based on the relative distribution of total scores and not on any preset numerical scale. Homework assignments are based on course reading and lecture material. All work must be neat and legible. Illegible or poorly formatted work receives no credit.
Several assignments make use of the JFLAP package discussed in the required text, JFLAP: An Interactive Formal Languages and Automata Package. Problems from JFLAP must be submitted in the form of hardcopy. You may print JFLAP results and staple them to the homework from the text.
No late homeworks will be accepted. Absolutely no exceptions. The homework is primarily designed to help you learn the material and prepare you for the exams. To get you out of any unforeseen mishaps, I will throw out your lowest homework grade in computing the homework average. Even if you give me a legitimate reason for turning it in late, I will tell you to use this "freebie."
Because answers will involve proofs and require detailed study for us to critique and grade them effectively, we will choose a subset of assigned homework problems to grade on each assignment. We will announce the subset after they are turned in. The subset will always consist of a mixture of easy, medium, and hard problems.
Final exam: Wed Dec 16, 9:10-11:10 in the usual classroom. This exam will be comprehensive.
Other policies
Policies on cheating, plagiarism, incomplete grades, attendance, discrimination, sexual harassment, and student grievances are described in the Student Information Guide: [http://www.cs.colostate.edu/advising/student-info.html] . The instructor and GTA will look for evidence of cheating, and the department policy on academic integrity will be rigorously enforced. All other matters follow the policies set in the current Colorado State University General Catalog. Students are responsible for all the information in these documents.