CS 401 - Theoretical Foundations of Computer Science Computer Science Department University of New Mexico Fall 2007 |
Taught by:
Joel Castellanos
Office: Farris Engineering Center (FEC) 321
Office hours (Fall 2007): MWF 10:30-11:30, Tu 11:15-1:30 and by appointment.
e-mail: joel@unm.edu
This is not a lecture course, but one in which students actively precipitate in problem solving as a class and in small groups. There is a significant reading component aimed at presenting examples of proofs and problem solving at various levels of formality and that illustrate a wide verity of techniques. Emphasis will be placed on the communication of results by practicing to write proofs and problem solutions Clearly, Concisely, and Unambiguously.
Many of the problems examined will be from the subject area of computer science involving topics such as Deterministic and Nondeterministic Finite Automaton, Graph Coloring, and Context-Free Grammars. Other problems will be taken from Geometry, Algebra, Physics, Biology, Political Science, and wherever good problems can be found.
"Solving problems is a practical skill like, let us say, swimming. We acquire any practical skill by imitation and practice. Trying to swim, you imitate what other people do with their hands and feet to keep their heads above water, and finally, you learn to swim by practicing swimming. Trying to solve problems, you have to observe and to imitate what other people do when solving problems and, finally, you learn to do problems by doing them."-- George Polya (1887-1985) in How to Solve It (1945)
Excerpt from 7.2.3: Applications of the Pumping Lemma for Context Free Languages:
We use the CFL pumping lemma as an “adversary game” as follows.