CS 311 : Computational Structures

Fall Term 2015
Professor: James Hook
CRN: 11001
Class Meetings: Tuesday, Thursday 2:00pm to 3:50pm
Location: FAB 150

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: Wednesdays, 3 - 5pm, 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.

TA:

Nate Launchbury
E-mail: njl2@pdx.edu
Office location: TBD
Office hours: TBD

Grades:

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

 

Lecture plan:

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

Slides
Notes
EX #1
PS #1

Discrete Math Review (Morrissey)

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

Notes may be revised
EX #2
PS #2

PS #1
4 10/8/15 Equivalence of Regular Expressions and Regular Languages Notes Section 1.3 EX #2
5 10/13/15 Regular Expression Equivalence (conclusion)

Notes

EX #3
PS #3

Section 1.4 PS #2
6 10/15/15 Pumping Lemma

Notes

Section 2.1 EX #3
7 10/20/15 Context Free Languages (CFL); Context Free Grammars (CFG) slides
EX #4
PS #4
Section 2.2 PS #3
8 10/22/15 Push Down Automata (PDA). notes
CYK Algorithm
  EX #4
9 10/27/15 Equivalence of CFGs and PDAs I; Mid-term review example PS #4
10 10/29/15 Mid-term Exam
11 11/3/15 Post-mid-term discussion; Equivalence of CFGs and PDAs I.

EX #5
PS #5

Section 2.3
12 11/5/15 Pumping Lemma for CFLs Section 3.1 EX #5
13
11/10/15 Turing Machines. Turing Machine variants; Simulation of non-determinism EX #6
PS #6
Sections 3.2, 3.3 PS #5
14 11/12/15 Language Problems; Church-Turing thesis

 

Section 4.1 EX #6
15 11/17/15 An undecidable Problem EX #7
PS #7
Section 4.2 PS #6
16 11/19/15 Reduction Arguments   Chapter 5 EX #7
17 11/24/15 Reduction arguments PS #8   PS #7
Holiday 11/26/15 Thanksgiving!
18 12/1/15 Time and Space Complexity; Polynomial Time EX #8 PS #8
19 12/3/15 Satisfiability is NP Complete; Polynomial-time reduction EX #8
Final 12/7/15 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: