CS310
Theoretical Computer Science
Course Syllabus
Fall 2008
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
- Understand computational models such as Finite Automata, Pushdown
Automata, and Turning Machines.
- Understand formal language counterparts of these computational
models, such as regular languages, context-free languages and recursive
languages.
- Understand time complexity and Class P and Class NP.
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-3041
Office
Hours:
M
10:30 am – 11:30 am
T
11:00 am – noon
W
2:00 pm – 3:00 pm
Th
4:00 pm – 5: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/cs310f08/
Course
Assessment
Grade Distribution
Homework |
20% |
Unannounced Quizzes
|
5%
|
Exam 1 |
25% |
Exam 2 |
25% |
Final |
25% |
|
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
- Midterm 1: Monday, September 29, 2008.
- Midterm 2: Monday, November 3, 2008
Date of Final
- Final Exam: Tuesday, December 5, 8:30AM-11:00AM
Other Dates
1 September
Labor day holiday (no classes)
8 September
Last day to add courses. Last day to
drop courses with no record
3 October No
classes (Arts & Sciences)
3 November
Last day to withdraw from courses
26-28
November Thanksgiving break (starting at Noon
on the
26nd)
3 December
Reading
day
Course
Policies
- Assignments are to be submitted by the beginning of class
on the day in which the assignment is due. Late assignments will not be accepted.
Both mathematical
proofs and programming assignments often take longer than expected to
complete. Start your assignments early.
- A programming that does not successfully compile or produces no
output loses 70% of the assignment grade.
- If
you have a complaint regarding a grade on an assignment or exam, write
a one paragraph description of why you feel the grade is incorrect and
deliver it to the instructor. The paragraph must be delivered to the
instructor within one calendar week of when the graded material is
returned to the student.
- No early or late exams/finals will be given.
- No incompletes will be given.
- The cheating policy is defined in Pacific Stuff & the
Pacific Catalog as well as the Academic Policy that each of you signed
upon entering Pacific University. Be sure you read or reread this
policy carefully. All code written for our course is to be an original
design and an original implementation. The Web, textbooks, and any
other references are simply references for you. Copying source code
from any source is prohibited. Further, source code is not to exchange
hands in any form or by any medium except when sending your solutions
to the instructor. It is OK to share high level ideas during the design
phase, help someone in the class fix a bug occasionally, share
information dealing with OS issues, debugger issues, in general,
development issues that do not involve code writing.
- Sanctions that may be imposed for academic dishonesty are:
- First offense for cheating on an exam: zero on the exam.
- First offense for cheating on a programming assignment or
written homework: zero on the assignment and 10% subtracted from your course total.
- Second offense for cheating of any kind: `F’ in the course
- All code in any form generated from this course becomes the
intellectual property of Pacific University. You may not share this
code with anyone without obtaining written permission from Pacific
University.
- Neither computer failure, software failure, nor lack of computer
access are accepted as excuses for late programs; therefore, start work
on the programs as soon as they are assigned, don't put them off until
the last minute. Further, corruption of programs due to bad disk media
is also not accepted as an excuse for late programs; therefore, always
keep a current backup of all programs on a separate disk.
- The instructor reserves the right to raise or lower a student's
grade based on class participation and
attendance.
- I do not want to hear any electronic devices go off during
lecture; therefore, make sure you silence these devices before lecture
starts.
- Your
attendance is expected at each class meeting. It is in your own
best interest to attend class, as your grade will almost certainly
suffer indirectly if you choose not to attend. In addition, I reserve
the right to consider attendance in instances of borderline grade
assignments. Of course, excused absences (sickness, family emergencies,
varsity athletic participation) will not be held against you. Scheduled
absences should be communicated to me well in advance. If you must miss
a class, be sure to check with me or another student to get what you
missed. Exams will be given in class on the day scheduled and may not
be made up. The material in the course is, by necessity, cumulative. Be
warned that if you fall behind, you will not be able to catch up
easily.
- If
you have a documented disability covered under the
ADA
then
services and accommodations are available from LSS
(Learning Support Services). If you need reasonable accommodations to
fully participate in course activities or meet course requirements, you
must contact Edna K. Gehring, Director of
LSS
, at
X2107. She will meet with
you, review the documentation of their disabilities, and discuss the
services Pacific offers.