University of Nevada Las Vegas 
 Howard R. Hughes
College of Engineering 
 School of Computer Science 
 My Home Page
Computer Science 456/656
Automata and Formal Languages
Spring 2005
Revised January 19, 2005.
 

- 
Instructor:
- 
 Dr. Larmore 
- Office, TBE B378B.  Telephone, 702-895-1096, larmore@cs.unlv.edu
- Office Hours:
- 10:00 -- 11:00 Tuesdays and Thursdays.
- 
Contacting Me:
- It's best to send me email at 
larmore@cs.unlv.edu.  Be sure to write "CS456" (or "CS656")
in the subject field
so that I know what the message is about.  (I delete lots of messages
without reading them, based on the subject fields.)
- 
You may also telephone my office and leave a message.
- 
Please, never try to communicate with me by leaving notes on my
door, under my door, or in my mailbox in the department office, as
those notes get lost, and I can't retrieve them remotely.
- 
Graduate Assistant:
- Doina Bein.
- 
Days of Instruction:
- January 18, 2005 - May 5, 2005.
- 
Holidays:
- March 22 and March 24.
- 
Time of Instruction: 
-  11:30 - 12:45,
Tuesday and Thursday.
- 
Place of Instruction: 
-  TBE B174.
- 
Final Examination: 
- Tuesday, May 12, 10:10 AM.
- 
Textbook:
- 
Introduction to the
  Theory of Computation, by Michael Sipser. PWS. ISBN 0-534-95651-3.
- 
Prerequisites:
- 
CS 302 (Introduction to Data Structures) (Formerly CSC 269)
- 
MAT 351 (Discrete Mathematics II).
- 
Click here
if you did not take both
CSC 269 and MAT 351 at UNLV and receive a grade of "C" or better in
each of those two courses.
- 
Graduate Students:
- 
If you want graduate credit, you must enroll in 656, not 456.
- 
Compiler Construction:
- 
CS 456/656 is a prerequisite for CS 460/CS 678 (Compiler Construction).
- 
I do not advise you to take that course concurrently.
- 
Written Homework:
- 
will be assigned, collected, and graded.
You are permitted to discuss homework.
- 
Examinations:
- 
First examination will be March 3, 2005.
- 
Second examination will be (to be announced).
This course is arguably the most interesting in the Computer Science core
curriculum.  During this Semester, you will learn the accurate meanings of
a number of  terms that you have probably heard.  In some cases, you will
have to unlearn what you previously believed!  For example, you will learn
the following concepts:
- 
Automaton.
- 
Language.  (You may have thought you knew this one!)
- 
Grammar.  (You probably thought you knew this one, too!)
- 
Turing Machine.
- 
Universal Turing Machine.  The machine that can do anything that any
machine in this or any other universe could possibly do.  But, rather
slowly!
- 
NP-complete.  Almost everyone in computer science has heard this
term, but few can give a precise definition.
- 
Undecidability.  There are problems that are undecidable.  There are
propositions that are true but for which there is no proof.  I don't mean
no one has found a proof yet, I mean that no proof can exist at all!
There are problems, such as the halting problem, which cannot be solved
by any algorithm.  No future genius with a finite intellect will ever
find one, not in this (or any other) universe, ever, and I will prove
that to you.
- 
Computable.  There are functions which cannot be implemented by
any machine that could ever be built.
- 
"But they told the Wright brothers that a flying machine was
impossible."
- 
P = NP?  The most famous open question in all of computer
science.  What does this mean?  What does it mean in practical terms?

Detailed description of the CYK algorithm.
 
Homework  and
tests  from prior semesters are available.