Tuesday, February 5, 2008

Belated whinge!

I nearly forgot...

I do have a complaint about the M150 TMA. Not about the clarity of the questions or anything like that. Having well-written TMAs in this course is a given! Here's my complaint. Well, no, here's the kind of story behind my complaint. The complaint follows it.

You're in a hurry. You're late for work. But that colleague you sponsored did her charity run at the weekend and you have no cash. THERE! There was a cashpoint just back there... No time for mirror-signal you just manouvSHIT!! cyclist, pheeew. OK, handbrake, leap out into path of lorry, don't stop to lock car door - no time!

Arrive at cashpoint panting. Fumble with wallet - nearly dropped it but BUGGER, did drop it. Shit shit shit. OK, got it. Card out. deep breaths.

INSERT CARD TO BEGIN

OK, you're inserting the card. It's sucked into the machine's innards far slower than it would have been in 1985 for some reason. But you don't notice, because you've trained yourself to look away at this point, lest you become annoyed at the bank's desperate tactic of placing a mortgage advert on the screen. You're checking your watch instead, rehearsing possible lies: Car breakdown, alarm clock failure, rabies...

PLEASE ENTER YOUR PIN AND PRESS ENTER

6 (BEEP)
5 (BEEP)
2 (BEEP)
8 (BEEP WHICH SERVICE DO YOU REQUIRE?)
ENTER (NO BEEP) What? Oh - right - didn't need to press enter after all.
WITHDRAW CASH (BEEP)

Another inexplicable delay. Is there a ZX81 on the other side of this wall? Come on come on come on come on come on come on com-

DO YOU WANT A RECEIPT?

What? ARGH! Receipt??? You've just told it that you want it to GIVE money to you, not RECEIVE anything!

NO (BEEP) for crying out loud.

Come on come on come on oh god I was late last Monday too wasn't I great this is going to look just great come on come on

PLEASE ENTER AMOUNT AND PRESS OK
2 (BEEP)
0 (BEEP)
ENTER (BEEP)

wallet unfolded and ready. You're bobbin', ready for the dash back to the car. (Is that a traffic warden over there...?)

OH come ON....

Please come on....

Hang on.... "press ok"??? arrghh!

OK (BEEP)

Finally!

NOT ABLE TO DISPENSE CASH AT THIS TIME
PLEASE TAKE YOUR CARD AND STICK IT UP YOUR BOTTOM

How does this relate to a complaint about M150 TMA03? Well I realised last week that perhaps the reason we have to deal with such annoying machines is that the people programming them were taught to do it that way.

Check TMA03 Question 1(iii). After a suitable time I will post the question here, but will refrain from doing so now for reasons which may occur to you. This question explicitly instructs the student to write a program which behaves like your cashpoint. There is a cast-iron reason for rejecting a user, but the system compels that user to enter three separate pieces of information before being told this. You might think usability is outside the scope of the course, and I'd probably agree with you to a certain extent. But it's perverse to be subliminally encouraging such awful programming for no particular reason.

If you're not part of the cure, you're part of the problem.



.......................
EXTRA: Added in September 2011. M150 isn't running any more, so I do NOT expect to be whinged at by the OU, lol.
.......................
As promised, here's the TMA question:




(iii) The next task is to handle the registration of a new reader, when the user enters 1 in response to the menu. In this case, the system takes the user through the following process:
1



First the user is prompted for their forename, and then their family name. These two entries are stored. 2
The user is then prompted for their age. If the user enters an age less than 5 or greater than 120, the system checks to see if this entry has been made by mistake, by prompting the user to enter the age again. If an age outside this range is entered again, then the system accepts the figure and stores it. You can assume that the user will always enter a number (rather than a letter, say) for their age. The names entered are not checked in any way.

3 If the user’s age is less than 5, he or she is too young to be a
member of the library (there is no upper age limit). In these
cases the system writes the following message to the screen
Sorry. You are too young. Come back in 1 year(s).
where the figure given is the difference between the age the user entered and 5 (i.e. in this example the user gave their age as 4). Otherwise, the system writes the following message to the screen:
Thank you, Roger Reader. You are now a member of
Barsetshire Libraries.
where ‘Roger’ and ‘Reader’ were the forename and family name respectively entered by the user.
Add JavaScript code to the program you developed in part (ii) above to carry out this process. Save your code file with the name Q1(iii).html.
Include in your solution document:




  • your program code
  • two screenshots of the program running in a browser. The output of the first should show the result of a 4-year old having attempted to register; the output of the second should show a successful registration by a user named Betty Borrower.