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
T
F
Course Basics
Course Title: CS310 Introduction to Theoretical Computer Science
Prerequisite: CS250
Meeting Times: MWF
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
Course Website: http://zeus.cs.pacificu.edu/chadd/cs310f06/cs310.html
Course Assessment
Grade
Distribution
|
Percent Breakdown
|
Important Dates
Dates
for Midterms
Date
of Final
WEEK
# |
TEXT
SECTIONS AND TOPIC |
DATE |
ADDITIONAL
NOTES |
WEEK 1 |
0:
Overview, mathematical notation, proof by induction (handouts, pdf, ppt) |
||
0
and 1: Strings, String Operations, Languages (pdf, ppt) |
|||
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) | |||
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 |
||
WEEK 3 |
1.2:
Examples of NFA's, Introduction to converting NFA's to DFA's (pdf, ppt) |
||
1.2:
Converting NFA's to DFA's (pdf, ppt) |
|||
1.2:
Closure of Regular Languages (pdf, ppt) |
Friday,
September 15, 2006 |
||
WEEK 4 |
1.3:
Regular Expressions (pdf, ppt) |
||
1.3:
Regular Expressions (pdf, ppt) |
|||
Regular Expressions and JFLAP SOFTWARE, GREP INTRODUCTION(ppt) | Friday, September 22, 2006 | ||
WEEK 5 |
1.3:Regular Expressions and GNFA (ppt) |
||
1.4:
Non-Regular Languages/Pumping Lemma part 1: (ppt) part 2: (ppt) |
|||
Pumping Lemma Examples: (ppt) |
Friday,
September 29, 2006 |
||
WEEK 6 |
2.1:
Context Free Grammars part 1: (ppt) part 2: (ppt) |
||
NO
CLASS |
Friday,
October 6, 2006 |
FALL
BREAK: NO CLASS |
|
WEEK 7 |
2.2:
Pushdown Automata (PDA) (ppt) |
||
2.2:
Pushdown Automata (PDA) (ppt) |
|||
EXAM |
Friday,
October 13, 2006 |
EXAM ONE SCHEDULED |
|
WEEK 8 |
2.2:
Pushdown Automata (PDA), Chomsky Normal Form (CNF) (ppt) |
||
2.3/2.4:
Non-Context Free Languages (ppt) Mid-Semester Course Evaluation (ppt) |
|||
2.3/2.4:
Non-Context Free Languages (ppt) (ppt) |
Friday,
October 20, 2006 |
||
WEEK 9 |
Parsing
Introduction (Handout): (ppt)
|
||
Parsing
Introduction (Handout):
|
HW #3 DUE |
||
Parsing
Introduction (Handout): (ppt)
|
Friday,
October 27, 2006 |
||
WEEK 10 |
LL(1) Parsing, Shift/Reduce Parsing (ppt) |
||
Lex & Yacc (ppt) Examples |
|||
Linux Command line (ppt)
|
Friday,
November 3, 2006 |
||
WEEK 11 |
3.1: Turing Machines, Basic Examples, Formal Definition (ppt)
|
||
3.2: Turing Machines, More examples, Multitape machines (ppt) |
|||
3.2: Nondeterministic Turing Machine, examples JFLAP Turing Machine Examples |
Friday,
November 10, 2006 |
||
WEEK 12 |
4.1: Decidability, Examples of Decidable languages (ppt) |
HW #4 DUE |
|
4.2 Halting Problem (ppt) |
|||
4.2 Halting problem (ppt) JFLAP Turing Machines (ppt) |
Friday,
November 17, 2006 |
||
WEEK 13 |
No Lecture
|
EXAM
TWO SCHEDULED
|
|
No
Lecture |
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 |
||
7.2: Class P of languages, examples (ppt) |
|||
7.3,
7.4: Class NP of languages, examples, P VS. NP Problem, NP
Complete Languages |
Friday, December 1, 2006 | ||
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
6 December
Course Policies