CS 311 : Computational Structures

Fall Term 2016
Professor: James Hook
CRN: 10998
Class Meetings: Tuesday, Thursday 2:00pm to 3:50pm
Location: NH 237

Final Exam: Monday, December 5, 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: Note, Exercises and Problem Sets will be updated prior to assignment.

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

Slides
Notes
EX #1
PS #1

Discrete Math Review (Morrissey)

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

Notes may be revised
EX #2

PS #1
4 10/6/15 Equivalence of Regular Expressions and Regular Languages

Notes
PS #2

Section 1.3 EX #2
5

10/11/15

[Guest lecture: Launchbury]

Regular Expression Equivalence (conclusion)

Notes

EX #3

Section 1.4
6

10/13/15

[Guest Lecture: Launchbury]

Pumping Lemma


Notes
PS #3

Section 2.1 PS #2
7

10/18/15

[Guest Lecture: TBA]

Context Free Languages (CFL); Context Free Grammars (CFG)

slides
EX #4
Section 2.2 EX #3
8 10/20/15 Push Down Automata (PDA). notes
CYK Algorithm
PS #4
  PS #3
9 10/25/15 Equivalence of CFGs and PDAs I; Mid-term review example EX #4
10 10/27/15 Mid-term Exam
11 11/1/15 Post-mid-term discussion; Equivalence of CFGs and PDAs I.

EX #5

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

PS #6

Section 4.1 PS #5
15 11/15/15 An undecidable Problem EX #7
Section 4.2 EX #6
16 11/17/15 Reduction Arguments PS #7 Chapter 5 PS #6
17 11/22/15 Reduction arguments EX #8   EX #7
Holiday 11/24/15 Thanksgiving!
  11/27/15     PS #7
18 11/29/15 Time and Space Complexity; Polynomial Time [Added late: Sections 7.1, 7.2. Note no assigned readings from Chapter 6]
19 12/1/15 Satisfiability is NP Complete; Polynomial-time reduction

[Added late:
Sections 7.3, 7.4]

EX #8
Final 12/5/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: