Course Organization. Look at the
course web page and the various
items on it.
Introduction. Computer science: the study of
algorithms. What is an algorithm?
Answer: a set of rules for carrying out a computation.
OK, then, what is a computation?
Answer: there is a precise mathematical answer to this which we
will (sort of) get to late in the semester. For now, a computation
is what these computers all around us are doing.
Definition: algorithm (from Knuth, until we get to the mathematical
definition later).
"A finite set of rules which gives a sequence of operations
for solving a specific type of problem. An algorithm has five
important features:
Finiteness: Will terminate after a finite number of steps.
Definiteness: Each step must be precisely defined.
Input: Zero or more inputs.
Output: One or more outputs.
Effectiveness: Each basic step must be doable."
Algorithms are fiendishly difficult to understand. No one takes
them for granted. They are sensitive to the most
minute changes, which can be catastrophic,
in contrast with, say, an electric transformer, where small modifications
in the size of elements or the number of windings in a coil will
not keep it from working.
Logarithms.
See logs.
[Text, p. 56]
We will refer to items as needed.
Exclusive-or. See
xor. We will refer to items as needed.
The exponentiation algorithm. See
exponentiation.
[Text, pp. 956-7]