2 Chapter 1 Getting Started with Python
Breaking the steps of a long operation down into small, explicit substeps and anticipating
contingencies are the beginning of algorithmic thinking.
If your friend has had a lot of experience watching people drive cars, then the instructions above
may be sufficient. But a friend from Mars—or a robot—would need much more detail. For example,
the first two steps may need to be expanded to something like
Grab the wide end of the key.
Insert the pointed end of the key into the slot on the lower right side
of the steering column.
Rotate the key about its long axis in the clockwise direction
(when viewed from the wide end toward the pointed end).
...
A low-level computer program provides instructions analogous to these in a language that a machine
can understand.
1
A high-level system understands many common tasks, and therefore can be
programmed in a more condensed style, like the first set of instructions above. Python is a high-level
language. It includes commands for common operations in mathematical calculations, processing text,
and manipulating files. In addition, Python can access many standard libraries, which are collections
of programs that perform advanced functions like data visualization and image processing.
Python comes with a command line interpreter —a program that executes Python commands
as you type them. Thus, in Python, you can type commands and execute them immediately. In
contrast, many other programming languages used in scientific computing, like C, C++, or fortran,
require you to compile your programs before you can execute them. A separate program called a
compiler translates your code into a low-level language. You then run the resulting compiled program
to execute (carry out) your algorithm. With Python, it is comparatively easy to quickly write, run,
and debug programs. (It still takes patience and practice, though.)
A command line interpreter combined with standard libraries and programs you write yourself
provides a convenient and powerful scientific computing platform.
1.1.2 States
You have probably studied multistep mathematical proofs, perhaps long ago in geometry class. The
goal of such a narrative is to establish the truth of a desired conclusion by sequentially appealing
to given information and a formal system. Thus, each statement’s truth, although not evident in
isolation, is supposed to be straightforward in light of the preceding statements. The reader’s “state”
(list of propositions known to be true) changes while reading through the proof. At the end of the
proof, there is an unbroken chain of logical deductions that lead from the axioms and assumptions to
the result.
An
algorithm
has a different goal. It is a chain of instructions, each of which describes a simple
operation, that accomplishes a complex task. The chain may involve a lot of repetition, so you won’t
want to supervise the execution of every step. Instead, you specify all the steps in advance, then
stand back while your electronic assistant performs them rapidly. There may also be contingencies
that cannot be known in advance. (If a crunching sound is heard, ...)
In an algorithm, the computer has a state that is constantly being modified. For example, it has
many memory cells, whose contents may change during the course of an operation. Your goal might
1
Machine code and assembly language are low-level programming languages.
Jump to Contents Jump to Index