An introduction to automata theory and formal languages. Topics include regular, context-free, and computable (recursive) languages with finite state machines, pushdown automata, and Turing machines, along with basic concepts of computability theory and NP-theory.
After this course, students should:
1. Understand basic concepts in formal language theory, grammars, automata theory, computability theory, and complexity theory.
2. Be able to relate real-world problems to languages, automata, computability, and complexity.
3. Be able to demonstrate an increased level of mathematical sophistication.
4. Understand and be able to apply mathematical and formal techniques for solving problems in computer science.
The weekly schedule is available in the SCHEDULE section of the class web page. It reflects our best estimate of the timing of the topics covered in this course. Any changes to this schedule will be announced in advance by the instructor, or via e-mail. Required reading for each class is also listed on the schedule.Slides presented in class will be available in PDF format in the CONTENT area of mycourses. This section will be updated after each class.
The instructor can be reached to discuss material from the course, assignments and homework during office hours, or by email. Normally, the instructor will respond to emails within 24 hours of being received.
Please note: the instructor will respond to emails about assigned homework up until 24 hours before it is due (i.e. received by Monday at 4pm), but not to emails regarding the homework received after that point.
Richard Zanibbi
Office Hours: Tues 10am-12pm, Thurs 2-4pm
Office: GOLISANO (70)-3551
rxzvcs@rit.edu
http://www.cs.rit.edu/~rlaz
Phone: 475-5023
We will be
using the JFLAP package for homework assignments. JFLAP is
freely available here.
All grades will be made available through myCourses.
Unless it is
specifically
stated otherwise, you may work on and submit your homework in groups
2.
If you choose to work as a group of 2, both of you should contribute
significantly to the solution for every question. You should only
submit one copy of the homework with both your names on it. Each
student in the pair must be able to explain every question on the
homework when asked. A student that has
worked
in a group up until the first exam and then receives a grade at least
20
points lower than their partner on that exam will no longer be
permitted
to work in a group. This student will be required to complete the
remaining homework assignments as an individual contributor. Your homework
assignments
are due at the start of class on Tuesdays (4pm), to be submitted in-class (on paper), or as a .pdf or .txt file
via mycourses. Late assignments
will not
be accepted (not
even 5 minutes late)!!! If you are unable to be on campus on the day an
assignment is due, you need to ensure that your assignment is submitted
in class or through
mycourses by the deadline. The lowest homework
grade will be dropped, unless you
are given a zero for cheating. There will be no
programming assignments, however, you will be asked to use the software
package, JFLAP, to build and test various state machines. JFLAP
is freely available for download
here. This course has been designed so that
you can complete all the work in one quarter. Thus incomplete grades
will be
given only in the most exceptional circumstances, and then only by
prior
arrangement with your lecture instructor. Your lecture instructor has
the
final say in this matter.
Course Web Site
Grading Scheme
This course consists of the
activities shown below, which are weighted as indicated to compute the
final grade:
Component
Weight
Homework Assignments (8) and Discrete Math Quiz
(Best 8 of 9)50%
Midterm Exams (2), Weeks 5 and 8
30%
Final Exam, Week 11
20%
Homework Assignments:
There are 8
homework assignments, essentially one each week. Each homework
assignment will be collected and graded. Homework assignments
and their due dates
will be available in the SCHEDULE section on the
course Web page. You
will have one week to complete
each assignment other than the first (which will be shorter).
Note on Grade Changes
Theory
Tutoring
Exams:
There will be two midterm
examinations (Thursday in Weeks 5 and 8) and a final examination (in Week 11).
The midterm examinations will last one hour each, and the final exam will be a two-hour exam. The content
covered on each exam will be announced during class. All exams
are
closed book and notes, but you may have one sheet of letter-sized paper
with your own hand-written
notes. There will be no make-up exams.
In addition, there will be a 40 minute quiz on Discrete Math during the
first week of class. This quiz will count as an additional
homework
assignment.
Policy on Academic
Dishonesty
For the record:
General Conduct
Student conduct will be
evaluated in accordance with the Policy on Academic Dishonesty and Code
of Conduct
for Computer Use found in RIT's Educational Policies and Procedures
Manual.
You should also have two related documents, the Code
of Conduct for the Use of Department of Computer Science Facilities
and the Policy
on the Use of Computer Games on Department of Computer Science
Facilities, which are refinements of the general Institute policies.
Policy on W and I Grades
RIT policy allows you to
withdraw from a course with a grade of W on or before the Friday of the
8th week in the quarter. After this date, your
instructor cannot give you a W, but must assign you a grade based on
your work.
Disclaimer
Every effort has been made to
provide accurate information in this document. We reserve the right,
however, to make
changes to any facet of the course should circumstances warrant it. Any
such
changes will be announced in both lecture and lab.
Last updated 3/4/11