Foundations of Computing Theory, 4005-700-01, 20071
Course Description
This course provides an introduction to the theory of computation,
including formal languages, grammars, automata theory,
computability, and complexity.
Course Outcomes
-
Students should demonstrate an understanding of basic concepts in formal
language theory, grammars, automata theory, computability theory,
and complexity theory.
-
Students should be able to relate practical problems to languages,
automata, computability, and complexity.
-
Students should demonstrate an increased level of mathematical sophistication.
-
Students should demonstrate an understanding of and be able to apply
mathematical and formal techniques for solving problems in computer science.
Course Web Page
http://www.cs.rit.edu/~ib/Classes/CS700_01_Fall07/index.html
Instructor
Ivona Bezakova
bldg. 70, room 3645
Email: my_initials at cs.rit.edu (please replace my_initials with ib)
Office hours:
- Monday 2:30-4:30pm;
- Tuesday 4-6pm;
- and by appointment.
Asking questions via email seems to work well for many people.
Lectures
Tuesday/Thursday, 2:00-3:50pm, 70-3435.
Required Book
John C. Martin,
Introduction to Languages and the Theory of Computation,
third edition, McGraw-Hill, 2002.
Other Materials
Slides and information about reading and homework assignments,
quizzes, exams, etc. will be linked from the course web page.
You are welcome to use also
Professor Hemaspaandra's slides.
Prerequisites
- Algorithms and data structures at the level of
an introductory programming sequence.
- Discrete Mathematics. You should have taken a course
in discrete mathematics covering
- fundamentals of logic
- sets
- relations
- equivalence relations
- functions
- simple combinatorics
You should be competent in constructing proofs involving sets,
relations, and functions,
using various techniques such as mathematical induction.
To refresh your memory on discrete math,
read (and do some of the exercises of)
Sections 1.1, 1.2, 1.3, 1.4, 2.1,
2.2, 2.3 of the course book.
If you have taken a rigorous course in theory of computation,
including formal languages, grammars, automata theory,
computability, and complexity, it may be possible to replace
4005-700 with the more advanced course 4005-702 (Computational Complexity).
If you are interested in doing this, please contact
Dr. Hans-Peter Bischof (hpb at cs.rit.edu).
If you are a BS/MS student, and you have already taken
4003-380, you will need to replace 4005-700 with 4005-702.
The Work
There are eight homework assignments, one per week
except for the weeks 1 and 6.
Homeworks are due on Wednesday
at 6pm, and are posted at least 6 days before they are due.
The actual assignments will be available on
the homework, quizzes, reading, and slides
page.
Unless it is specifically stated otherwise,
you may work on and submit your homework in groups of 1 or 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 submit only one copy of the homework with both
your names on it.
You are not allowed to discuss the homework
with anyone except your homework partner and me.
You are also not allowed to look up the answers to your homework,
to look at other people's homework, to eavesdrop on other
people's homework discussions, etc.
You should submit only work that is completely your own and
you should be able to explain all of your homework to me.
Your homework submissions must be submitted by
Wednesday, 6pm sharp.
You have the following submission options:
- Upload it to mycourses.
- Give it to me during office hours.
- Bring it to the mentoring center and give it to the theory
tutor.
- Fax it to 585-475-7100.
I will not accept late assignments for any reason.
I will drop the two lowest homework grades. However, a zero
for cheating will not be dropped.
I will stop answering homework questions at 10am the day it is due.
(This means that you can send an e-mail with a homework question by
Wednesday 10am and I will answer it as soon as possible, I will do my best to
send my answer before 1pm.)
Quizzes
There are eight quizzes, one per week
except for weeks 2 and 6. The discrete math quiz will take place on Thursday of week 1,
all other quizzes will be on Tuesdays at the start of class.
Information about the quizzes will be available on
the homework, quizzes, reading, and slides
page.
Quizzes can not be made up for any reason.
However, I will drop the lowest two quiz grades.
Midterm Exam
The midterm exam is scheduled
for Thursday, October 11, 2:00-3:50pm, in 70-3435.
The midterm will cover the material from Chapters 1-5.
The midterm is closed book and notes but you may
bring one sheet of letter-sized paper with your own hand-written notes.
Final Exam
The semi-cumulative final exam
is scheduled for
Wednesday, November 14, 6:00-8:00pm, room 70-1400.
The final is closed book and notes but you may
bring one sheet of letter-sized paper with your own hand-written notes.
Exams can not be made up except for real emergencies in which
case proper documentation (like a doctor's note) will be required.
If at all possible, you should contact me prior to the exam. Oversleeping,
cars that don't start etc. do not constitute a valid excuse.
Evaluation
- 25% Homeworks
- 25% Quizzes and the best of
- 25% Midterm and 25% Final Exam or
- 20% Midterm and 30% Final Exam
Numerical grades will be converted to letter grades according to the following
scale:
> 88%: A; 77%-88%: B; 66%-77%: C; 55%-66%: D; < 55%: F.
However, your final grade will never be more than one letter grade
higher than the average of your quizzes, midterm, and final.
In addition, if the average of your quizzes, midterm, and final
is below 55%, you fail the course.
Tutoring
In addition to all of the usual support services RIT and the CS department
offer, the CS theory faculty are offering their own tutoring
service, featuring very qualified CS students. The tutoring takes place
in the CS mentoring center (70-3660). For hours,
see the
theory tutoring page.
Note: In the first week the tutoring will take place in the CS theory lab
(70-3672).
One rule about tutors: You are not allowed to discuss open homework problems
with them (you can however discuss them with me).
Any (attempted) discussion with
graders or tutors regarding current or future homework assignments
will be considered cheating.
Disputing Your Grade
If you feel that an error was made in grading your homework, quiz, or exam,
you have one week from the moment the graded work was handed back to dispute
your grade. All grading issues should be taken up with me;
do not discuss grading issues with graders or tutors!
All grades will be posted on myCourses.
Academic Dishonesty
The
DCS Policy on Academic Dishonesty will be enforced.
You should only submit work that is completely your own.
Failure to do so counts as academic dishonesty and so does
being the source of such work. Submitting work that is in large part not
completely your own work is a flagrant violation of basic ethical behavior
and will minimally be punished with failing the course.