peterr@utcsrgv.UUCP (Peter Rowley) (09/01/83)
"Learning" is not as simple as recent submissions would suggest. There is at least one dimension of variability, from rote knowledge (opcodes for a machine) to abstract (the concept of an algorithm). I think learning things on the abstract side of the spectrum can be great fun. I think there can be a lot of enjoyment in remembering things from the concrete side (ask any Trivial Pursuit player)... but in the context of a game, or when the facts shed some light on more abstract things. People who recite "ls" option flags are not the centres of attention at parties. If learning anything was fun, they would be. So I'd contend that learning some things is not fun. Like whether the SASQUATCH control card in X's JCL needs a terminating period or semicolon (yes, there are examples this bad, at least in CDC's KRONOS). Or whether -M on a file transfer program means to send mail on the host system and -m means on the target system or vice-versa. Or the un-mnemonic name of a command when a mnemonic name is as easy to type. Someone famous said that "unavoidable complexity should be, indeed, avoided." One cannot say that an interface with avoidable complexity is an "expert" interface, it is simply a bad interface. That may be acceptable in some situations, like a slow program may be, but it IS a fault and that fault cannot be swept under the rug by saying that it is fun to learn that complexity. Cognitive engineering has the goal of including such considerations in the tradeoffs (such as time/space/ development time/maintainability) already considered in software development. peter rowley, University of Toronto Department of C.S., Ontario Canada M5S 1A4 {cornell,watmath,ihnp4,floyd,allegra,ubc-vision,uw-beaver}!utcsrgv!peterr {cwruecmp,duke,linus,decvax,research}!utzoo!utcsrgv!peterr P.S. Let's have more examples in the articles in this group. In the above referenced articles, it was hard to tell what was supposed to be fun to learn. Examples would have cleared this up immediately.