- 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.

bldg. 70, room 3645

Email: my_initials at cs.rit.edu (please replace my_initials with ib)

- Tuesday 6-7pm (please come at 6pm or let me know that you are coming, otherwise I might leave),
- Wednesday 10-12pm and 1-2pm,
- and, if none of the above times works for you, by appointment.

- 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

To refresh your memory on discrete math, read Chapter 0.

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
**Friday, 4pm** sharp.
You have the following submission options:

- Upload it to mycourses, as
**txt**or**pdf-file**(preferred). No other formats will be accepted. - Give it to me in class or during office hours.
- Bring it to the mentoring center on Friday between 3:45pm and 4pm and give it to the
**theory tutor**.

I guarantee answering homework questions sent before 10:00pm on Thursday. I will not answer any questions sent after 10am on Friday. (This means that if you send a question late on Thursday or on Friday before 10am, I'll try to answer it but I cannot guarantee that I will always have the option to reply to your mail.)

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.

- 50% Homeworks and the best of
- 25% Midterm and 25% Final Exam or
- 20% Midterm and 30% Final Exam

> 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 midterm and final. In addition, if the average of your midterm and final is below 55%, you fail the course.

All grades will be posted on myCourses.

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.