\documentstyle[11pt,twoside]{article}
\input{defs-6045}
\begin{document}

\handout{sched}{Course Schedule (Tentative)}{January 31, 1992}

\newcommand{\shortschedule}{
	\newcommand{\details}[1]{}
	\newcommand{\staffonly}[1]{}
	\newcommand{\lecskip}{\smallskip}
	\newcommand{\recskip}{\smallskip}
	\newcommand{\quizskip}{\smallskip}
}
\newcommand{\longschedule}{
	\newcommand{\details}[1]{##1}
	\newcommand{\staffonly}[1]{##1}
	\newcommand{\lecskip}{\medskip}
	\newcommand{\recskip}{\medskip}
	\newcommand{\quizskip}{\medskip}
}

\newcommand{\week}[1]{\goodbreak\bigskip\noindent{\large\bf #1}}
\newcommand{\lecture}[1]{\goodbreak\lecskip\noindent{\bf #1}}
\newcommand{\recitation}[1]{\goodbreak\recskip\noindent{\bf #1}}
\newcommand{\quiz}[1]{\goodbreak\quizskip\noindent{\bf #1}}
\renewcommand{\reading}[1]{\\{\em Reading: #1}}
\newcommand{\homework}[1]{\\{\em #1}}
\newcommand{\topic}[1]{{\em #1}}

% \shortschedule
\longschedule

{\em The outline and associated reading assignments given here are tentative.}

\week{Week 0: Introduction}

\lecture{Lecture 1: Friday, Jan. 31} 
{\em (Lynch)} 
\topic{Introduction and overview.}
\details{Abstract models for computational processes.
Purposes:  to prove things carefully about what particular
computational devices can do.  Also general simulation results,
impossibility results.
Overview of models to be covered (fsa's, pda's, tm's,
complexity-bounded tm's).
Related classes of languages.
Rigor, proofs, a major theme of the course.
A couple of informal examples of fsa's.

Diagnostic and practice for some basic mathematical notions and
methods.
Sets, relations, functions.
Equivalence relations, partial orders.
Induction (several examples).
Pigeonhole principle.
Diagonalization.
Handouts: \\
1. Course description and policies \\
2. Schedule \\
3. Homework 1 
}
\reading{Martin: Introduction. Begin reading Part I.}
\homework{Homework 1 out.}

\week{Week 1: Math Preliminaries and Finite-State Machines}

\lecture{Lecture 2: Monday, Feb. 3} 
{\em (Rivest)}
\topic{Math foundations. Strings, languages, definitions, inductive proofs.}
\details{Overview, with pointers to book, of the mathematical
concepts needed for the homework.
Strings, languages.
Recursive definitions, inductive proofs.
Operations on languages, regular languages (just define, using regular 
expressions).
}
\reading{Martin: Chapters 1, 2, and 3. 
	 Alternate readings: Lewis and Papadimitriou: Chapter 1.
			     Hopcroft and Ullman, Chapter 1.
	}

\lecture{Lecture 3: Wednesday, Feb. 5} 
{\em (Rivest)}
\topic{Deterministic Finite-State Automata.}
\details{Formal definition of deterministic fsa's (dfa's).
Examples: string recognition, dead states.
Define language accepted by a DFA.
Dfa languages = those accepted by dfa's.
Determining emptiness of language. 
Show dfa languages closed under complement, intersection, union
(using product construction).
More examples.
Discuss how lots of operations on languages preserve dfa-acceptability.
Mention that DFA languages = regular expressions, but don't prove.
}
\reading{Martin: Chapter 4.
	 Alternate readings: Hopcroft and Ullman, sections 2.1--2.2.
			     Lewis and Papadimitriou, section 2.1.}

\recitation{Recitation 1: Wednesday, Feb. 5, Thursday, Feb. 6} 
{\em (Lynch)} 
\topic{Review of math foundations. FSA's.}
\details{Review of mathematical preliminaries.
Examples, applications of fsa's 
(string recognition, modelling a program, modular arithmetic).
Some basic proofs about fsa's, using induction.
}

\lecture{Lecture 4: Friday, February 7} 
{\em (Rivest)}
\topic{Working with finite-state automata.}
\details{Effective procedures on fsa's: 
Construction of automata for complement, union, intersection 
(product construction).
State minimization.
Deciding equivalence.
}
\reading{Martin: Chapter 7. Section 8.3.}
\homework{Homework 1 due. Homework 2 out.}

\week{Week 2: Finite-state machines.}

\lecture{Lecture 5: Monday, February 10}
{\em (Lynch)} 
\topic{Nondeterministic finite-state automata.}
\details{Nondeterministic finite automata (nfa's)
Informal discussion of nondeterminism.
Formal definition.
Definition of computation, language accepted.
Examples: substring recognition.
Prove half of Kleene's theorem:  show every regular language is accepted by
an nfa.
Begin other half of Kleene's theorem:  every nfa accepts a language that is
regular (actually dfa) - just state this and proof idea.
}
\reading{Martin: Chapter 5.
	 Alternate readings: Lewis and Papadimitriou section 2.1.
			     Hopcroft and Ullman sections 2.3--2.4.
}

\lecture{Lecture 6: Wednesday, February 12}
{\em (Lynch)} 
\topic{Subset construction (dfa's can simulate nfa's). DFA's are regular.}
\details{
Show Nfa languages are all dfa languages (subset construction).
Then begin proof that all dfa languages are regular. (Theorem 6.2)
(This complete Kleene's Theorem: DFA = NFA = REG.)
}
\reading{Martin: Section 5.3. Chapter 6.} 

\recitation{Recitation 2: Wednesday, Feb. 12, Thursday, Feb. 13} 
{\em (Rivest)}
\topic{}
\details{Finish Theorem 6.2 if necessary. Good example to work on
might be proving two-way automata are no better. }

\lecture{Lecture 7: Friday, February 14} 
{\em (Lynch)} 
\topic{Pumping lemma. Showing some languages are not regular.}
\details{}
\reading{Martin: Chapter 8, sections 8.1 and 8.2.
	 Alternate readings: Lewis and Papadimitriou, section 2.6.
			     Hopcroft and Ullman, section 3.1.}
\homework{Homework 2 due. Homework 3 out.}

\week{Week 3: Finite-state machines.}

\lecture{President's Day Holiday: Monday, Feb. 17}

\lecture{Lecture 8: Wednesday, Feb. 19} 
{\em (Rivest\staffonly{-- Lynch away})}
\topic{Applications of finite-state automata. Finite-state transducers.}
\details{Door locks in hotels.
	 Finite-state transducers: Moore and Mealy type (and equivalence).
	 Equivalence of expressions defined by equations.
}
\reading{None required. Possible handout.  
         Hopcroft and Ullman, sections 2.7--2.8, have a little on transducers.}
% circuits (from Halstead-Ward?);
% some finite-state protocol, with variables, etc.?
% Think-a-dot? Adventure?
% Life; cellular automata?

\recitation{Recitation 3: Wednesday, Feb. 19, Thursday, Feb. 20} 
{\em (Rivest)}
\topic{}
\details{}

\lecture{Lecture 9: Friday, Feb. 21} 
{\em (Rivest\staffonly{-- Lynch away})}
\topic{More applications of finite-state automata.}
\details{Finish equivalence of expressions defined by equations.
	 Regular expressions in UNIX (egrep).
	 Lexical analysis of a programming language (LEX).
}
\reading{None required. Possible handout.}
\homework{Homework 3 due. Homework 4 out.}

\week{Week 4: Context-Free Grammars and Push-Down Automata}

\lecture{Lecture 10: Monday, Feb. 24} 
{\em (Lynch)}
\topic{Context-Free Grammars. Push-Down Automata. Parsing.}
\details{Motivation: parsing, correspondence with stack machines, limited
expressive power of fsa's.
Formal definition.
Examples from compilation.
All regular languages are context-free but not conversely.
NPDA's vs. cfg's, top-down and bottom-up parsing.
(Show that all cfg's can be parsed, just state the converse.)
}
\reading{Martin: Chapters 9, 12, 14.
	 Alternate readings: Lewis and Papadimitriou, Chapter 3.
			     Hopcroft and Ullman, Chapters 4 and 5.
}

\lecture{Lecture 11: Wednesday, Feb. 26} 
{\em (Lynch)}
\topic{Working with context-free grammars.}
\details{Effective procedures for cfg's: determining membership and
emptiness.
State impossibility of deciding totality.  (Will prove later.)
}
\reading{Martin: Chapters 10, 11.
}

\recitation{Recitation 4: Wednesday, Feb. 26, Thursday, Feb. 27} 
{\em (Rivest)}
\topic{Chomsky Normal Form}
\details{Illustrate the conversion of a CFG to Chomsky Normal Form
by using exercist 11.5(a).}

\lecture{Lecture 12: Friday, Feb. 28} 
{\em (Lynch)} 
\topic{Pumping lemma. Some languages that are not context-free.}
\details{Showing languages are not context-free, pumping lemma.
Quiz practice handout.
}
\reading{Martin: Chapter 15.}
\homework{Homework 4 due.}

\week{Week 5: Computability Theory}

\lecture{Lecture 13: Monday, Mar. 2} 
{\em (Rivest)}
\topic{Pumping lemma for CFGs. Introduction to computability.  
Turing machines and models of computation.}
\details{Do pumping lemma for CFG's. (20 min).
Introduce Turing machines as a general model of computation.
}
\reading{Martin: Chapters 16, 17.}

\lecture{Lecture 14: Wednesday, Mar. 4} 
{\em (Rivest)}
\topic{More models of computation.  Simulation of one model by another.}
\details{More general computation models.
General (sequential) computational models: mention TM's, RAM's,
2-stack machines, etc.  More general than fsa's and pda's.  Maybe more
on 2-stacks.  Formal definition of Turing machines, variations
(several tapes, several heads, etc.)  Various simulation results.So
far, the models are low-level, abstract, little structure, easy to
prove things about.  Tension: sometimes preferable to have model
that's more structured, more expressive, to allow easy description of
real programs.  Leads to more ``realistic'' models like RAMs (define,
outline equivalence proofs), programming-language oriented models
(based on Scheme, other languages).  Sketch simulations between
programs (e.g., in Scheme) and abstract machine models.  Church's
thesis.  }
\reading{None required.  Chapters 21 and 22 have some relevance, but
	may not be directly relevant.}

\recitation{Recitation 5: Wednesday, Mar. 4, Thursday, Mar. 5} 
{\em (Lynch)} 
\topic{Quiz review.}
\details{}

\quiz{Quiz 1:  Thursday, Mar. 5}
This quiz covers all material up through and including Lecture 12.

\lecture{Lecture 15: Friday, Mar. 6} 
{\em (Rivest\staffonly{ -- Lynch away})}
\topic{Nondeterministic TM's. Language acceptance.}
\details{Notions of external behavior of general computability models.
Turing machine language acceptance (r.e. languages).
Nondeterministic TM's.
Language acceptance by NTM.
Equivalence of deterministic and nondeterministic language classes
(dovetailing). \\
}
\reading{Martin: Chapter 16.}
\homework{Homework 5 out.}

\week{Week 6: Computability Theory}

\lecture{Lecture 16: Monday, Mar. 9} 
{\em (Lynch)}
\topic{R.E. languages.  Recursive functions. Properties.}
\details{
Turing-decidability (recursive languages)
Turing-computable functions (recursive functions).
Examples based on bit string computations.
Extension of defs to different data types (integers, grammars,
machines) via encodings; extension to multiple arguments.
Uniformity.
More examples, e.g., based on integer computation,
fsa and cfg computations,
multi-argument examples, e.g., uniform membership problem for cfg's.
Relationships between r.e., recursive, computable.
Closure of recursive languages under complement, union, intersection.
Decidable if and only if r.e. and co-r.e.
Partial recursive functions
Partial recursive iff graph is r.e.
R.e. iff domain of prf iff range of a prf.
``Enumeration'' view of r.e.
Recursive iff enumerable in increasing order.
}
\reading{Martin: Chapter 18.}

\lecture{Lecture 17: Wednesday, Mar. 11}
{\em (Lynch)}
\topic{Undecidability. General discussion and examples.}
\details{Undecidability.
Overview.
Describe some useful general questions about programs that would be
nice to answer (halting, equivalence, computing a particular function).
Point out same questions are decidable for fsa's (what to say about
cfg's here?).
Define a basic halting problem formally (specific encoding of TM's or
programs, state names chosen from canonical set, etc.).
Proof of undecidability using diagonalization.
}
\reading{Martin: Chapter 20.}

\recitation{Recitation 6: Wednesday, Mar. 11, Thursday, Mar. 12} 
{\em (Rivest)}
\topic{}
\details{}

\lecture{Lecture 18: Friday, Mar. 13} 
{\em (Lynch)} 
\topic{Blank-tape halting problem.  Reductions. Other undecidable problems.}
\details{More undecidable problems about machines and programs.
Proofs using reducibilities.  
Blank-tape halting problem.
Many-one reducibility and its properties, used in these examples.
Emptiness problem, totality, equivalence.
}
\reading{Martin: Chapter 20.}
\homework{Homework 5 due. Homework 6 out.}

\week{Week 7: Computability Theory}

\lecture{Lecture 19: Monday, Mar. 16} 
{\em (Rivest)}
\topic{Rice's Theorem.  Consequences and discussion.}
\details{Rice's Theorem.
Lots of corollaries.
Clarify what it does and does not say.
}
\reading{Handout? Alternate reading: Hopcroft and Ullman, Section 8.4.}

\lecture{Lecture 20: Wednesday, Mar. 18} 
{\em (Rivest)}
\topic{More undecidable problems.}
\details{Totality for TM's, a non-r.e. and non-co-r.e. language. \\
Undecidability results about context-free grammars.
Totality for CFG's (nice argument, foreshadows later complexity-theory
constructions (completeness of SAT, Meyer's lower bounds).
}
\reading{Martin: Chapter 20. 
	 Alternate reading: Hopcroft and Ullman, section 8.6.
}

\recitation{Recitation 7: Wednesday, Mar. 18, Thursday, Mar. 19} 
{\em (Lynch)} 
\topic{}
\details{}

\lecture{Lecture 21: Friday, Mar. 20} 
{\em (Lynch\staffonly{ -- Rivest away})}
\topic{More undecidability results on context-free grammars.}
\details{Finish totality.
Equivalence, ambiguity.
Based on Post Correspondence Problem (just state).
}
\reading{Martin, Chapter 20.
	 Alternate reading: Hopcroft and Ullman, section 8.5.
}
\homework{Homework 6 due. Homework 7 out.}

\week{Spring Vacation: Monday, March 23 - Friday, March 27}

\week{Week 8: Computability Theory}

\lecture{Lecture 22: Monday, Mar. 30} 
{\em (Lynch\staffonly{ -- Rivest away})}
\topic{Two undecidable problems: Post Correspondence Problem. Tiling.}
\details{Undecidable problems from other areas (not just machines 
and programs). 
Post Correspondence Problem.
Tiling.
}
\reading{Martin, Chapter 20.}

\lecture{Lecture 23: Wednesday, April 1} 
{\em (Rivest)} 
\topic{Undecidability and Mathematics.}
\details{--- needs work ---
Undecidability and theorem-proving. \\
The general program of trying to give general procedure for
enumerating all the true theorems of mathematics.
Godel's incompleteness theorem, diagonalization proof.
Mention Hilbert's 10th, undecidable, give reduction proof that true
sentences of FOA are not r.e.
}
\reading{Handout?}

\recitation{Recitation 8: Wednesday, April 1, Thursday, April 2}
{\em (Rivest)} 
\topic{}
\details{}

\lecture{Lecture 24: Friday, April 3} 
{\em (Rivest)} 
\topic{Hardness, completeness with respect to a reducibility.}
\details{Many-one completeness, in particular.
Examples.
Maybe mention Turing reducibility, Turing completeness, degrees of
unsolvability, etc.
Quiz practice handout
}
\reading{Handout?}
\homework{Homework 7 due.}

\week{Week 9: Complexity Theory}

\lecture{Lecture 25: Monday, April 6}
{\em (Lynch)} 
\topic{Introduction to complexity theory.  Time classes.}
\details{Introduction.
Multitape TM.
Time complexity.
Examples.
Time classes closed under complement.
Constant speedup.
Approximate bounds, O notation
Examples.
}
\reading{Martin: Chapter 23.}

\lecture{Lecture 26: Wednesday, April 8}
{\em (Lynch)} 
\topic{Polynomial time (P).}
\details{Classification of problems by TM complexity, by order of magnitude on
multitape TM's.  Can give several examples. \\
Time-bounded simulations - reexaming earlier constructions to see
they're time-bounded (poly).
P, a robust class (because of the simulations).
Examples of problems in P: from graph theory, number theory, language
theory, logic.
}
\reading{Martin: Chapter 23.}

\recitation{Recitation 9: Wednesday, April 8, Thursday, April 9}
{\em (Rivest)}
\topic{Quiz review.}
\details{}

\quiz{Quiz 2: Thursday, April 9}
This quiz covers all material up to and including the material of
Lecture 24.

\lecture{Lecture 27: Friday, April 10} \\
{\em (Rivest\staffonly{ -- Lynch away})}
\topic{More problems in P.}
\details{More P problems, more problems with specific bounds.
Some problems with higher upper bounds (like SAT, VC, clique, etc.).
}
\reading{None required.}
\homework{Homework 8 out.}

\week{Week 10: Complexity Theory}

\lecture{Lecture 28: Monday, April 13}
{\em (Rivest)}
\topic{Provably hard problems.  Complexity hierarchy.}
\details{Time-bounded halting problem, diagonalization proof 
that provably hard problems exist.
Leads to construction of a proper complexity hierarchy.
}
\reading{Handout.}

\lecture{Lecture 29: Wednesday, April 15}
{\em (Rivest)}
\topic{``Natural'' hard problems.}
\details{Existence of provably infeasible non-machine problems - something from
logic or language theory, e.g., Albert's work on extended regular
expressions.
}
\reading{Handout.}

\recitation{Recitation 10: Wednesday, April 15, Thursday, April 17}
{\em (Lynch)} 
\topic{}
\details{}

\lecture{Lecture 30: Friday, April 17}
{\em (Rivest)}
\topic{Polynomial-time reducibility between problems.}
\details{Polynomial time reducibility (many-one).
Examples.
(Do NP only after spending some time on higher deterministic
complexity classes and reductions.)
Do some of the Karp reductions just as reductions, 
just showing how complexity is the same to within a polynomial,
without considering nondeterminism.
E.g., show SAT reducible to 3SAT, Clique, so that if they're in P so
is SAT.  Also, any other bound carries over.
}
\reading{Handout.}
\homework{Homework 8 due. Homework 9 out.}

\week{Week 11: Complexity Theory}

\lecture{Patriot's Day Holiday:  Monday, April 20} 

\lecture{Lecture 31: Wednesday, April 22}
{\em (Lynch)} 
\topic{Nondeterministic polynomial time (NP).}
\details{Many of the problems we have considered with exponential upper bounds
have common style - guess and verify.
Show this with examples.
Corresponds to nondeterministic TM's.
Define NP.
A subclass of exponential time.
Give lots of examples.
}
\reading{Martin: Chapter 23.4}

\recitation{Recitation 11: Wednesday, April 22, Thursday, April 23}
{\em (Lynch)} 
\topic{}
\details{}

\lecture{Lecture 32: Friday, April 24}
{\em (Lynch)} 
{\bf Drop date. }\\
\topic{NP-completeness.  NP-completeness of satisfiability (SAT).}
\details{Define completeness in general, and
NP-completeness in particular.
Show SAT is NP-complete.
Discuss significance - hardest problem in NP, lots of other problems
in that class, etc.
But what is their complexity?  Unknown.
}
\reading{Martin: Chapter 24.}
\homework{Homework 9 due. Homework 10 out.}

\week{Week 12: Complexity Theory, Parallel machine models}

\lecture{Lecture 33: Monday, April 27}
{\em (Rivest)}
\topic{Other NP-complete problems.}
\details{SAT is not unique in being hardest.
By work already done, know 3-SAT, clique also have this property.
List several others, maybe prove one more.
If time, do relations between decision, search, and optimization problems.
}
\reading{Martin: Chapter 24.}

\lecture{Lecture 34: Wednesday, April 29}
{\em (Rivest)}
\topic{Space complexity.}
\details{Define. Relations between space and time. Hierarchy results.
LOGSPACE. PSPACE.}
\reading{Handout.}

\recitation{Recitation 12: Wednesday, April 29, Thursday, April 30}
{\em (Lynch)} 

\lecture{Lecture 35: Friday, May 1}
{\em (Rivest)}
\topic{Models of parallel computation.  PRAMs. Complexity measures
(number of processors and computation time).}
\details{And examples of parallel algorithms.
}
\reading{Handout.}
\homework{Homework 10 due.}

\week{Week 13: Parallel machine models}

\lecture{Lecture 36: Monday, May 4}
{\em (Lynch\staffonly{ -- Rivest away})} 
\topic{NC (Nick's class) as ``efficient parallel computation.''}
\details{Give examples of NC algorithms. Matrix multiplication?}
\reading{Handout.}

\lecture{Lecture 37: Wednesday, May 6}
{\em (Lynch\staffonly{ -- Rivest away})} 
\topic{Parallel computation thesis.}
\details{Sequential space = parallel time.}
\reading{Handout.}

\recitation{Recitation 13: Wednesday, May 6, Thursday, May 7}
{\em (Lynch)} 
\topic{}
\details{}

\lecture{Lecture 38: Friday, May 8}
{\em (Lynch)} 
\topic{P-complete problems.}
\details{Define log-space reducibility.
Define P-complete problems.
Give examples.
Argue why they are candidates for {\em not} having NC algorithms.
Wrapup, summary, pointers to further courses.
}
\reading{Handount.}

%% (Doesn't fit now):
%% Models for asynchronous concurrent systems.

\bigskip
{\noindent \bf Final Exam: Closed book. Exam week.}

\end{document}
