CS35: Quiz 4
CS35: Programming
and Problem Solving
Ray Ontko
Department of Computer
Science
Earlham College
This quiz is meant to help you start reflecting on the
foundational principles of this course, indeed of computer science
as a discipline. Your performance on this quiz does not affect your
grade in the course. it is meant only to inspire reflection and
dialogue.
For each of the following quotations, indicate whether
you think the statement is true or false. Be prepared to
defend your answer. In other words, state whether you agree with
the author of the statement, and why you do or do not agree.
- Before we can write a program we have to develop its
algorithm. An algorithm is an outline of the steps that solving
a problem will require. It's usually detailed enough to be the
basis of a computer program, but it isn't written in a computer
language. Instead, the algorithm is expressed in English. A good
programmer will be able to implement, or realize, the
algorithm in almost any programming language. Cooper, Doug and
Michael Clancy. Oh Pascal, 2nd Ed. (Norton, 1985). p. xxii.
- True.
- False.
- Programming began as an art, and even today most people learn
only by watching others perform (e.g. a lecturer, a friend) and
through habit, with little direction as to the principles involved.
Gries, David. The Science of Programming. (Springer-Verlag 1981).
p. vii.
- True.
- False.
- We have -- despite what psychologists, pedagogues and the like
think -- not the faintest ide how knowledge, insights and
habits are transferred. It is not unlikely, that the actual
transfer is always by imitation, and that all the explicit
teaching in the scientific tradition is no more than giving the
student some verbal handles, which are no more than an aid to
memory. If this is true, then all purely "scientific
teaching" -- i.e., the explicit rules and no more -- is bound to
be, and to remain forever, a barren activity. Dijkstra, Edsger W.
Selected Writings on Computing: A Personal Perspective, "Craftsman
or Scientist?" (Springer-Verlag, 1982). p. 109.
- True.
- False.
- Underlying our approach to this subject [programming] is our
conviction that "computer science" is not a science and that its
significance has little to do with computers. The computer
revolution is a revolution in the way we think and in the way we
express what we think. Abelson, Harold and Gerald Jay Sussman.
Structure and Interpretation of Computer Programs. (MIT Press,
1985). p xvi.
- True.
- False.
- First, we want to establish the idea that a computer language
is not just a way of getting a computer to perform operations but
rather that it is a novel formal medium for expressing ideas about
methodology. Thus, programs must be written for people to read, and
only incidentally for machines to execute. Abelson, Harold and
Gerald Jay Sussman. Structure and Interpretation of Computer
Programs. (MIT Press, 1985). p xv.
- True.
- False.
- Every computer program is a model, hatched in the mind, of a
real or mental process....Thus even though our programs are
carefully handcrafted discrete collections of symbols, mosaics of
interlocking functions, they continually evolve: we change them as
our perception of the model deepens, enlarges, generalizes....The
source of the exhilaration associated with computer programming is
the continual unfolding within the mind and on the computer of
mechanisms expressed as programs and the explosion of perception
they generate. Perlis, Alan J., in Foreword to Abelson, Harold and
Gerald Jay Sussman. Structure and Interpretation of Computer
Programs. (MIT Press, 1985). p xi.
- True.
- False.
- I view a programming language primarily as a vehicle for the
description of (potentially highly sophisticated) abstract
mechanisms. ...the the algorithm's outstanding virtue is the
potential compactness of the arguments on which our confidence in
the mechanism can be based. Once this compactness is lost, the
algorithm has lost much of its "right of existence" and therefore
we shall consciously aim at retaining that compactness. Dijkstra,
Edsger W. A Discipline of Programming. (Prentice-Hall, 1976) p. 9.
- True.
- False.
Copyright © 1999, Ray
Ontko (rayo@ontko.com).