Computer Science 383

Theory of Computer Science

Spring 2017



Bob Geitz, King 223A


Office Hours:

MWF 11-12, Thursday 1:30-3, or by appointment

I am around most of the day when I am not in class.


This is a course in the theory of computation, a field that is considerably older than computers and computer science itself. We will look at issues related to what can be algorithmically computed and what can be said about the compuational process, including time and space complexity. Although the models of computation we will use are quite concrete and easily programmed, our interest in them is primarily mathematical. We will write many proofs, just as you did in the Algorithms class.


Automata and Computability by Dexter Kozen; Springer Verlag 1997. We will cover most of this text and much of the homework will come from it. You need to have a copy of it.

Exams and Grading:

We will have 2 in-class exams during the semestezr and a comprehensive final exam. Here is how the grades for the course will be composed:

Note that the final exam will be Thursday, May 11 at 9AM. This time is set by the Registrar and I cannot change it for the class or for individuals. If you have issues with this time you should talk to the Dean of Studies immediately.


Most of your learning in the course will come from the homework. The homework assignments will take time -- I would guess about 6 to 10 hours per week. You are welcome, and even encouraged, to form a study group to work on the homework. Mathematics is all about communication. The most important thing you can take from this course is the ability to formulate a convincing mathematical proof and that requires an audience to be convinced. So you can work out solutions to the problems in a group. However, you must write up your own statement of the solutions.

I want the solutions to be typed and submitted as a hard copy. I don't particularly care if you use TeX or MS Word, but I want printed copy, not an email. There is a reason for requiring you to type solutions. We are all sloppy with hand-written copy; we cross things out, draw arrows to new text, and so forth. Mathematics requires precision and careful use of language. It is much easier to see if a proof is correct if it is typed.

At the top of your solutions say who you worked with on the assignment. If you worked with person X and your solution isn't quite clear, person X's solution might help us to understand yours. Somewhere, preferably at the end, include the Honor Pledge: "I have written these solutions myself; I have given them to no one else"

Late homework: You can hand in one assignment up to 2 days late without penalty. Other assignments can be handed in up to 2 days late but are docked 50%. Except in extreme circumstances (I would need to hear from you class dean) homework that is more than 2 days late will receive no credit. For the most part you are better off turning in an assignment that is incomplete than turning it in late.


The Honor Code

The Honor Code has a straightforward application to this class. On all of the exams you are responsible for your own work; you may neither give nor receive any information during the course of the exam. If someone takes an exam at a different time than the rest of the class there may be no communication concerning the exam between that person and anyone else in the class, not even whether the exam was easy or difficult. For the homewok you are welcome to talk to anyone you like but you must write your own solutions.

Course outline:

Week Day Topic Notes
Week 1

January 30-February 3


Finite Automata; Regular Languages

Lectures 1-4
Week 2 Feb 6-10

Regular Expressions.

The equivalence of Regular Expressions and Finite Automata

Lectures 5-9
Week 3 Feb 13-17

The Pumping Lemma

Determining whether a language is regular

Lectures 10-12
Week 4 Feb 20-24

Propeties of Regular Languages

Lectures 13-16

Exam 1: Friday Feb 24

Week 5 February 27 - March 3 Context-Free Grammars and Languages Lectures 19-21
Week 6 March 6-10 Pushdown Automata
Lectures 22-23
Week 7 March 13-17 Context-Free Languages and Pushdown Automata Lectures 24-25
Week 8 March 27-31 Properties of Context-Free Languages

Lectures 26-27

Week 9 April 3-7 Turing Machines and Computability

Lectures 28-30


Week 10 April 10-14 Undecidability

Lectures 31-32

Exam 2: Friday April 14

Week 11 April 17-21 Cook's Theorem and NP Completeness



Week 12 April 24-28

Other Forms of Undecidability

Lectures 33-37

Week 13 May 1-5 Godel's Incompleteness Theorem

Lectures 38-39

Final Exam: Thursday, May 11, 9AM