Computer Science 289:
Theory Computation

Spring 2011

Tue, Thu 8:30 - 9:55 am in Searles 126

Spring 2013 will be Mon/Wed 11:30 am - 12:25 pm (syllabus coming soon!!)



The objective of the course is to look at what can be computed and how. How does the design of a machine impact what can be computed? The language implemented on the machine? We will start with a very simple, restricted computational model and see what happens as we relax some of these restrictions. We will work our way up to Turing machines, which, in spite of their simplicity, are equivalent to the most powerful modern computer. At the end of the course you should have a strong theoretical understanding of what is possible with a computer.


ADMINISTRATIVE INFORMATION:
Instructor: Stephen Majercik, 222 Searles, 725-3106, smajerci@bowdoin.edu
Office Hours: Mon, 1:30-2:30 pm; Tues, 4:00-5:00 pm; or by appointment; or just stop by!
Teaching Assistant: Sean Wilner, Hours TBA, Location TBA, swilner@bowdoin.edu
Class E-mail: csci289@bowdoin.edu


TEXT (required):
E. Kinber and C. Smith, Theory of Computing: A Gentle Introduction, Prentice-Hall, 2001.
ERRATA!!!!
http://www.cs.umd.edu/~smith/TCGI.html


COURSE PREREQUISITES:
Mathematics 200


COURSE REQUIREMENTS:
Problem Sets 30%
2 Exams 35% each
Class Participation Tiebreaker
 

ASSIGNMENTS:
Experience has shown me how difficult it is for students to catch up once they get behind, so all assignment deadlines are hard deadlines. No extensions are possible unless you have an excuse from your Dean.


A FEW WORDS ABOUT PROOFS:
Many of your assignments will call for proofs. When a proof is more than one or two lines long, it's a good idea to begin your writeup with a one-paragraph description of how your proof is supposed to work. This saves the grader time when the proof differs from what he/she had in mind. Furthermore, if your described approach is correct, but your proof is incorrect in one or two minor details, the grader may give you partial credit. You cannot expect any partial credit if your approach to the problem is hopeless or if your writeup is completely incomprehensible. If your summary is clear enough, the grader may even choose not to check the details. (adapted from Floyd, R.W. and Beigel, R. (1994) The Language of Machines, Computer Science Press, page 27).


EXAMS:
There are two take-home exams, each covering about half the material in the course: a midterm exam shortly before Spring Break and a non-cumulative end-of-term exam given during the final exam period. If you cannot be present at an exam, you will need an excuse from your Dean.


ACADEMIC HONESTY:
You are expected to follow Bowdoin's Computer Use Policy and its Academic Honor Code. You may work together on any assigned problems, but you must write up and submit your own answers. It is not permitted for a student copy another student's write-up or to let another student copy their write-up. No collaboration whatsoever is permitted on exams. Once you have finished the course, sharing your work with students taking the course is also not permitted.

Any violation of this policy is grounds for me to initiate an action that would come before the Judicial Board. If you have any questions about this policy, PLEASE do not hesitate to ask me. This is a zero-tolerance policy.

























COURSE OUTLINE (subject to change):
Dates Topic Readings
Jan 25, 27 Introduction to Theory Ch 1
Feb 1, 3 Finite Automata Ch 2
Feb 8, 10 Finite Automata Ch 2
Feb 15, 17 Context-Free Languages Ch 3
Feb 22, 24 Context-Free Languages Ch 3
Mar 1, 3 Context-Free Languages Ch 3
Mar 8 Review for Exam 1 Chs 1-3
Mar 8-11 Take-Home Exam 1 Chs 1-3 
Mar 29, 31 Turing Machines Ch 4
Apr 5, 7 Turing Machines Ch 4
Apr 12, 14 Undecidability Ch 5
Apr 19, 21 Undecidability Ch 5
Apr 26, 28 Complexity (NP-Completeness) Ch 6
May 3, 5 Complexity (NP-Completeness) Ch 6
May 10 Review for Exam 2 Chs 4-6
Exam Period Take-Home Exam 2 Chs 4-6