Computer Science 411: Automata Theory

Fall 2015 Syllabus         Class # CS-411-01

Time: MWF 10:30-11:35
Location: LS G12
Professor: David Galles
    Office: HR 542
    Office Hours: TR 10-12 or by appointment
                        Though these are my stated office hours, I am in my office most of the day.
                        If my door is open (and it usually is), I am happy to talk with students.
    Phone: 422-5951
    Email: galles@usfca.edu

Text:
     Required: Lewis & Papadimitriou, Elements of the Theory of Computation, 2nd edition

Prerequisites:
        CS 245 - Data Structures and Algorithms
        Math 201/202 Discrete Mathematics
      
Grading Policy:
      Grades will be given according to scores on written homework assignments, midterms and finals, according to the following percentages.  

Assignment  Percentage Date
Homework     40% Weekly
Midterm 1     15%     10/7/2015
Midterm 2     15% 11/18/2015
Final     30% Monday, December 14th, 2015, 10:00 AM-12:00 PM.


     Grades will be on a straight scale, with approximately:

A  90% and above
B  80%-89%
C  68%-79%
D  62%-67%
F   61% and below

     These are percentages are upper limits -- thus a score of 90 is guaranteed to get at least an A-, 80 is guaranteed to get at least a B-, and so on.  

Academic Honesty:
     You are not allowed to use resources other than those approved by me for completing your homework.  Specifically, you are not to use homework solutions from previous iterations of this course.  If you have access to old solutions, throw them out now!!  If you get perfect scores on the 25% of the questions that are repeated, and flail on the 75% of the questions that are new, you will raise a red flag.  You are also not allowed to search the web for solutions to the homework problems.   You may discuss problems with other students, but each student must write up the solutions on his or her own. You should never look at the solution of another student.

Homework
     The homework assignments for this class are conceptually difficult.  In fact, I will be assigning homework that I do not expect you to be able to complete on your own!  To succeed in the homework for the class, you must:

Note that for this strategy to work, you need to start on the homework assignments soon after they are they are assigned, especially since homework will be due weekly.  I am expecting a large amount of work from you – but I am willing to give a large amount of assistance in return.

Finals and Midterms
    Both midterms and the final will be closed notes. If you have a conflict with the midterm dates and times, see me now to see if we can work something out.  Requests to change midterm dates after the first week or two of class will be politely and respectfully refused.  The final date cannot be changed except under extraordinary circumstances.  Conflicting airline reservations are not extraordinary circumstances.

Late Policy
     Homework is due by the start of class on the due date. Late homeworks WILL NOT BE ACCEPTED.  If you have difficulty with an assignment, or some type of time conflict, the correct time to see me is before it is due.  

Topics to be covered (tentative):

    Mathematical Tools
        Set Theory
        Functions & Relations
        Formal Languages
        Proof techniques

    Finite Automata
        Deterministic Finite Automata (DFA)
        Non-Deterministic Finite Automata (NFA)
        Regular Expressions
        Equivalence of DFAs, NFAs, and Regular Expressions
        Non-regular languages
             pumping lemma

    Context-Free Languages
        Context-Free Grammar (CFG)
        Parse Trees
        Push-Down Automata (deterministic & non-deterministic)  (PDA)
        Equivalence of CFGs and PDAs

    Turing Machines
        Definition of a Turing machine
        Extensions of Turing machines
        Non-Deterministic Turing machines
        Equivalence of various Turing machine formalisms

    Undecidability
        Church-Turing Thesis
        Universal Turing Machines
        Halting Problem
        Other unsolvable problems
 
    Computational Complexity & NP-Completeness
        the class P
        the class NP
        Reductions
        the class NP-Complete

    Dealing with NP-Completeness