Grading Rubric guide:
Illustrate result = 2 points
"Illustration" problems are those that show understanding of a result or technique from the reading. They are frequently identified as "Exercises" in Sipser.
2 = solution is a correct illustration of result
1 = repairable systematic application of result to be illustrated
0 = does not show understanding of result to be illustrated
Construction = 5 points
The "construction" portion of a problem involves defining the mathematical structure (machine, grammar, language) that is intended to have the property of interest. Frequently constructions will be supported by proofs of specific properties or at least justifications that explain the construction.
5 = clearly presented correct construction
4 = minor repair required
3 = significant repair required
2 = shows understanding of the problem
Proof = 5 points (per major claim)
A proof is a formal mathematical argument for a specfic claim.
5 = clear
and correct
4 = minor repair
3 = outline is logically sound and similar to correct result
2 = fundamental error in logical structure of argument, but well enough presented to diagnose error
Justification = 3 points
A justification is an explanation of a construction that identifies key concepts necessary to understand its correctness. Justifications may explain the semantic significance of states, associate "sublanguages" with variables in a grammar, or call out other properties that
will help the grader identify the correctness of a construction.
3 = clear and correct; articulates key properties
2 = minor repair
Note: Sometimes I will expect a more detailed argument than Sipser models in the text. I have tried to use the rubric to indicate when I expect proofs or systematic justifications of the correctness of constructions.
Assignment 0, Please submit at Lecture 2.
Assignment 0 is intended to be somewhat selfdiagnostic. If these concepts are unfamiliar then you may be unprepared for this course.
All problems are from Sipser:
 Sipser 0.1 d,e,f
 0.2 d,e,f
 0.3 f
 0.7
(note: part c is subtle)
 0.8
Assignment 1, due at Lecture 3
Sipser (numbers in [] are for first edition). Applicable rubric in angle brackets (<>).
 1.3 [1.3] (Draw DFA)
<Illustrate>
 1.4g [new] (Construct intersection)
<Illustrate>
 1.5d [new] (Complement)
<Illustrate>
 1.31 [1.24] (Closed under reverse)
<Construction> <Proof>
 1.32 [1.25] (Correct sums)
<Construction> <Justification>
I developed a tutorial for the Haskell tools based on this assignment.
Assignment 2, due Lecture 5
Sipser:
 1.16 (b) [1.12(b) in 1st edition]
<Illustrate>
 1.21(a) [1.16(a)]
<Illustrate>
 1.46(a) [not in 1st edition]
<Proof>
 1.51 [1.34]
Indistinguishable by L is an equivalence relation.
<Proof> <Proof> <Proof>
Assignment 3, due Lecture 7
Sipser 2nd edition [first edition]:
 1.52 [1.35] MyhillNerode theorem. Please answer in your own words; the 2nd edition contains a sample solution. a.<Proof> b. <Construction><Proof> c.<Proof>
 2.2 [2.2]
<Illustrate> <Illustrate>
 2.18 [2.17]
<Construction> <Proof> <Illustrate>
 2.35 [2.20]
<Proof>
Assignment 4, due Lecture 9
Sipser 2nd edition [first edition]:
 2.30 a,d [2.18 a,d]
<Proof> <Proof>
 2.22 [2.26] Hint: Focus on how two strings can be different. Two strings can be different if they are different lengths, or if there is some corresponding position where they differ. Your solution only needs to find a single difference. I have seen understandable solutions that use either a PDA or a grammar to define the language. As a warm up problem it may be useful to find a description for w#x#y#z such that w = y.
<Construction>
<Justification>
 3.6 [3.6]
<Illustrate>
Assignment 5, due Lecture 13
Sipser 2nd edition
 3.18 [3.16]
<Construction> <Proof> <Construction> <Proof>
 4.6 [4.7] (diagonalization, {0,1}^\omega is not countable)
<Illustrate>
 4.17 [4.17] (C is Turingrecognizable if there is a decidable language D such that C = {x \exists y . <x,y> \in D}) <Construction> <Proof> <Construction> <Proof>
Assignment 6, due Lecture 15 (may be supplemented)
Sipser 2nd edition [1st edition]
 4.18 [4.18] (any two disjoint coTuringrecognizable languages are separated by a decidable language)
<Construction> <Proof>
 5.28 [5.22] (Note: sample solution is given in 2nd edition; however collaboration policy applies!)
 5.30 [not in 1st edition]
Assignment 7, due Lecture 17
New assignment 7: primrec.pdf MY.hs NaturalPR.hs
pdf file [assignment may be revised for this class offering]
Assignment 8, due Lecture 19
Here is the updated pdf file.
Tim Sheard's calculator is http://hackage.haskell.org/package/LambdaCalculator
The Haskell Platform is http://hackage.haskell.org/platform/
(note: A sample solution for an earlier version of this assignment is available here; however the collaboration policy applies!)
Assignment 9, Do not hand in.
Supplemental assignment pdf file.
