Document URL: http://www.cs.arizona.edu/classes/cs473/fall08/


The University of Arizona

University of Arizona, Department of Computer Science Seal of The University of Arizona

Fall 2008

C SC/MATH 473
C SC/MATH 473H

Automata, Grammars and Languages


Time and Place C SC473 Section 001: TR 2:00-3:15, Modern Languages 311
Honors In addition to the lecture above, the honors section (002) meets:
C SC473H Section 002: T 4:00-4:50, Gould-Simpson 942
Description This course is an introduction to the fundamental models of computation used throughout computer science: finite automata, pushdown automata, and Turing machines. The hierarchical relationships among these models, their relative power and limitations, and their variants are studied. Student skills are developed in understanding and using rigorous definition and proof to attack precisely formulated questions about computability and computation. The only successful method known for learning these skills is by working challenging problems, therefore, heavy emphasis is laid upon student problem assignments. The course aims at improving students written communication skills, and serves as a writing emphasis course. The course explores models for and fundamental limitations of the computational process. Proof techniques, major results and computing applications of the results will all be stressed. The material in this course is used in later, more advanced computer science courses. For example, regular expressions and context free grammars are essential in the design of software such as compilers and text processors; and closure properties and nondeterminism are needed to explore inherent intractability (NP-complete problems). Thus every effort is made to (1) motivate concepts with example applications, (2) build a standard vocabulary of concepts and techniques the student will later use frequently, and (3) emphasize the algorithmic and constructive basis of the proofs of results (e.g., regular expression to finite automaton conversion; problem reductions). Topics covered include: finite automata and regular expressions, turing machines, properties of regular sets, Church's thesis, context-free grammars and pushdown automata, decidable and Turing-recognizable sets, properties of context-free languages, universal machines, parsing applications, undecidable problems and reducibility.
Prerequisite C SC 345: Analysis of Discrete Structures is a mandatory prerequisite. Without 345 or an equivalent from elsewhere (typically entitled "Discrete Mathematics") the likelihood of success in this course is small. We will need specific material and facts from the prerequisite course, experience with mathematical techniques and methods of thought introduced there, and the ability to use standard language and notation. It is assumed you are familiar with the following topics: trees, graphs, elementary algorithm analysis, induction, recurrence relations, and combinatorics.
Instructor Peter J. Downey
pete at cs.arizona.edu
(520) 621-2207
Gould-Simpson 739
Office Hour: TR 12:00-1:15 or by email appointment.
Teaching Assistants Qiyam Tung
qtung at cs.arizona.edu
(520) 621-4089
Gould-Simpson 710B
Office Hour: TR 3:30-5:00, W 10:00-11:00

Jordan Marshall
marshall at cs.arizona.edu
(520) 621-4089
Gould-Simpson 710B
Office Hour: MW 3:00-5:00
Text Available at UofA Bookstores.
Course Schedule
date event
Tue Aug 26 First class
Fri Aug 29 Last WebReg add (Change of Schedule form thereafter)
Mon Sep 1 Labor Day recess
Mon Sep 15 Census Day: last day to add units without penalty
Fri Sep 19 Last day to drop via WebReg (invisible drop)
Tue Oct 7 Midterm I (in class)
Fri Oct 17 Last day to drop (W or E grade)
Tue Nov 11 Veterans' Day recess
Tue Nov 18 Midterm II (in class)
Thu Nov 27 - Sun Nov 30 Thanksgiving Recess
Tue Dec 9 Last class
Thu Dec 11 Dead Day
Tue Dec 16 Final Exam: 2:00 pm - 4:00 pm, M LNG 311
Sat Dec 20 Commencement


Further calendar information can be found in the Fall 2008 Dates and Deadlines
Course Format Grades for this course will be based in the following items:
weight item
30% Homework (4-5 problem sets)
20% Midterm I
20% Midterm II
30% Final Comprehensive Exam
C SC Computer Lab Account

For Everybody: All students are required to fill out the web page entitled Account Service Request at URL www.cs.arizona.edu/~apply. Do so whether or not you already have an account, and whether you are a Computer Science major or not. (This updates a Department database with your course selections, and so you can be assigned a correct Computer Science ID (CSID) number).

Here is how to proceed:

For a student with a currently active account in C SC: At the web page, under Select the Action Desired, select UPDATE an OPEN account for new classes. Fill in other requested information. Read the Appropriate Use Guidelines at www.cs.arizona.edu/policies/computing.html before pushing ACCEPT.

For a student without a currently active account in C SC: To obtain a new account on the Department's instructional processor lectura, or to re-activate an existing account, use any machine to go to URL www.cs.arizona.edu/~apply. (During the first week of classes, the Department provides machines for this purpose in Room 930 Gould-Simpson Bldg.) At the web page, under Select the Action Desired, select either NEW account on CS systems, or RE-activate an EXISTING closed CS account. Fill in other requested information. Read the Appropriate Use Guidelines at www.cs.arizona.edu/policies/computing.html before pushing ACCEPT. Your registration information will be verified within a few minutes, and an account will be created for you, along with a keycard allowing round-the-clock lab access. The keycard will be available in Room 930 while the account registration machines are set up there, and thereafter at the Reception Desk in Academic Services, Room 917.

For Everybody: You will need to know your CSID. To find your CSID at any time, go to www.cs.arizona.edu/computing/services/csid.html. Enter your 9-digit Student ID (SID) without any hyphens, and push the submit button. Record your CSID for future reference. Grades will be posted using your CSID.

Note: Over the summer, all "old style" SIDs (UA Student IDs) that were based on social security numbers were replaced with new SIDs. Since CSIDs are based on SIDs, if your SID has changed, then so has your CSID. Please go to the above URL to discover your new CSID.

Students who have had an SID change must provide their new SID and CSID in order to perform any web-based account service at https://www.cs.arizona.edu/computing/services/

Policies

Each graded item, such as a homework or examination, is first awarded a raw score; raw scores vary with the number of questions, their difficulty, and their length. For each graded item, the raw score is then normalized to a ``traditional" scale in which 90 - 100 is an A, 80 - 89 is a B and 70 - 79 is a C. This normalized score appears on the report returned with each graded item.. For each graded item, only the normalized score is recorded. The final cumulative course grade is computed as a weighted average of these normalized scores, using the weights described under Course Format above. The resulting weighted average is then converted to a letter grade using the ``traditional" scale. Decisions on whether borderline scores (such as 79) will be recorded as the next highest letter grade will be made using (a) performance on the final examination and (b) evidence of accomplishment in the subject that is cumulative over the term.

Attendance is not enforced, but you are responsible for all material covered in lecture or assigned as reading or homework. Arriving late to class is rude and disruptive; if you cannot arrive on time, do not bother to come.

Without prior arrangements, missed exams result in a grade of zero. Homework is due at the start of class on the due date; late homework is not accepted.

It is assumed that: you have the prerequisites for this course, and their prerequisites, etc., recursively.

The instructor reserves the right to fail for the course any student failing the final comprehensive examination, irrespective of their final weighted average.

The content of this syllabus is subject to change at the discretion of the instructor.

Academic Integrity

Assignments in this course require individual attention and effort to be of any benefit. All work is expected to be that of each student alone, without consultation with others, without reference to borrowed solutions and not the product of team efforts or collaboration with other authors. Plagiarism is the incorporation of someone else's words or ideas without proper attribution, whether taken from another student, an author, the instructor's published solutions or the Internet. Plagiarism constitutes theft of intellectual property, and those who engage in it will receive the failing grade of ``E''. These and other provisions are governed by the University's Code of Academic Integrity which applies to all those in this course. It is a violation of the Code to use another person's solutions as your own, whether those solutions are taken from a student in this course, taken from solutions obtained from an earlier offering of this course, taken from the files of a student who took this course earlier, or taken from the Internet. A synopsis of the Code of Academic Integrity is attached as part of this syllabus.

Assignment Format

All written work submitted for credit must be prepared using a program capable of producing typeset output with the appropriate type faces, symbols and notation used in the theory of computation (e.g., TeX, LaTeX, troff, Microsoft Word + Equation). Do not submit handwritten work. However, figures and diagrams may be rendered by hand if neat and clearly labeled, although it is preferable to use a drawing tool like xfig, picasso, etc.

Rules for submitted work: Start each solution on a new page, repeat the problem statement, and number each page. Write on one side of the paper only. Submit answers in class on the due date using the name-labeled envelopes that will be provided in class. Do not seal the envelope, so that it may be reused. Write concise and clear solutions, since failure to communicate clearly will cost points whether or not the conclusion is correct. Remember that this is a Writing Emphasis Course, and work will be graded in part on the quality of your writing, not just on its technical content. All good writing is based upon revision. It is essential to revise your work before submission, and to consider whether your argument will be understandable to the reader. For example, it is never a waste of effort to explain the strategy you intend to use in a proof or construction, before beginning to present the work in technical detail. Think of the reader. Explain as if teaching a colleague in your class. Revise. Revise again.

Accommodation

Students with disabilities, who may require academic adjustments or reasonable accommodations in order to participate fully in course activities or to meet course requirements, must first register with the Disability Resource Center, 1540 E 2nd St, 621-3268, email drc@w3.arizona.edu, URL http://drc.arizona.edu. DRC staff will qualify students for services, and provide a letter to the instructor listing accommodations to be made. This letter should be submitted by the student directly to the instructor as soon as possible during the first week of classes. The student should meet as soon as possible with the instructor by appointment or during office hour to discuss accommodations and how course requirements and activities may impact the ability to fully participate in the course.

Syllabus
  1. Introduction: Overview of the course. Reasons to study theory of computation.
  2. Mathematical Background: Sets, relations, functions. Graphs and trees. Transitive closure and relational calculus. Boolean (switching) logic. Alphabets, words, and languages. Expressing computations and problems in terms of languages. Proof techniques. Mathematical induction.
  3. Finite Automata and Regular Expressions: Finite memory devices. Definition of finite automaton. Non-determinism and the Rabin-Scott Theorem. Regular Expressions, their conversion into finite automata, and vice versa. State minimization. Moore and Mealy transducers. Applications. Closure properties. Non-regular languages and the Regular Pumping Lemma
  4. Context-Free Grammars and Pushdown Automata: Grammars, derivation relations, and derivation trees. Ambiguity. Simplifying CFGs. Chomsky and Greibach normal forms. PDAs and DPDAs. PDAs and CFLs. Applications. Right-linear grammars and finite automata. Closure properties. Non-CF languages and the CF Pumping Lemma.
  5. Turing Machines: Definitions. Turing-decidable(Recursive) and Turing-recognizable (Recursively Enumerable) languages. Computable functions and partial computable functions. Programming the TM. Robustness. Church's hypothesis (Church-Turing thesis). Universal Turing machines. Algorithms. Closure properties.
  6. Hierarchical relationships: Pumping lemmas. Regular sets and right-linear grammars. The Chomsky hierarchy.
  7. Decision Problems: Decidable languages. Membership, cardinality, and equivalence testing of finite automata, context-free languages, and deterministic TMs. Reductions between problems. Halting Problem. Diagonalization. Turing un-recognizable languages. Undecidable problems. Reducibility.
Lecture Slides

When lecture slides are available, PDF versions will be placed here.

Homework

Exams Information about forthcoming examinations (e.g., topics, example questions) will appear here prior to the event.
Final Exam grades are posted below and outside Room 739 Gould-Simpson. Grades are posted by the LAST SIX DIGITS of your "Computer Science ID" (CSID). To obtain your CSID, visit www.cs.arizona.edu/computing/services/csid.html



http://www.cs.arizona.edu/classes/cs473/fall08/
Last updated 18 Dec 2008