Professor:
Simon D. Levy Lecture: MWF 1:25  2:20 Parmly 404 Office: Parmly 407B Office Phone: 4588419 Email: simon.d.levy@gmail.com Office Hours: Daily 2:304:30 and by appointment 
This course deals with the mathematical theory of computing. This involves an increasingly powerful series of abstract models of computing "machines". Working hand in hand with these models is an increasingly powerful series of formal languages. The connection between the models and their corresponding languages is investigated. A widely accepted notion of what it means to say that a problem or function is computable is developed and the limitations of computing are explored. Also, an idea of "practical computability" as opposed to theoretical computability is studied. While the course is theoretical by nature, it is important and profitable to note that many techniques that can be used in everyday computer science are covered along the way. An attempt will be made to emphasize applications to areas ranging from hardware design to compiler construction.
At many schools, the theory course is the one that students hate and have the most difficulty with, because it involves a lot of math. This is extremely unfortunate, because the material is genuinely interesting and connects directly with nearly everything else you have done or will do as a computer scientist. I am far more interested in making sure that you understand the material than I am in putting you through a "boot camp" where you sink or swim based on your mathematical background or ability to solve tricky problems. What this means is that you can do well in this class if you do the reading, attend the lectures, start the assignments early, and participate fully. As a nontheoretician, I sometimes find that students who are doing those things will correct me when I make a mistake in class: in other words, this class works best when we all learn together.
The grading scale will be 93100 A; 9092 A; 8789 B+; 8386 B; 8082 B; 7779 C+; 7376 C; 7072 C; 6769 D+; 6366 D; 6062 D; below 60 F.
All exams will be done without books or notes and without assistance from other people. You may NOT work with another person on the homework assignments. Start each assgnment well before it is due so that if you have trouble with it, you can get help from me during office hours.
Perhaps the most important aspect of the course is the homework assignments you do. Note that this counts for a substantial part of your course grade. Homeworks will be due in your Sakai dropbox folder (as a PDF email attachment) on 11:59 PM of the due date. No late work, handwritten work, or Word/PowerPoint documents will be accepted, and you will lose 10% immediately if your name does not appear on the document when it is printed out. Serious problems (health / family / personal emergencies) that interfere with attendance / homework should be handled through the Office of the Dean.
Though you don't have to use LaTex to create your PDFs, I encourage LaTex as a useful skill. The first assignment below has a complete LaTex example, including graphics.
Monday 
Wednesday 
Friday 

12 Jan Week 1 
Course Intro  Chapter 1 Finite Automata 
Finite Automata 
19 Jan Week 2 
Nondeterminism 
Regular Expressions Due: Assignment #1 
Regular Expressions 
26 Jan Week 3 
Regular Expressions  Equivalence of Regular Expressions and DFAs 
Equivalence of Regular Expressions and DFAs

02 Feb Week 4 
Nonregular languages / Pumping Lemma Due: Assignment #2 
Pumping Lemma 
Chapter 1 Review 
09 Feb Week 5 
Exam 1 
Chapter 2: Contextfree grammars and languages 
Contextfree grammars and languages 
16 Feb Week 6 
Equivalence of CFG's and PDA's CFG ⇒ PDA PDA ⇒ CFG 
Equivalence of CFG's and PDA's Due: Assignment #3 
Noncontextfree languages 
02 Mar Week 7 
Review chapter 2 
Chapter 3: The ChurchTuring Thesis A TM that decides 0^{2n} 
Exam 2 
09 Mar Week 8 
Turing machine variants  A TM that decides connected graphs.  SSA Conference: No class 
16 Mar Week 9 
Chapter 4: Decidability
Decidability of Regular Due: Assignment #4 
Decidability of Regular and CF Languages

Undecidability 
23 Mar Week 10 
Halting problem Due: Assignment #5  Halting problem 
Chapter 7: Time Complexity 
30 Mar Week 11 
Time complexity The class P 
Examples of problems in P Due: Assignment #6 
O(n^{3}) parsing 
06 Apr Week 12 
The class NP  Simpsons: P=NP, ??? 
Due: Assignment #7
Exam 3 