An attempt to inject a drop of reality



BOARD OF COMPUTER STUDIES TEACHING SUB-COMMITTEE

A DIATRIBE

Alan Creak, l4 March 1979.



1. Monotribe on Assembly languages.
        My emphatic espousal of the cause of Assembly language teaching is,
equally emphatically, not to be construed as support for Assembly
language itself; all the Assembly languages which I know or have met
are abominations. Neither am I concerned that the students in the
Mathematics 191 class should know a great deal about any particular
version of computer hardware. But I believe that it is very important
that a student should have a reasonably accurate mental picture of the
sort of thing that happens in a computer when a subroutine is entered,
or an array element is selected, or a parameter is passed - or, for
that matter, when an instruction is executed. For all its defects,
Assembly language speaks simply and clearly about such things, and
I know of nothing else which does the same thing so directly.
      REMARK If a student does so understand, he will understand
the difference between name and value parameters, why there
are problems in implementing recursive procedures ( or aren't,
if he starts with a stack machine ), why Fortran arrays are
laid out as they are, and so on. To do so, though, he must
know about storage, addressing, indexing, and indirection:
these are hard to get across without a clear picture of how
a computer works, and a language in which to describe it.
KRAMER
        The reason for my insistence on this sort of low-level acquaintance
with computing is that I cannot imagine any other way by which a student
can come to UNDERSTAND computers. If the object of the Mathematics 191
is to teach students to use computers without understanding them, then
many of my objections vanish, and I urge the immediate establishment
of the Department of Necromancy, and the transfer thereto of Maths 191.
( No doubt there are several other courses in the University which
could also profitably be transferred. ) If, on the other hand, the
course is to introduce people to computing and computers in an
intellectually respectable way, then I can see no alternative to
starting at the bottom. Further, I think that the bottom in question
is the way in which an instruction is executed; there is obviously
room for discussion on where lines should be drawn, but the idea of
a machine following a set of instructions seems to be a major point
of difficulty for many people, and much becomes clear once this hurdle
is past.
      REMARK This remains true even for - maybe especially for - the
student who does not intend to do any more computing. We don't
need a general public which can write Fortran programmes - we
need a greater understanding of what computers can do, what they
can't do, and why. KRAMER
        As a final point, I readily accept that Assembly language may not be
the only way to get across the material which I see as essential -
but I can't see a realistic alternative. In fact, of course, it isn't
really very difficult. Maybe we do it the wrong way in Mathematics 191,
but I suggest that the main troubles there are the limited time available
for the topic, and the compulsion to give a reasonably ambitious
assignment to appease the continuous assessment ogre.




2. Monotribe on Mathematics and computing.
        First, I am not too concerned what happens to the courses in
Computational Mathematics; they have little or no contact with, or
bearing on, the courses which I see as central to a Computing
Department, and will finish up in the Department of Computing or
Mathematics ( or Necromancy ? ) as is best suited to administrative
convenience.

     I am more concerned that the fuss over computational mathematics
should not lead to neglect of courses in other mathematical topics
which are much more relevant to the core Computing courses; I have in
mind such topics as theory of automata, combinatorial properties of
data structures, complexity of computations, linguistic theory, and so
on. ( I may have got the names wrong - I'm not as well informed as I
would like to be on these topics myself. ) These all have a very direct
bearing on the subjects taught in the present stage 2 courses, but
there seems to have been no suggestion that a Department of Computing
would offer anything at all along these lines.

     At present, some of the Board's courses include some introductory
material on the theoretical aspects of their subjects, but -
especially as more and more non-mathematicians enter the courses -
these courses do not provide a good context for formal mathematical
treatments. Computing is in the happy position that most of its
important points can be communicated by example, or pictorially; the
mathematics is not necessary for understanding. The mathematics is
nevertheless an important study in its own right, and I believe that
a department could very profitably offer a "practical" course, which
most people would take, and a parallel "mathematical" course which
would delight the mathematical enthusiasts.

     Any such development would, of course, be very difficult to bring
about if the "mathematical" topics remained ( where some of them at
least now are ) in the Mathematics Department - I am not questioning
the goodwill of all concerned, but recognising the practical problems
of getting people in different departments close enough together to
achieve a profitable collaboration. ( We know a lot about that problem
in Computer Studies. ) I believe that there would be much to be gained
from teaching the mathematics of computation in the Computing Department,
and I think it should be discussed before it's too late.


Notes.

CONCERNED : My real concern was that it seemed to me that the eminences of the Board of Computer Studies did not always give the impression of knowing what they were talking about. I didn't suppose that they were stupid, but rather suspected that some had a limited, or partial, view of the topic. I was certainly unimpressed by some of the Board's pronouncements.
CONTINUOUS ASSESSMENT : A bad thing. If students can't learn the stuff without being forced to do pointless assignments, they should fail. Optional assignments might be constructive.
GENERAL PUBLIC : The original 191 course was not directed at people intending to make a career out of computing, or even necessarily to do much of it; it was for people who would like to know enough about computing to make sense of it. That still seems like a good idea. Do we do it ?
MONOTRIBE : Yes, I know it's bad etymology; it's a joke. Ha ha.
REMARK ... KRAMER : The "REMARK ... KRAMER" pair was a sort of pun on the current fashion for constructing bracketing pairs in just that way in programming languages - for example, CASE ... ESAC, IF ... FI . I assumed that anyone likely to be a member of the Board of Computer Studies would be familiar with current computing practice. This was a mistake; I have no numbers, but several weren't. I can only hope that they understood the points I was trying to make.
UNDERSTAND : See above. I thought that understanding was the idea. I think that our earliest groups of students wanted to understand, and did. I am a lot less confident about some of those I met in the stage 3 Operating Systems course around 1998; their grasp of how computers worked was sometimes tenuous in the extreme ( though no doubt they'd done all the compulsory assignments ).


Alan Creak, 2007 December