  These are notes for the course CS-172 I first taught in the Fall 1986 at UC
Berkeley and subsequently at Boston University. The goal was to introduce the
undergraduates to basic concepts of Theory of Computation and to provoke their
interest in further study. Model-dependent effects were systematically ignored.
Concrete computational problems were considered only as illustrations of
general principles. The notes are skeletal: they do have (terse) proofs, but
exercises, references, intuitive comments, examples are missing or inadequate.
The notes can be used for designing a course or by students who want to refresh
the known material or are bright and have access to an instructor for
questions. Each subsection takes about a week of the course.
