CS 311 : Computational Structures

Fall Term 2014
Professor: James Hook
CRN: 10969
Class Meetings: Tuesday, Thursday 2:00pm to 3:50pm
Location: SRTC 155 FAB 170 (new room across from ARC, not yet on any maps; ask in FAB 120 for help if you can't find it)

Final Exam: Monday, December 8, 10:15am to 12:05pm

Contact Information:
James Hook, james.hook@pdx.edu
Office: Engineering Building (EB) 502E
Phone 503 725 5166
Office Hours: Monday 1:00pm to 3:00pm, or by appointment. Please arrive at least 30 minutes before the end of office hours.
I will occassionally have conflicts with office hours; information will be posted in d2l.


Nate Launchbury
E-mail: njl2@pdx.edu
Office location: Fishbowl (FAB (aka 1900 SW 4th Ave) outside suite 120)
Office hours: MTW: 12:15-1:45pm


Exercises 10%
Problem Sets 40%
Mid-term 20%
Final 30%
Total 100%


Lecture plan:

Lecture Date Topics Materials Reading Due
1 9/30/14 Course Organization, Motivation, Finite Automata (DFA)

EX #1
PS #1

Chapter 0 (all); Section 1.1
2 10/2/14 Non-deterministic Finite Automata (NFA), Simulation of NFA by DFA Notes Section 1.2 EX #1
3 10/7/14 Closure properties; Regular Expressions

Notes may be revised
EX #2
PS #2

PS #1
4 10/9/14 Equivalence of Regular Expressions and Regular Languages Notes Section 1.3 EX #2
5 10/14/14 Regular Expression Equivalence (conclusion)
Pumping Lemma

GNFA Example

EX #3
PS #3

Section 1.4 PS #2
6 10/16/14 Context Free Languages (CFL); Context Free Grammars (CFG)


Section 2.1 EX #3
7 10/21/14 Push Down Automata (PDA) slides
EX #4
PS #4
Section 2.2 PS #3
8 10/23/14 Equivalence of CFGs and PDAs I notes
CYK Algorithm
  EX #4
9 10/28/14 Equivalence of CFGs and PDAs II; Mid-term review example PS #4
10 10/30/14 Mid-term Exam
11 11/4/14 Post-mid-term discussion; Pumping Lemma for CFLs EX #5 Section 2.3
12 11/6/14 Turing Machines Section 3.1 EX #5
14 11/13/14 Turing Machine variants; Simulation of non-determinism

EX #6
PS #5

Sections 3.2, 3.3  
15 11/18/14 Language Problems; Church-Turing thesis Section 4.1 EX #6
16 11/20/14 An undecidable Problem EX #7
PS #6
Section 4.2 PS #5
17 11/25/14 Reduction arguments Chapter 5 EX #7
Holiday 11/27/14 Thanksgiving!
18 12/2/14 Time and Space Complexity; Polynomial Time EX #8 Sections 7.1, 7.2, 7.3 PS #6
19 12/4/14 Satisfiability is NP Complete; Polynomial-time reduction Section 7.4, 7.5 EX #8
Final 12/8/14 Final Exam:  10:15am to 12:05pm   Comprehensive

Course Description, (strike throughs show shift in emphasis from published description):

The main goal of the course is that students obtain those skills in the theoretical foundations of computing that are used in the study and practice of computer science. A second goal is that students become familiar with Prolog as an experimental tool for testing properties of computational structures. Upon the successful completion of this course students will be able to:

  1. Find regular grammars and context-free grammars for simple languages whose strings are described by given properties.
  2. Apply algorithms to: transform regular expressions to NFAs, NFAs to DFAs, and DFAs to minimum-state DFAs; construct regular expressions from NFAs or DFAs; and transform between regular grammars and NFAs.
  3. Apply algorithms to transform: between PDAs that accept by final state and those that accept by empty stack; and between context-free grammars and PDAs that accept by empty stack.
  4. Describe LL(k) grammars; perform factorization if possible to reduce the size of k; and write recursive descent procedures and parse tables for simple LL(1) grammars.
  5. Transform grammars by removing all left recursion and by removing all possible productions that have the empty string on the right side.
  6. Apply pumping lemmas to prove that some simple languages are not regular or not context-free.
  7. State the Church-Turing Thesis and solve simple problems with each of the following models of computation: Turing machines (single-tape and multi-tape); while-loop programs; partial recursive functions; Markov algorithms; Post algorithms; and Post systems.
  8. Describe the concepts of unsolvable and partially solvable; state the halting problem and prove that it is unsolvable and partially solvable; and use diagonalization to prove that the set of total computable functions cannot be enumerated.
  9. Describe the hierarchy of languages and give examples of languages at each level that do not belong in a lower level.
  10. Describe the complexity classes P, NP, and PSPACE.  (If time allows)

Other texts on automata theory: