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. |
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