This course covers the basics of finite automata,
context-free languages, Turing machines, computability. Finite automata are used in the
lexical analysis part of a compiler, and are also used for string matching, and for simple
AIs in video games. Context-free languages are used for parsing in compilers. XML is a currently
trendy language for defining essentially context-free languages. Computability is the study
of what it is possibility to get a computer to do. In computability theory, we use an abstract
model of a computer called a Turing Machine. By the end of this course, in terms of machine
models, you should be
able to construct and use regular expressions, deterministic, and nondeterministic finite automata.
You should know how to construct and use context free grammars and push-down automata. Finally,
you should know how to construct and use simple Turing machines. In terms of what you should know
how to do with these models by the end of the course you show know:
how to use pumping lemmas to show non-membership in a language category,
how to turn a non-deterministic finite automaton into a deterministic one,
how to minimize a deterministic finite automaton, know the closure properties
of the different language categories in the Chomsky hierarchy, be able to classify
problems as decidable or not, and know the basics of Komolgorov complexity.

Below is a tentative time table for when we'll do things this quarter:

Grades will be calculated in the following manner: The person or persons with the
highest aggregate score
will receive an A+. The lowest scoring person with a score above 55 will be
the cut-off for a C-. That is,
that person will receive a C-, but no one below him will. The region between
this high and low score will be
divided into eight equal-sized regions. From the top region to the low region,
a score falling within a region
receives the grade: A, A-, B+, B, B-, C+, C, C-. If the boundary between an
A and an A- is 85, then the score
85 counts as an A-. Scores below the lowest C- but above 50 receive the grade D.
Those below 50 receive the
grade F.

If you do better than
an A- in this class and want me to write you a letter of recommendation, I will generally
be willing provided
you ask me within two years of taking my course.
Be advised that I write better letters if I know you to some degree.

Links to the current list of assignments can be found on the left hand frame of the
class
homepage. After an assignment has been returned a link to its solution (based on the best student
solutions) will be placed off the assignment page. Material from assignments may appear on midterms and
finals. **For homeworks you are encouraged to work in groups of up to three people.
Only one person out of this group needs to submit the homework assignment; however,
the members of the group need to be clearly identified in all submitted files.**
Homeworks for
this class will be submitted and returned completely electronically. To submit
an assignment click on the submit homework
link
for your section on the left hand side of the homepage and filling out the on-line
form.
Hardcopies or e-mail versions of your assignments will be rejected and not receive
credit. Homeworks will always be due by the start of class on
the day
their due. Late homeworks will not be accepted; however, your low homework score will
be
dropped.

When doing the programming part of an assignment please make sure to adhere to the
specification given as closely as possible. Names of files should be as given, etc.
Failure to follow the specification may result in your homework not being graded and
you receiving a zero for your work.

You are required to write up your homework solutions for this class using LaTeX.
LaTeX is the standard tool for typesetting theoretical computer science articles. One
point of each assignment will be that your LaTeX file compiles without errors.

The midterms will be during class time on:
Feb 20 and Apr 12.

The final will be: Friday, May 19 from 9:45am to 12:00pm for Sec3 and Monday, May 22 from 12:15pm to 2:30pm for Sec5.

All exams are closed book,
closed notes and in this classroom. You will
be allowed only the test and your pen or pencil on your desk during these
exams. Beeper or cell-phone interruptions will result in immediate excusal
from the test. The final will
cover material from the whole quarter although there will be an emphasis on
material after the last midterm. No make ups will be given. The final exam
may be scaled to replace a midterm grade if it was missed under provably
legitimate circumstances. These exams will test whether or not you
have mastered the material both presented in
class or assigned as homework during the quarter. My exams usually consist
of a series of essay style questions. I try to avoid
making tricky problems. The week before each exam I will give out a
list of problems representative of the level of difficulty of problems the
student will be expected to answer on the exam. Any disputes concerning
grades on exams should be directed to me, Professor Pollett.

The campus policy to ensure compliance with the Americans with Disabilities Act is:

"If you need course adaptations or accommodations because of a disability, or if you need special arrangements in case the building must be evacuated, please make an
appointment with me as soon as possible, or see me during office hours. Presidential Directive 97-03 requires that students with disabilities register with DRC to
establish a record of their disability."

More information about SJSU policies and procedures can be found at the following links: