Course Description: The objectives of the course are a study of the theory of computing. Topics include finite automata, context free grammars and parsing, regular languages, pushdown automata, Turing machines, decidability, computablity, and complexity.
What does all this mean? These should become
familiar terms as the course progresses. Overall, the course is fairly
mathematical and relies upon logic and discrete math. Some students find
the abstract concepts difficult to grasp, particularly the proofs, so be
prepared to put in some extra reading if this is the case! In general
terms, at first we will study abstract computing devices starting from very
simple devices (deterministic finite automata) and moving to complex abstract
computing devices (turing machines). Along the way we'll see other
computing devices and ways to describe what can be computed through grammars and
languages. The second half of the course deals with the basic questions of
computability and tractability. Through the concept of a turing machine we
will describe algorithms and the complexity bounds of what can be
computed. Some problems we will see are undecidable (they can't be solved
by any computer!) while others may be intractable (they can be solved by a
computer, but take a ridiculously long time to do so).
Homework Assignments: Due by the beginning of class unless otherwise noted. You may also submit homework via email. Approximately six homework assignments will be given, some of which may include programming in the language of your choice. Late homeworks will be penalized 10% per day late up until the date solutions are posted. Unless otherwise indicated, programming assignments and written assignments must represent your own work. It is permissible to discuss the assignments with other students, but do not discuss the solution.
Questions: If you have any questions, feel free to come in to my office. In general, I have an open door policy -- if I am available in my office, you are welcome to come by. An even better way to reach me is through email. I check my email frequently and you should receive a response quickly. Email is preferred over telephone and you will probably receive a faster response since I don't check voicemail very frequently. You can also contact me online via ICQ, AIM, or MSN Messenger (see contact info on the home page). I'm often up late and will be glad to answer questions if I'm available!
Grading: Letter grade. There will be three exams, two midterms and a final exam. The midterms will cover several chapters of the book. The final exam may include any material that was covered in the course. Unless prior arrangements are made no make-up exams will be given. Since you will be tested upon your critical thinking and problem solving skills and not your ability to memorize formula, the exams will be open book (any written material and a calculator is acceptable to bring to the test). Cheating on assignments and exams is not acceptable. Written homework and programming projects are individual assignments and it is expected that each student does his own work.
Midterm 2 18%
Homeworks 34% (All homeworks worth an equal amount)
The grade scale is shown in the table below. The grading curve may be lowered if necessary but it will not be raised. This means that if you received an 89% then you will at least get a B+, but may receive a higher grade based on the curve. (Final grades don't include a + or -).
An incomplete grade will only be given for a valid excuse (e.g. medical, death in the family). An incomplete grade does not let you take the class over again, your final grade will be assigned based on work submitted in class and work that remains to be submitted.
Cheating: Students are expected to uphold the UAA standard of conduct relating to academic dishonesty outlined in the UAA catalog and student handbook. Cheating is not tolerated and constitutes grounds for dismissal. For this class, it is permissible and encouraged to assist classmates in general discussions of how to attack the homework problems. It is not permissible to copy another's work (or portions of it) and represent it as your own.