Course Description
Weekly Schedule
Frequently Asked Questions
Course Overview
Required Textbooks
Grading Policy
Detailed Course Outline
Getting a Computer Account
Academic Integrity Policy
Class Mailing List
List Archives
ML Resources
Simulators

Fall Quarter 2010 Tuesday and Thursday 16:40–18:30 FAB 010 CRN 11010
Instructors

Professor Andrew Black
black (at) cs.pdx.edu
503 725 2411
Office: FAB 115–10
Office hours: Monday 16:00–17:00 and Thursday 10:30–11:30, or by appointment.


Teaching Assistant
Andrew SackvilleWest
email: ajs4 (at) cs.pdx.edu
Office hours: Wed 15:30–16:30 and Fri 14:00–15:00 in the CS Department fishbowl
Recitation sections: Fri 13:00–14:00, FAB150.

Course Overview
This course might be subtitled How to think like a computer scientist. It gets to grips with the fundamental issues of what a computer is (in the abstract), what is computable and what is uncomputable. Yes, some things are uncomputable—and we will prove it. We also touch lightly on what is a computationally hard problem.
The approach of the course is mathematical: much of it is about proving properties of computing machines. In the past, I have also set programming assignments, which were intended to help students understand the algoriths involved. This was not very successful, so programming assignments will optional this year.
Required Textbook

The required book is Introduction to Automata Theory, Languages, and Computation (3rd Edition) by John E. Hopcroft, Rajeev Motwani, and Jeffrey D. Ullman. ISBN13: 9780321462251
The version at the bookstore includes "Gradience", an online homework tool. If you buy the book elsewhere, make sure that you get the package that includes gradience, or be prepared to pay $24 to purchase gradience separately. (I've been told that you can also purchase Gradience seprately form the text at the PSU bookstore, for less money than the prince online. However, it may take a few days to get the access code this way.)
 Portal to the Gradiance system for online homeworks. The authors maintain an
 Errata list. Check here if you can't make sense of something in the text.

Recommended Textbook

This book, Introduction to the Theory of Computation, by Michael Sipser, has been used at PSU in the past. List price is $129; the price at Amazon.com is $103.16. ISBN 9780534950972.
The book is intended for a graduate course. It is a lot more succinct that Hein, and the notation is more standard. It also has fewer examples, and takes a more matehmatical approach. It is not required, but some students really liked it: I'm listing it here as resource that you may like to own, particularly if you can find a used copy.

For the Prerequisites

The suggested book is Discrete Structures, Logic and Computability (any edition) by James L. Hein. Published by Jones and Bartlett. 2002. ISBN 9780763718435.
I'm going to assume that you are familiar with Chapters 1–10. Copies of this book are in the library, in my office, and with the CS Tutors.
Errata for the book.

Course Policies
Attendance
I recommend that you come to class, that you participate actively, and that you take notes. The act of taking notes (even if you never look at them again) is a powerful learning aid. I will generally make any visual aids, code samples, etc. that I used in class available on the web, but these are not a substitute for being in class and taking notes. If you do have to miss a class, say because of illness or workrelated travel, you are responsible for getting notes and finding out what went on in class from another student.
Reading Assignments
Reading listed in the syllabus for each week should be completed before coming to class. I may check on the completion of reading assignments by various means: oral or written quizzes in class, written summaries, discussion (webbased or in class), etc. Anything in a reading assignment is fair game for an exam question.
Assignments
Handwritten or Printed assignments are due at the start of class. Gradianace Homeworks are submitted electronically, and may be attempted as often as desired. The grade on the final submission is the grade that counts.
Regrading
We do sometimes make mistakes. If you believe that we have not graded your assignment according to the published grading scheme, please let the instructor know in writing or by email within 1 week of the assignment being returned to you. Be specific as to why you think that the grading is inconsistent. We will then regrade the whole assignment; the second grading will stand, whether it is higher or lower than the original grading.
Disabilities
If you are a student with a disability in need of academic accommodations, you should first register with the Disability Resource Center, and then notify the instructor to arrange for support services.
Makeup Exams
If you have a medical or a family emergency and must miss an exam, let me know, if at all possible before the exam, and I will work with you to find an alternative. Other reasons for absence such as scheduled travel are not emergencies and are not cause for a makeup.
Passing the Course
Every assignment in the course is connected to a learning objective. It is therefore important that you make an honest attempt to complete them all. A score of less than 20% on any assignment indicates that you have not met this condition, and is sufficient cause for failing the course. That means an F, at the discretion of the instructor.
Academic Integrity
Students are at university for two reasons: to learn stuff, and to gain a credential. Because the credential is important to many of our students, part of my role as a professor is to make sure that it has value. This means ensuring that the degree is awarded only to those students who have mastered the material in my course.
I have every sympathy for those who have difficulty with the material and seek the assistance of the instructor, the TA or their fellow students. I have no sympathy at all for those who decide that the fastest way to a degree is to cheat. I have been responsible for having cheating students dismissed from the university in the past, and I will not hesitate to seek to have cheaters dismissed in the future.
The most common form of academic dishonesty is representing the work of others as your own. In all written material, you are expected to cite others' work, but to do so in a way that makes it clear what part of the work is your own, and what part is credited to others. If you reproduce someone else's work in a way that makes it appear to be yours, you are guilty of plagiarism, in other words, of cheating.
Cheating on an assignment or exam will result in an automatic zero grade for that piece of work, and the initiation of disciplinary action at the University level.
Cheating and collaboration
I encourage collaboration on certain assignments; I will not tolerate cheating. Where is the line between these activities?
First, if an assignment is explicitly set up as a team assignment, you are of course allowed — indeed, required — to collaborate with the members of your team. In this case I will generally require only one completed piece of work to be turned in from the team as a whole.
For individual assignments, I encourage you to talk about the problem with your fellow students. During such discussion, you may even write something, perhaps the code of a critical method, or a key step in a proof, as a group. If you do this, there is a danger that you might reproduce that group work as if it were your own. To guard against this danger, do the following: after the group session, destroy any notes or code that you may have brought away with you. Then go and do something else for an hour or two: go for a walk or a bike ride, play your favorite sport, go to the gym: do something to flush your shortterm memory. Then sit down with a blank sheet of paper or a blank computer workspace and start work on your own solution. If you have a photographic memory or otherwise won't be able to forget what you have seen someone else write, then don't participate in collaborative problemsolving sessions.
If I see the same code or writing assignment from two or more students I will take this as evidence that these guidelines have been ignored, and will assign a grade of zero to all of the students involved.
Grading Policy
The following represents my present intention; I reserve the right to vary the grade distribution if it seems necessary or desirable.
Final Examination: 35%
Midterm 20%
Graded Homeworks: 40%
Class Participation: 5%
Detailed Outline of the course
This will be changed. Lecture notes will be updated and readings from Hopcroft will be added. The schedule will also change as we see how much time we need for particular topics.


Date

Lecture





Section 1: Regular Languages and Finite Automata


w
e
e
k
1


Tuesday 28 September
Lecture Notes


1 
Introduction
 course overview and organization
 entrance exam
 quick review of whole course

Hopcroft Chapter 1
old video

Review/Entrance Exam
Due Tuesday 5th October.



Thursday 30 September
Lecture Notes


2 
Finite Automata
 Intro to DFAs
 Formal definition of DFA.  Acceptance in a DFA (2 definitions)
 Representing and executing automata in JFLAP

Hopcroft Chapter 2, §2.1 and §2.2
old video

Assignment 1: due Thursday 7th October.
Assignment 1 solutions











w
e
e
k
2 

Tuesday 5 OctoberLecture Notes


3 
NFAs
 NFA as 5tuple
 Running and accepting in an NFA
 Regular operations on NFAs
 equivalence of NFAs and DFAs
 Preview of the subset construction
 Λclosure

Hopcroft §2.3 – §2.8
old video




Thursday 7 October
Lecture Notes
A worked problem on Proof by Mutual Induction.


4 
Regular Expressions
 r.e.s as an algebra
 properties of r.e.s
 converting from res to FSA
 converting from FSA to res

Hopcroft Chapter 3.
old video

Assignment 3: FSAs
Due: Thursday 14th October.
Solutions to assignment 3











w
e
e
k
3 

Tuesday 12 October
Lecture Notes


5 
 Closure properties of regular languages
 Pumping Lemma for Regular Languages
 Working problems
Regular and nonregular languages 
Hopcroft Chapter 4.
old video

Assignment 2:
Homework 2 on Gradiance.



Thursday 14 October
Lecture Notes


6 
Properties of Regular Languages
 Building NFAs from grammars
 Building grammars from NFAs
 Lindistinguishability
 The MyhillNerode Theorem
 minimizing a DFA

Hein §11.4.1
old video

Homework 4. On Gradiance. Due Friday, 22 October


Section 2: Contextfree Languages and Finite Automata


w
e
e
k
4


Tuesday 19 October
Lecture Notes


7 
Context Free Languages and ContextFree Grammars
 CF Grammars
 Various definitions for Pushdown Automata
 Nonequivalence of deterministic and nondeterministioc PDAs

Hopcroft Chapter 5
Example Pumping Lemma proof
old video




Thursday 21 October
Lecture Notes


8 
CF Grammars and Pushdown Automata
 Converting PDAs into CFGs
 Converting CFGs into PDAs
 Chomsky Normal Form
Properties of CFLs

Hopcroft Chapter 6, §7.1–7.2
old video
(downloaded copy)

Homework 5: DFA Pumping Lemma, Regexp Generation, CFLs and PDAs. Due Thursday, 28 October
Homework 5 solutions











w
e
e
k
5


Tuesday 26 October


9 
Revison class. Bring problems!





Thursday
28 October



Midterm exam
The exam will cover regular and CF languages and their automata. The use of books is not allowed, but you may use a single 8.5" × 11" “crib sheet”, as a personal reference for definitions and formulae.
List of topics
Previous midterm exam













w
e
e
k
6 

Tuesday 2 November


10 
Review of Midterm
 Pumping Lemma for CFLs
 Proving that a language is not contextfree


Homework 6 on gradiance 


Thursday
4 November
Lecture Notes


11 
Parsing Techniques
Recursivedescent parsing
Topdown parsing with a parsing table

old video 
Homework 7
Sample proof using the CFG pumping lemma


Section 3: Turing machines and the ChurchTuring Thesis


w
e
e
k
7


Tuesday 9 November
Lecture Notes
More Lecture Notes
TM for x times y
TM for 2^2^n


12 
History and Philosophy of Turing Machines
 Basic Turing machines for simple examples
 Writing programs for the xTuringMachine simulator and the JFLAP simulator
Turing machine variants
 The ChurchTuring Thesis
 Deterministic and Nondeterministic Turing Machines
 Multitape Turing Machines
 Random Access Memory TMs
 kstack PDAs
 Universal Turing Machines

old video

Homework 8 design a Turing Machine



Thursday
11 November
no class



PSU Holiday — Veterans' Day 












w
e
e
k
8 

Tuesday 16 NovemberLecture Notes


13 
Variations on Turing Machines
 The ChurchTuring Thesis
 Variant Turing Machines
Other models of Computation
• Simple programming language
• Type 0 (unrestricted) Grammars

old video (start at 1h20)
old video




Thursday 18 November
Other Models
Lambda Calculus


14 
• Partial Recursive Functions
• Lambda calculus
• Markov Algorithms
• Recursive Functions
• Lambda calculus
• building recursive functions in the λcalculus
Tim Sheard's Lambda Calculator (download and run Hugs, type ":load LambdaCalculator.hs", and then "main")

old video on Lambda Calculus
Reading on Lambda calculus












w
e
e
k
9


Tuesday 23 November
Lecture Notes


15 
Decidable & Undecidable Problems
 The Halting problem
 Reduction
 Unsolvability

Sipser Section 4.2
old video

Homework 9: Turing machines and λcalculus



Thursday
25 November
No class



Thanksgiving Day: PSU is closed.




Section 4: Computability 

w
e
e
k
10


Tuesday
30 November
Lecture Notes


16 
Computational Complexity

old video




Thursday 2 December
NPcompleteness Lecture Notes
Review Lecture Notes


18 
Complexity — NP Completeness.
CYK Algorithm, CookLevin Theorem
Reducibility of CLIQUE to SAT

old video





Tuesday
7 December
17:30–19:20
Sample Final Exam,
List of topics



Final Exam
The exam will cover the whole of the course. The use of books is not allowed, but you may use a single 8.5" × 11" “crib sheet” (doublesided), as a personal reference for definitions and formulae.




Most recently modified on Thursday 2 December 2010 at 21.54
Andrew P. Black
