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.
  1. 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.
    1. True.
    2. False.

  2. 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.
    1. True.
    2. False.

  3. 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.
    1. True.
    2. False.

  4. 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.
    1. True.
    2. False.

  5. 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.
    1. True.
    2. False.

  6. 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.
    1. True.
    2. False.

  7. 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.
    1. True.
    2. False.


Copyright © 1999, Ray Ontko (rayo@ontko.com).