Honors Introduction to Computer Science Theory, 4003-389-01, Winter 2008-09
This course provides a challenging introduction to the theory of computation with an emphasis on problem solving. Topics include formal languages, grammars, automata theory, computability, and complexity.
Students will explain basic concepts in formal language theory, grammars, automata theory, computability theory, and complexity theory.
Students will relate practical problems to languages, automata, computability, and complexity.
Students will demonstrate an increased level of mathematical sophistication, including applying proof techniques to prove correctness of their solutions.
Students will describe and apply mathematical and formal techniques for solving problems in computer science.
Course Web Page
bldg. 70, room 3645
Email: my_initials at cs.rit.edu (please replace my_initials with ib)
Asking questions via email seems to work well for many people.
- Monday 2-3pm, 6-7pm (please come at 6pm or let me know that you are
coming, otherwise I might leave),
- Wednesday 2:30-3:30pm, 6-7pm (please come at 6pm or let me know that
you are coming, otherwise I might leave) - note the change in the
afternoon office hours, I had to move them by 30 minutes due to
a scheduling conflict,
- and by appointment.
Monday/Wednesday, 4:00-5:50pm, classroom 12-1135.
Introduction to the Theory of Computation,
(Second Edition), Thomson Course Technology, 431 pages, 2005, ISBN:0534950973.
Slides and information about reading and homework assignments,
1016-366 (Discrete Mathematics II) or 1055-265 (Honors Discrete Mathematics) or permission of the instructor
Algorithms and data structures at the level of
an introductory programming sequence.
- Regular languages and finite automata:
Strings and languages, Regular languages and regular expressions, Finite automata (DFA, NFA, NFA-Lambda),
Languages accepted by finite automata, Transforming NFA-lambda to NFA, NFA to FA, Kleene's theorem, Pumping lemma, Minimal DFAs, Closure of regular languages under union, concat, intersection, complementation, Kleene star, Decision problems for regular languages and algorithms for these problems
- Context-free languages:
Context-free grammars, Derivations, acceptance,
Giving a grammar for a language / describing language generated by a grammar,
Closure properties, Non-closure,
Left-most derivations, parse/derivation trees, Ambiguity,
CFLs and PDAs, PDAs are equivalent to CFGs,
DPDAs are more powerful than FAs, PDAs are more powerful than DPDAs, Normal forms,
CFL pumping lemma, CFL intersected with regular is CFL, decision problems for CFLs and their algorithms
- Turing machines:
TM definition, Universal Turing machine, Languages accepted by TMs/ recognized by TMs,
Recursive and recursively enumerable languages, RE intersect coRE = REC, Church-Turing thesis,
Turing machine equivalences, Chomsky hierarchy
Decision problems, Halting problem, Other undecidable problems
The class P / problems in P,
The class NP / problems in NP / relation between P, NP, coNP,
NP-completeness and reductions,
SAT is NP-complete, Other NP-complete problems, Beyond NP
There are eight homework assignments,
one per week
except for the first week and the week of the midterm.
Homeworks are due on Wednesday
at 4pm, and are posted at least 6 days before they are due.
The actual assignments will be available on
the homeworks, reading, and slides
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. All authors have to be able to explain all solutions.
Whether you submit on your own or with a partner, discussing homework
with your fellow students is encouraged.
However, after such discussions, all notes must be discarded, blackboards
erased, and every group must write up their solutions in private without
further consultations with your classmates or any written material
other than your class notes, materials handed out in class, the textbook
or this webpage. For every problem discussed with other students,
state their names and briefly sketch the extent of your discussions
(e.g. "solved together", or "clarified problem statement").
You are not allowed to look up the answers to your homeworks.
Your homework submissions must be submitted by
Wednesday, 4pm sharp.
You have the following submission options:
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.
- Bring it to class, I will collect the homeworks at the start of the class.
- Send it to me by e-mail, use the pdf-format. The e-mail must be sent before the beginning of the class.
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.)
The midterm exam will take place
on January 21st, 2009.
The midterm exam will be held in class, 4-5:50pm, in room 12-1135,
and it will cover material from the first five weeks (specific sections will be posted on the midterm website later).
The midterm is closed book and notes but you may
bring one sheet of letter-sized paper with your own hand-written notes.
The final exam is semi-cumulative, meaning that it will focus on
material from the second half of the quarter but it will also test high-level knowledge of the material
from the first five weeks.
It 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.
Numerical grades will be converted to letter grades according to the following
- 50% Homeworks and the best of
- 25% Midterm and 25% Final Exam or
- 20% Midterm and 30% Final Exam
>90%: A; 80%-89%: B; 70%-79%: C; 60%-69%: D; <60%: F.
However, your final grade will never be more than one letter grade
higher than the average of your midterm and final.
In addition, if the average of your midterm and final
is below 60%, you fail the course.
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,
theory tutoring page.
Disputing Your Grade
If you feel that an error was made in grading your homework 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.
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.