CS 401 - Theoretical Foundations of Computer Science Computer Science Department University of New Mexico Fall 2007 |
Taught by:
Joel Castellanos
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.
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.
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
Course Description
The primary objective of this course is to help students become better Problem Solvers.
"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)
Required Reading Selections
Optional Reading Selections
Introduction to Automata Theory, Languages, and Computation, by John Hopcroft, Rajeev Motwani, Jeffrey Ullman
Notes