CS310 Theoretical Computer Science

 

Course Syllabus

Fall 2006

 

Introduction

 

   This course is an introduction to the mathematical foundations of the theory of computation. We will study automata theory, formal languages, the theory of computability and undecidability, and computational complexity.  This material is central to many branches of computer science; it underlies the basic theory of compiler design, the efficiency of algorithms, and the limitations of computing. 

 

Aim

 

Have a basic understanding of complexity theory, computability theory, and automata theory.

 

Objectives

 

 

Topics

 

Mathematical notation

Pumping Lemma

Proof by induction

Pushdown Automata

(Non) Deterministic Finite Automata

Parsing (LL)

Regular Expressions

Turing Machines

Context Free Grammars

Big O Notation

 

 
Instructor Details

 

Professor: Chadd Williams

Email: chadd@pacificu.edu

Office: Strain 202

Phone: (503) 352-2223

Office Hours: M 03.00 - 04.00 PM

T  02.00 - 04.00 PM

F  11.00 - 12.00 PM or by appointment

 

Course Basics

 

Course Title: CS310 Introduction to Theoretical Computer Science

Prerequisite: CS250

 

Meeting Times: MWF 01.00 - 01.50 PM (lecture)

 

Location:        Marsh LL21

Textbook:      Introduction to the Theory of Computation by Michael Sipser, PWS Publishing Company, ISBN 0321129474 (Second Edition)

From this text we will cover Chapters 0, 1, 2, most of 3, part of 4, and most of 7.

Errata: http://www-math.mit.edu/~sipser/book.html

 

Software:       JFLAP -- http://www.jflap.org/

Course Website: http://zeus.cs.pacificu.edu/chadd/cs310f06/cs310.html

 

Course Assessment

 

 

Grade Distribution
Homework 15%
Exam 1 25%
Exam 2 25%
Final 35%
Percent Breakdown


  92-100 A   90-92 A-
88-90 B+   82-88 B   80-82 B-
78-80 C+   72-78 C   70-72 C-
68-70 D+   60-68 D      
0-60 F            

 

 

 

Important Dates

 

Dates for Midterms

Date of Final

Assignments:

Weekly Schedule (Tentative)

 

WEEK #
TEXT SECTIONS AND TOPIC
DATE
ADDITIONAL NOTES
WEEK 1
 
0: Overview, mathematical notation, proof by induction (handouts, pdf, ppt)
Monday, August 28, 2006

0 and 1: Strings, String Operations, Languages (pdf, ppt)
Wednesday, August 30, 2006

1.1:Introduction to Deterministic Finite Automata(DFA) , formal definition of a DFA, simple examples of DFA's (pdf, ppt)
Friday, September 1, 2006
WEEK 2
 
NO CLASS
Monday, September 4, 2006
LABOR DAY: NO CLASS
1.1: Designing Finite Automata, formal definition of computation (pdf, ppt)
Wednesday, September 6, 2006

1.1/1.2: Regular operations on Languages, Union closure of regular languages, motivation for and introduction to Nondeterministic Finite Automata (NFA) (pdf, ppt)
Friday, September 8, 2006
HW #1 DUE
SOLUTION


WEEK 3
 
1.2: Examples of NFA's, Introduction to converting NFA's to DFA's
(pdf, ppt)
Monday, September 11, 2006

1.2: Converting NFA's to DFA's (pdf, ppt)
Wednesday, September 13, 2006
HW #2 ASSIGNED
1.2: Closure of Regular Languages (pdf, ppt)
Friday, September 15, 2006

WEEK 4
 
1.3: Regular Expressions (pdf, ppt)
Monday, September 18, 2006

1.3: Regular Expressions (pdf, ppt)
Wednesday, September 20, 2006

Regular Expressions and JFLAP SOFTWARE, GREP INTRODUCTION(ppt) Friday, September 22, 2006
HW #2 DUE
SOLUTION

WEEK 5
 
1.3:Regular Expressions and GNFA (ppt)
Monday, September 25, 2006

HW #3 ASSIGNED
1.4: Non-Regular Languages/Pumping Lemma part 1: (ppt) part 2: (ppt)
Wednesday, September 27, 2006

Pumping Lemma Examples: (ppt)
Is { a^(2n) | n > 0 } non-regular? (ppt)

Friday, September 29, 2006

WEEK 6
 
2.1: Context Free Grammars part 1: (ppt) part 2: (ppt)
Monday, October 2, 2006

2.1 CFG part 1: (ppt) part 2: (ppt)

Wednesday, October 4, 2006

NO CLASS
Friday, October 6, 2006
FALL BREAK: NO CLASS
WEEK 7
 
2.2: Pushdown Automata (PDA) (ppt)
Monday, October 9, 2006

2.2: Pushdown Automata (PDA) (ppt)
Wednesday, October 11, 2006
EXAM
Friday, October 13, 2006
EXAM ONE SCHEDULED
WEEK 8
 
2.2: Pushdown Automata (PDA), Chomsky Normal Form (CNF) (ppt)
Monday, October 16, 2006

2.3/2.4: Non-Context Free Languages (ppt) Mid-Semester Course Evaluation (ppt)
Wednesday, October 18, 2006

2.3/2.4: Non-Context Free Languages (ppt) (ppt)
Friday, October 20, 2006

WEEK 9
 
Parsing Introduction (Handout): (ppt)
  • Top down parsing introduction
  • Discussion of First
  • Sample Parse Table
  • Generation of String using Parse table.

Monday, October 23, 2006
Parsing Introduction (Handout):
  • Follow, First review
  • Construction of LL(1) parsing table.
Wednesday, October 25, 2006

HW #3 DUE

SOLUTION

Parsing Introduction (Handout): (ppt)
  • Construction of LL(1) parsing table.
  • "Common prefixes" and "left recursion" problems.
 Friday, October 27, 2006

WEEK 10
 

LL(1) Parsing, Shift/Reduce Parsing (ppt)

(JFLAP examples: 1, 2, 3, 4)

Monday, October 30, 2006

Lex & Yacc (ppt) Examples
Wednesday, November 1, 2006
HW #4 ASSIGNED

Linux Command line (ppt)

 

Friday, November 3, 2006

WEEK 11
 

3.1: Turing Machines, Basic Examples, Formal Definition (ppt)


Monday, November 6, 2006

3.2: Turing Machines, More examples, Multitape machines (ppt)

Wednesday, November 8, 2006

3.2: Nondeterministic Turing Machine, examples
JFLAP Turing Machine Examples
Friday, November 10, 2006

WEEK 12
 
4.1: Decidability, Examples of Decidable languages (ppt)
Monday, November 13, 2006

HW #4 DUE

SOLUTION

4.2 Halting Problem (ppt)

Review for Exam 2

Wednesday, November 15, 2006

4.2 Halting problem (ppt)

JFLAP Turing Machines (ppt)

Friday, November 17, 2006
 
WEEK 13
 

No Lecture


Monday, November 20, 2006
EXAM TWO SCHEDULED

No Lecture
Wednesday, November 22, 2006
THANKSGIVING BREAK: NO CLASS
No Lecture
Friday, November 24, 2006
THANKSGIVING BREAK: NO CLASS
WEEK 14
 

7.1: Time Complexity Introduction, big-O notation (ppt)

7.1: Complexity Relationships between various Turning Machine Models

Monday, November 27, 2006

7.2: Class P of languages, examples (ppt)

Review for the Final Exam

Wednesday, November 29, 2006

7.3, 7.4:  Class NP of languages, examples,  P VS. NP Problem, NP Complete Languages
Friday, December 1, 2006
HW #5 DUE
SOLUTION
WEEK 15
No Lecture
Tuesday, December 5, 2006
FINAL EXAM,
8:30-11:00 AM

 

Other Dates

4 September Labor day holiday (no classes)

11 September Last day to add courses. Last day to drop courses with no record

6 October No classes (Arts & Sciences)

6 November Last day to withdraw from courses

22 - 24 November Thanksgiving break (starting at Noon on the 22nd)

6 December Reading day

 

Course Policies