announcements :: homework :: readings

This course introduces formal models of computation including finite automata, regular languages, context-free grammars, and Turing machines. These models provide a mathematical basis for the study of computability - the study of what problems can be solved and what problems cannot be solved. Applications to compiler design and program verification will also be covered.We all have problems. Some problems are easier to solve than others; some are unsolvable. But what is a problem? And what is a solution? In this course, we will develop models of computation that make rigorous the idea of problem and solution. In other words, we will provide a language to describe computation so we can reason about it formally. The models we will develop are easy to describe (think flow charts for toasters and elevators), yet computationally very powerful (we can, for example, use them to find the minimal mileage route for the Williamstown snowplow fleet). The rewarding part is understanding the limitations and power of each model.

Ten homework assignments each worth 5% of your grade. I'll drop the lowest score expecting this covers all extenuating circumstances such as illness and natural disasters. Six pop quizzes (lowest score dropped), each contributing 1% to your grade; a take-home midterm worth 25% of your grade and a 24-hour, cumulative final worth another 25% of your grade.

Some points of clarification:- The teaching assistant will give provisional grades on your assignments based on sample solutions I provide. In addition, I'll examine every problem set so that I know what topics you've individually mastered. On many problem sets, I'll exclusively correct one of the problems, paying particular attention to your style and prose. I will also adjust the provisional grades when appropriate.
- The homework counts significantly toward your grade. I expect you
will discuss the problems with members of the class, but I expect you
will not discuss the solutions, nor will you write up solutions
together.
**Insightful discussion with others must be cited in your homework solution**. You will not lose points for citations, nor will you fall from my good graces; quite the contrary, citation gives credit where credit is due. However, failure to cite properly is considered an honor code violation. Your understanding of the problems should be sufficient enough to recount the key arguments of the solution by yourself. - Late homework will not be accepted.
- Homework should be written clearly and concisely. Rewrite your proofs if they do not flow well. If your handwriting is messy, consider using LaTeX. If your handwriting is not messy, still consider using LaTeX.
- Each homework question will be graded on a 5 point scale. Here's
the breakdown:
- 5: The solution is clear and correct. This solution would easily find a home in a research article.
- 4: The solution contains a few mistakes, but they are mostly arithmetic or of little significance to the overall argument.
- 3: The solution hits on the main points, but has at least one logical gap.
- 2: The solution contains several logical mistakes, but parts of it are salvageable.
- 1: The solution is just plain wrong.
- 0: No attempt is made at solving the problem.

- The midterm will be take home. You may only use your course notes and course text.
- The midterm will be very similar to a problem set.
- It will be assigned Friday, 12 October 2007 at 09.50 and due at 09.00 on Monday, 15 October 2007.
- No collaboration is allowed.
- I will be available on Saturday and Sunday, 13 and 14 October 2007, for questions.

- 11.29. 05 November 2007. I wrote up some notes on busy beavers to complement the homework now due on Friday this week.
- 10.00. 14 September 2007. The homework often refers to
*regular*languages. Regular languages are exactly those languages accepted by DFAs. For example, the language of all binary strings containing an even number of 1s is regular because there exists a DFA which recognizes it. This is also the case of the empty language, the language consisting of only the empty string, and the language containing all strings. If you want to show that a language A is regular then it is sufficient to describe a DFA D such that L(D)=A. - 15.10. 09 September 2007. Several people have asked about course readings. Presently, there are no assigned readings. New readings will appear in the readings section of course website.
- 15.08. 08 September 2007. In case you are interested in fancy headers for LaTeX -- the kind I use on the homework -- check out the fancyhdr package. Here is my header.tex file in case you want an example of what to include.

- Lecture 1: No assigned readings. Skim chapter 0 if you like.
- Lecture 2: Handout from class. Also available here in full form.
- Lecture 3: Read about
*finding proofs*on pages 17-25 of the text. - Lecture 4: Pages 31-43 of the text.
- Lecture 5: Pages 44-47 of the text.
- Lecture 6: Pages 47-63 of the text.
- Lecture 7: No reading.
- Lecture 8: Pages 63-76 of the text.
- Lecture 9: Pages 77-82 of the text.
- Lecture 10: No reading.
- Lecture 11: No reading.
- Lecture 12: No reading.
- Lecture 13: Pages 99-123 of the text.
- Lecture 14: No reading.
- Lecture 15: Pages 123-127.
- Lecture 16: Pages 137-148.
- Lecture 17: No reading.
- Lecture 18: Pages 148-159.
- Lecture 19: Pages 165-173.
- Lecture 20: Handout on RAMS.
- Lecture 21: No reading.
- Lecture 22: Pages 173-179.
- Lecture 23: Pages 179-182.
- Lecture 24: Pages 187-198.
- Lecture 25: Pages 206-210.
- Lecture 26: Pages 199-205.
- Lecture 27: Read Exercise 5.28 and its solution on pages 213 and 215 of the text.
- Lecture 28. Pages 217-224.
- Lecture 29. No reading.
- Lecture 30. Pages 247-270.

- Homework 0 [TeX] :: Assigned: 09.00 EDT 07 September 2007 :: Due: 23.59 EDT 07 September 2007
- Homework 1 [TeX] :: Assigned: 09.00 EDT 07 September 2007 :: Due: 09.00 EDT 19 September 2007
- Homework 2 [TeX] :: Assigned: 09.00 EDT 19 September 2007 :: Due: 09.00 EDT 26 September 2007
- Homework 3 [TeX] :: Assigned: 09.00 EDT 26 September 2007 :: Due: 09.00 EDT 03 October 2007
- Homework 4 [TeX] :: Assigned: 09.00 EDT 03 October 2007 :: Due: 09.00 EDT 10 October 2007
- Homework 5 [TeX] :: Assigned: 09.00 EDT 17 October 2007 :: Due: 09.00 EDT 24 October 2007 :: This is the LaTeX assignment. You must typeset your solutions in LaTeX
- Homework 6 [TeX] :: Assigned: 11.00 EDT 24 October 2007 :: Due: 09.00 EDT 31 October 2007
- Homework 7 [TeX] :: Assigned: 12.00 EDT 31 October 2007 :: Due: 09.00 EST 09 November 2007 :: busy-beaver notes
- Homework 8 [TeX] :: Assigned: 09.00 EST 09 November 2007 :: Due: 09.00 EST 14 November 2007
- Homework 9 [TeX] :: Assigned: 09.00 EST 14 November 2007 :: Due: 09.00 EST 28 November 2007
- Homework 10 [TeX] :: Assigned: 09.00 EST 28 November 2007 :: Due: 09.00 EST 05 December 2007

- Mathematical Sophistication
- Lecture 01 :: 07 September 2007 :: A review of mathematical objects including sets, sequences, and graphs.
- Lecture 02 :: 10 September 2007 :: Further review of mathematical objects including functions and relations.
- Lecture 03 :: 12 September 2007 :: Some discussion of proof techniques such as contradiction and induction. Formalizing problem and solution.
- Regular Languages
- Lecture 04 :: 14 September 2007 :: An introduction to regular languages and deterministic finite automata (DFAs).
- Lecture 05 :: 17 September 2007 :: Proving languages are regular.
- Lecture 06 :: 19 September 2007 :: An introduction to non-deterministic finite automata (NFAs).
- Lecture 07 :: 21 September 2007 :: Equivalence of DFAs and NFAs. Closure properties of regular languages.
- Lecture 08 :: 24 September 2007 :: Regular expressions and their equivalence with finite automata.
- Non-regular Languages
- Lecture 09 :: 26 September 2007 :: Non-regular languages and the pumping lemma.
- Lecture 10 :: 28 September 2007 :: Proving non-regularity with the pumping lemma.
- Lecture 11 :: 01 October 2007 :: The Socratic Method Lecture: State minimization and the MyHill-Nerode theorem; Exactly characterizing the regular languages.
- Lecture 12 :: 03 October 2007 :: Proving non-regularity with the MyHill-Nerode theorem.
- Context-Free Languages
- No Lecture :: 05 October 2007 :: Mountain Day
- No Lecture :: 08 October 2007 :: Reading period
- Lecture 13 :: 10 October 2007 :: Non-Deterministic Push Down Automata and Context-Free Grammars
- Lecture 14 :: 12 October 2007 :: Equivalence of CFGs and NPDAs. Also - Overzicht! (midterm handed out at end of class) :: Midsemester Survey
- Lecture 15 :: 15 October 2007 :: Some classic context-free languages
- Turing Machines and other Models of Computation
- Lecture 16 :: 17 October 2007 :: The Church-Turing Thesis.
- Lecture 17 :: 19 October 2007 :: Models of Computation.
- No Lecture :: 22 October 2007 :: Away at Foundations of Computer Science (FOCS 2007)
- Lecture 18 :: 24 October 2007 :: Decidable and Recognizable sets. Examples. Equivalent models of computation.
- Computability and Recognizability
- Lecture 19 :: 26 October 2007 :: More decidability.
- Lecture 20 :: 29 October 2007 :: Algorithms and psuedocode.
- Lecture 21 :: 31 October 2007 :: RAMs.
- Lecture 22 :: 02 November 2007 :: Undecidable sets. Diagonalization.
- Lecture 23 :: 05 November 2007 :: More undecidability. co-RE.
- Lecture 24 :: 07 November 2007 :: Reductions.
- Lecture 25 :: 09 November 2007 :: Neither re nor co-RE sets.
- Lecture 26 :: 12 November 2007 :: The Post Correspondence Problem
- Lecture 27 :: 14 November 2007 :: Rice's Theorem
- Lecture 28 :: 16 November 2007 :: The Recursion Theorem
- Lecture 29 :: 19 November 2007 :: The philosophy of mind lecture :: readings [Williams College Access Only]
- No Lecture :: 21 November 2007 :: Thanksgiving break
- No Lecture :: 23 November 2007 :: Thanksgiving break
- Complexity Theory
- Lecture 30 :: 26 November 2007 :: The complexity classes P and NP
- Lecture 31 :: 28 November 2007 :: NP-Completeness and Reductions
- Lecture 32 :: 30 November 2007 :: The Cook-Levin Theorem.
- Lecture 33 :: 03 December 2007 :: Space Complexity and Savitch's Theorem
- Lecture 34 :: 05 December 2007 :: Open Topic
- Lecture 35 :: 07 December 2007 :: Overzicht!

- Computer Science Cheat Sheet [pdf]
- Complexity Zoo
- Theoretical Computer Science Blogs

- Computational Complexity :: Lance Fortnow and Bill Gasarch
- WebDiarios de Motocicleta :: Mihai Pătraşcu
- My Biased Coin :: Michael Mitzenmacher
- Andy's Research :: Andy Drucker
- In Theory :: Luca Trevisan
- The Geomblog :: Suresh Venkatasubramanian
- 0xDE :: David Eppstein