Computer Science 456/656: Automata and Formal Languages
Fall 2003
Assignments
This page will be updated frequently.
Most recent update: December 12, 2003.
-
Background.
-
I will assume that you are familiar with the material in Sections 0.2
through 0.4 of your textbook, pages 3-27, since that material should have
been covered in the prerequisite courses. In practice, this means that
you should read these sections to make sure that you recall the material.
<\dd>
-
I recommend that everyone who is unsure of himself on this material
work Exercises 0.1 to 0.9 on pages 25-27 of your textbook. (But do not
hand them in.)
-
Tuesday, August 26, 2003.
- Lecture subject: regular languages and finite automata
-
Today's lecture will begin with a brief summary of Section 0.1 of your
textbook (pages 1-3). We will then begin the main subject of the first
portion of the course, regular languages and finite automata, starting
with Sections 1.1 and 1.2 of your textbook.
-
One of the fundamental themes of the course is that
a problem is a language. (Actually,
only 0/1 problems are languages, but that's a mere technicality.)
Additional discussion.
-
I will end the lecture a few minutes early today, in order to deal with
registration problems.
-
Thursday, August 28, 2003.
-
Today we will continue the discussion of finite automata.
-
Tuesday, September 2, 2003.
-
Turn in Assignment 1 at the beginning of class today.
(There is a correction in the assignment.)
-
We will discuss the equivalence of the three (so far) definitions of
regular language I have given. The complete discussion
will take more than one lecture.
-
We will start by introducing the concept of a
regular expression.
-
Thursday, September 4, 2003.
-
Today we will continue the proof of the equivalence of the different
definitions of a regular language. In particular, we will prove that
every NFA is equivalent to some DFA.
-
If time permits, we will show how to construct a regular expression from
a DFA, thus completing the proof of equivalence.
-
- Challenge for the top students:
Work these problems
by December 4.
-
Tuesday, September 9, 2003.
-
Today we will show how to minimize a DFA.
-
We will also go over some of the material of
Assignment 2 .
-
Thursday, September 11, 2003.
-
Turn in Assignment 2 at the beginning of class today.
-
Tuesday, September 16, 2003.
-
Today we will conclude our discussion of regular languages and finite
automata, and introduce the concept of context-free languages and
context-free grammars.
-
Thursday, September 18, 2003.
-
Today we will continue our discussion of context-free languages and
context-free grammars.
-
Today we will introduce a new class of machines called push-down automata
(PDA). A PDA is non-deterministic by definition.
A language is context-free if and only if it is accepted by some
push-down automaton.
-
Tuesday, September 23, 2003.
-
Assignment 2 has been graded. You may pick
up your graded assignment in the CSC office, room TBE A211,
during regular business hours Friday, September 19, or Monday, September 22.
Carmen or Neal will have the envelope.
-
Examination today.
Mostly, the test will be on regular languages and DFAs, but there will
be something about context-free languages and grammars.
-
Thursday, September 25, 2003.
Today we will hand back the test, and continue our discussion of
context-free languages and parsing.
-
Tuesday, September 30, 2003.
-
Thursday, October 2, 2003.
Turn in Assignment 3 at the beginning of class today.
Today we will begin the discussion of both pumping lemmas.
-
Tuesday, October 7, 2003.
Today we will prove both pumping lemmas (the pumping lemma for
regular langauges and the pumping lemma for context-free languages) and
use both them in proofs. This normally takes up two lectures, but I will,
by explaining it more clearly than ever before, do it all in one lecture.
-
Thursday, October 9, 2003.
Today, Doina will discuss solutions to past homework problems.
-
Tuesday, October 14, 2003.
Today, we will introduce the concept of a
general grammar. There are
two other names for a general grammar in common use, "unrestricted grammar"
and "phase-structure grammar." They all mean the same thing.
The concept of a "general grammar" is very simple. There are specialized
classes of grammars used in practice which are very complex (see, for
example, Pagan's book on grammars), but any language
generated by one of those is generated by some general grammar.
Practically every language you'd ever care about has a general grammar.
But not all:
-
Let P be the set of all Pascal programs. (A computer program is a string.)
Then P has a general grammar.
In fact, every programming language used in practice has a general grammar.
-
Let L be the language of all strings of the form pw, where p is a Pascal
program and w is a string of symbols (which will be used as input for
the program p). To make the point where p ends and w begins unambiguous,
we insist that every Pascal program p end with a special "end-of-file"
symbol which appears nowhere else in p. (This is certainly true in
practice, as, in most systems, all files are supposed to end with
an end-of-file symbol.) Then L has a general grammar.
-
Let Lhalt be the subset of L consisting of all pw such
that the program p halts if w is its input file.
Then Lhalt has a general grammar.
-
Let Lnothalt be the subset of L consisting of all pw such
that the program p does not halt if w is its input file.
Then Lnothalt does not have a general grammar.
-
Every decidable
language has a general grammar. (Note that every
programming language used in practice is decidable, because the compiler
or interpreter has to decide whether what you wrote is a valid program.)
The converse is false: for example, Lhalt has a general grammar,
but is still undecidable.
-
Today we will give a quick overview of the subject of computability,
which is the main subject of the course.
-
Thursday, October 16, 2003.
Turn in Assignment 4 at the beginning of class today.
Today we will discuss some of the problems of Assignment
4 in detail.
If time permits, we will begin, in detail, what is actually the main part of
the course: computability, which includes decidability.
-
Tuesday, October 21, 2003.
Today we will continue the discussion on Turing machines.
-
Thursday, October 23, 2003.
Today we will go over some problems on past homework assignments.
-
Tuesday, October 28, 2003.
Turn in Assignment 5 at the beginning of class today.
I will be in my office after 6:45 this evening for a while.
Today, we will review material that will be on Thursday's exam.
-
Thursday, October 30, 2003.
Examination today. The material of the examination will include everything
covered in class up through the last lecture. There will be an emphasis
on material covered since the last examination, but earlier material will
also be represented. Study Guide.
-
Monday, November 3, 2003.
The exams are graded. If you want your grade by email,
please send me a message requesting that. Be sure to write "CSC 456"
or "CSC 656" in the subject field.
-
Tuesday, November 4, 2003.
Today I will hand back the exam and go over it.
-
Thursday, November 6, 2003.
Today we will continue the discussion of recursive enumerability,
decidability, the diagonal language, and the universal language.
That means that today's lecture is the heart of the course.
-
Tuesday, November 11, 2003.
Veterans' Day Recess.
-
Thursday, November 13, 2003.
Some students gave me tests for regrading. If you have not recevied an
email message from me, I have not regraded it, because it was not clear to
me what your complaint was. Please send email explaning it to me, or
see me before class.
Today we will review the issue of undecidability.
This lecture will be a condensed repetitition of last Thursday's lecture,
together with some related material we discussed earlier.
Later, I will expect you to be able to guess (correctly, most of the time)
whether a given problem is undecidable.
-
Tuesday, November 18, 2003.
Today we will conclude the detailed repetition of the ``heart" of the
course. Everything said in lecture tooday will be a repetition of
the most important material of certain previous lectures.
-
Thursday, November 20, 2003.
Turn in Assignment 6 at the beginning of class today.
Cartoons referring to NP-completeness.
-
Tuesday, November 25, 2003.
Today we will cover some
major theorems dealing with
NP-completeness.
It is also missing the proof that the independent set problem is NP-complete,
given that 3CNF-sat is NP-complete, but I hope to type that in by Saturday.
-
Thursday, November 27, 2003.
Thanksgiving Recess.
The file containing a summary of material
from the lecture of Tuesday, November 25 is now available. It contains
the proof that 3CNF-sat is NP-complete, given that Boolean Satisfiability
is NP-complete, but is missing the proof that Boolean Satisfiability
is NP-complete. I am not sure when I will put that proof in, as I am
still thinking about the best way to present it.
-
Tuesday, December 2, 2003.
Today there will be student evaluations of teaching performance,
conducted by a staff member. I will delay coming to class for approximately
10 minutes so students can write their evaluations when I am not in the room.
The file containing a summary of material
from the lecture of Tuesday, November 25 is being expanded to cover the
material of today's lecture. I hope to have that task finished by class
today (actually, by 11 am, today) except for "typos." The first draft of
every manuscript contains errors, unless the writer is one of those very
unusual persons, such as the mathematician Halmos, or the fictional Law
professor in "Paper Chase," who never makes mistakes. (Halmos, reviewing
the first printing of his book, located that a capital "I" was upside down,
which he could tell since the serifs are not symmetric. Such a mistake
was possible in the era of "hot type," which started with Gutenberg and
ended less than 30 years ago.)
As a student of the class, you are obligated to send me email
if you notice a typo.
Be sure to include your name, and use an email address that works, i.e.,
so I won't get a "can't find" message back from your service provider.
The reason is that corrective action usually requires some back-and-forth
communication to identify the exact problem and verify correction.
At the present time, Tue Dec 2 10:45:42 PST 2003, I will post
the proof of the theorem that Lsat is NP-complete, which
is numbered Theorem 6 in the current version
of the NP handout.
-
Thursday, December 4, 2003.
- Challenge for the top students:
Work these problems
by today. Each student enrolled in CSC 656 must
turn it at least one of these problems.
-
Tuesday, December 9, 2003.
Final Examination, 6:00 PM.
Read the study guide for the final.
-
Thursday, December 11, 2003.
As I proved, or at least stated, in class, problems 6(a) and 9 on the
final examination are ungradable, i.e., the set of all correct answers
to either of those problems is undecidable.
In some cases, it is easy to determine whether the given answer is
right or wrong. In other cases, the grader loops forever.
I feel like I'm caught in a giant infinite loop grading some of your
answers to problem 9. :-(
-
Friday, December 12, 2003.
Grading problem 9 is very slow. I have been spending as much as 15 minutes
on each paper, despite the fact that there is a correct answer with only
five states.
I've already graded the other problems. I'm getting close to finishing
with the final exam, but it is unlikely that the grades will be ready today.
If you want your grade this weekend, send me email. Be sure to write the
string "CSC 456" or "CSC 656" in the subject header. Be sure to include
your student ID or other identifying information. It is best to use
your engineering account, rather than hotmail or aolonline, or whatever,
so I can really be sure it's you.
Sending a second message reminding me is pointless, since I will answer
all these messages at once when the grades are ready, by scanning my inbox
for messages that have "456" or "656" in the subject header, provided they
were sent on Tuesday Dec 9 or later. Since the grades MUST be at the
registrar by Tuesday, Dec 16 at 9am, that's an absolute deadline for me.

Back to
Course Page