This course has lectures twice a week. A week or so into the term, we will start running optional "headbanging" sessions. You also need to know about the textbook, how to get copies of announcements, handouts, etc.
You are expected to attend lectures. If you cannot be at lecture, you must arrange to pick up any handouts or returned homeworks you may have missed, e.g. by coming to office hours.
We plan to take attendance at lectures. Please check off your name on the sheets available near the entrance doors. Attendance will not affect your final grade. We want this information to help us advise students who are having problems and uncover patterns about what affects student performance.
Some handouts may be hardcopy and some virtual. Virtual handouts will available on the lectures web page. Spare copies of hardcopy handouts will be put on the wall outside Margaret's office and will (perhaps with a small delay) be scanned and posted on the lectures page.
Announcements, homework hints, etc will be posted on the class newsgroup class.cs273 . Here are instructions for accessing it. You must read the newsgroup regularly (at least once a day). Only particularly important announcements will be duplicated on the course home page. You are encouraged to use the newsgroup to initiate and participate in discussion related to the class. However, students should not post solutions or hints to homework problems.
The official course text is Introduction to the Theory of Computation Michel Sipser 2nd Ed., PWS Publishing Company, 2005. Check out its errata page, which contains a few substantive (as opposed to stylistic) errors.
There are only modest differences between the first and second editions. If you are on a tight budget, a used copy of the first edition should work ok.
Readings from the textbook will be posted on the lectures web page.
Other books you may find useful are:
These texts are on reserve in Grainger Library.
This term, we will be experimenting with using the JFLAP software package which allows you to experiement with finite automata. More details will be forthcoming.
Using JFLAP to help solve homework problems or check your solutions is
not cheating, unless we explicitly tell you otherwise. However, you
should make sure you also end up learning how to work these problems by
hand, because you'll need to be able to do this on quizzes and exams.
A typical session will involve small
groups solving homework-style problems (some hard with hints, some
easier without) under the helpful supervision of TAs and other course
helpers to be named later. The theory is that a massive group
head-banging in a friendly atmosphere will prevent (or at least
minimize) prolonged individual head-banging and consequent
implosion/explosion during the regular written homework
assignments. Participating in HBS will contribute a small amount to
your grade, see the section. More importantly,
it will help you do well on the homeworks and exams.
Times and places for headbanging sessions will be announced soon.
If your schedule prevents you from attending any of the head-banging
sessions, you may make individual arrangements with the TAs to work
on the HBS problems and receive bonus credits similar to those for
attending HBS sessions.
Head Banging Sessions
Head banging sessions are optional,
but strongly encouraged, especially if you are finding the material
challenging.