| Time: | 2:00-3:15 Tuesday and Thursday | ||
| Place: | MEC 339 | ||
| Instructor: |
|
||
| TA: |
|
||
| Goals: | This course will have two main aspsects. The first will be closely related to the design or analysis of any complex software or hardware system. Finite automata come up in almost every complex system, from pattern matching to circuit design to text editing. Compilers rely heavily on FSMs and CFLs.
We will also approach computation from a philosophical standpoint. We will discuss what can or cannot be computed, and what it means for a computation to be "efficient". These insights have a significant impact on how we think about using computers to solve problems. The overarching goal of this course is to introduce some mathematical rigor into computer science. The material in this course is very formal and precise, and the skills you learn solving problems in complexity theory will be invaluable when designing and analyzing software and hardware. We will cover the following topics:
|
||
| Assignments: | There will be seven written assignments that will be closely related to the material covered in class. Assignments are due at the beginning of class. We will not accept late assignments except in extraordinary circumstances (e.g. family emergency, student is hospitalized). Power outages, conference travel, a cold, friends visiting or troubles with your significant other are not extraordinary events. | ||
| Exams: | There will be an in-class midterm and a take-home final. | ||
| Background: | This course is mostly self contained. Familiarity with algorithm analysis at an undergraduate level will be helpful. Some simple mathematical background is assumed (logarithms, summations, etc). Mostly, you need to be able to think. | ||
| Texts: | Introduction to the Theory of Computation by Michael Sipser (Required) Gödel, Escher, Bach by Douglas Hofstadter (Recommended) |
||
| Grading: | The weekly assignments will collectively be worth 50% of your grade. The midterm will be worth 15%, and the final will be worth 35%. | ||
| Honor Code: | The honor code applies to all work turned in for this course. You may not use outside materials to assist you in solving homework problems. This includes other textbooks, or materials available on the internet. You are not allowed to receive specific homework-related aid from other people. However, you may talk to others (the TA, your professor, or other students) regarding general high-level problem solving strategies. This kind of problem solving collaboration is encouraged, but you must write up your own homework solutions. If you find your study group writing down solutions to the specific homework problems, you have crossed the line. |
| Date | Topics | Readings |
|---|---|---|
| 8/24 | Set Theory and Logic Review | |
| 8/29 | Proof Techniques | Sipser 0.1-0.4 |
| 8/31 | Finite State Machines | Sipser 1.1 |
| 9/5 | Nondeterministic Finite State Machines | Sipser 1.2 |
| 9/7 | Problem Session (Homework 1 Due) | |
| 9/12 | Epsilon NFAs and Regular Expressions | |
| 9/14 | The Pumping Lemma for Regular Languages | Sipser 1.3-1.4 |
| 9/19 | Closure Properties of Regular Languages | |
| 9/21 | Problem Session (Homework 2 Due) | |
| 9/26 | Context Free Lanaguages | Sipser 2.1 |
| 9/28 | Pushdown Automata | Sipser 2.2 |
| 10/3 | Chomsky Normal Form The Pumping Lemma for Pushown Automata |
Sipser 2.3 |
| 10/5 | Closure Properties of Context Free Languages | |
| 10/10 | Problem Session (Homework 3 Due) | |
| 10/12 | Midterm Exam (in class) | |
| 10/17 | NO CLASS | |
| 10/19 | NO CLASS | |
| 10/24 | Turing Machines and Decidability | Sipser 3.1,3.3 |
| 10/26 | Nondeterministic Turing Machines | Sipser 3.2 |
| 10/31 | Universal Turing Machines | Sipser 4.1-4.2 |
| 11/2 | Problem Session (Homework 4 due) | |
| 11/7 | Undecidability | Sipser 5.1-5.3 |
| 11/9 | Complexity Classes | Sipser 7.1-7.5 |
| 11/14 | P vs NP | |
| 11/16 | Problem Session (Homework 5 due) | |
| 11/21 | THANKSGIVING | |
| 11/23 | THANKSGIVING | |
| 11/28 | Space Complexity | Sipser 8.1-8.6 |
| 11/30 | Incompleteness | GEB |
| 12/5 | Problem Session and Review (Homework 6 due) |