Computer Science 142 and Mathematics 167
Theory of Computation
Syllabus, Fall 2001
Professor: Ran (``RON'') Libeskind-Hadas
Office: Olin 1245
Office Hours: To be determined
Phone: x18976
E-mail: hadas@cs.hmc.edu
Course Homepage: http://www.cs.hmc.edu/courses/2001/fall/cs142
Meeting Times: Monday, Wednesday, Friday, 10-10:50 AM
Meeting Place: Galileo Edwards
Graders: Rob Adams, Matt Brubeck, Kurt Dresner, Peter Henry, Chris Lundberg, Katie Ray
What Is This Course About?
This course addresses some of the fundamental mathematical ideas
underlying computer science. The ultimate goal of the course
is to address the question: "What are the fundamental capabilities
and limitations of a computer?"
We address this question by studying three related areas of
theoretical computer science:
automata theory, computability theory, and complexity theory.
Automata theory examines the question "what is a computer?" and
"what can it do?" We examine three fundamental mathematical models
of computation (finite automata, pushdown automata, and Turing
machines) and study their capabilities and limitations. We're
also able to show that many other possible models of computation
are in fact equivalent to one of our three fundamental models.
Computability theory is a natural extension of automata theory.
It examines the question "what is the most powerful model of
computation?" and "what can it do?" The answers turn out to be
very surprising!
Complexity theory addresses the question "how long does it take to
solve a particular problem?" (or more generally, "how much of my
favorite resource does it take to solve a particular problem?" where
the resource could be time, memory, etc.) We study several complexity
classes such as P, NP, and PSPACE among others
and develop some interesting results that relate these classes to one
another.
In addition to the theoretical component, we investigate applications
of this material to compilers, computer architecture,
and robotics.
Is This Course for You?
The prerequisites for this course are CS 60 and Math 55.
Off-campus students are strongly encouraged to have completed either Math 55 at Harvey Mudd or
Math 103 (Combinatorics) at Pomona prior to enrolling in this course.
The homeworks and exams in this course emphasize proofs. We use elementary set
theory (countability and uncountability arguments), induction,
discrete functions, and graph theory very frequently.
There will be a few assignments that require programming.
You may use your favorite high-level programming language
(which is defined formally to be an element of {C, C++, Java,
Pascal, SML}) for these assignments.
Text
Introduction to the Theory of Computation, by Michael Sipser.
First Edition. PWS Publishing Company.
Assignments and Grades
There will be an assignment every week except for the weeks
of the exams. Problem sets will be distributed on Wednesday and due the
following Wednesday at 5 PM in the box outside Ran's office door.
In addition, you
are entitled to two extensions until Friday at 5 PM that you may
use anytime during the semester. There is no need to request advance
permission to use the extensions.
No late submissions will be accepted after using these extensions.
There will be two exams during the term.
There will be a comprehensive final exam at the end
of the term.
Finally, there will be in-class worksheets given in most lectures. These will be
short exercises based on the material being covered in class. You will be given a few minutes to work
on these exercises in class and will turn in your solution at the end of the lecture.
These submissions will not be graded or returned. You will get full credit for a worksheet simply
by turning it in and showing that you made an effort to solve the given problems.
The point breakdown is as follows:
Problem Sets: 40 %
Exams: 25 %
Final Exam: 25 %
In-class Worksheets: 10 %
Collaboration Policy
Collaboration on homeworks is encouraged. This means that you may
discuss approaches to solving a problem with any classmate or member of the
course staff.
At the top of every problem set you should list the people with whom you
discussed any of the problems.
Copying any part of a solution from any source is strictly
disallowed. All students are expected to conduct themselves in
accordance with the Harvey Mudd Honor Code. If you have any questions
about what is appropriate or inappropriate collaboration, please talk
to Ran. No collaboration is allowed on the exams.