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:
- Start work on the homework right after it is assigned, working until you get stuck. When you get stuck on one problem, put it aside and work on the others.
- Come by my office to discuss difficulties you are having with various problems.
- Using the hints & techniques from our discussion, go back and work on your own until you get stuck again.
- Come by my office (again) to discuss the problems, now that you have a greater understanding of the issues
- Work more on the problem on you own.
- Repeat (and repeat!), as necessary.
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.
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