Structure drills on a ZX81
Modern English Teacher, 11, 1, 1983 Part 1 and MET 11, 2 1983 Part 2
|Historical note: the Sinclair ZX81 was the first popular cheap home computer in England in the 1980s and had 1k of memory|
The first repercussions of the microcomputer revolution are now starting to be felt in ELT teaching: Tim Johns has described the exciting possibilities of' exploratory' computer assisted learning in which the student has to test the rules of English stored in the computer (Johns, 1981); John Higgins describes the use of computer simulations, (Higgins, 1981), which have great potential for language teaching. Yet one of the simple straightforward uses of the computer seems to be in danger of being swamped by these sophisticated approaches. This is the use of the computer for drilling. To quote Littlewood (1981), 'Structural practice may still be a useful tool, especially when the teacher wishes to focus attention sharply and unambiguously onan important feature of the structural system.' What the computer can do, so far as the written language is concerned, is take over the type of function usually associated with the language laboratory of being a tireless drill master; unlike the lab, however, it can also say if the student is right or wrong and diagnose the actual mistake. Several articles have looked at the uses of computer drills in language teaching (Holmes &Kidd, 1981); Scherr & Robinson, 1980, Kenning & Kenning, 1981); most of these, however, are about mainframe computers rather than microcomputers, and while many provide fragments of drill programmes, they do not provide a step-by-step account of how to actually construct them on a microcomputer. The present article then describes a basic drill programme for a Sinclair ZX81 microcomputer with 1K memory. It assumes that the reader has access to one of these machines — since over 400,000 have been sold, and they now retail in Britain at less than £50, this seems a reasonable assumption. It attempts to provide the reader with a shortcut to writing his/her own programmes rather than having laboriously to work out the whole process out from scratch.
What we shall do is build up the programme bit by bit. The complete programme is given later, if readers want to refer to it as they go along. First we shall build a crude skeleton for the basic functions of a drill, then add some improvements, and finally see how it may be adapted to other structural points. First, then, a skeleton drill teaching the classic chestnut, "There is a... on the table. "The skeleton first gives the student an example exchange.
THERE IS A BOOK ON THE TABLE
then gives him or her a vocabulary cue such as
requires him to type a response
THERE IS SOME CARD ON THE TABLE
which is wrong, so he is told
and the cue is repeated
THERE IS A CARD ON THE TABLE
he is told
is given the next cue
and so on for five different cues.
Let us now go through the skeleton programme line by line.
20 PRINT "BOOK"
30 PRINT 'THERE IS A BOOK ON THE TABLE"
These two lines print out the example cue "BOOK" and example response
"THERE IS A BOOK ON THE TABLE."
40 LET A$ = "BOOKCARDFORKVASEDOLL"
This provides a set of different vocabulary cues, book, card, fork, vase, doll, by putting them in a single string called A$.
FOR N = 1 TO 20 STEP 4
PRINT A$ (N TO N + 3)+"?"
This is the trickiest part of the programme to understand. Essentially it provides one way of varying the vocabulary cues. Line 60 taken with line 210 NEXT N provides a loop. The purpose is to split the string of vocabulary cues (A$) given in line 40 into five words which can be dealt with separately. The first time around the loop, line 60 establishes that the value of N is 1. So line 100 will read "PRINT A$(1 TO 1 + 3)+"?"; in other words it prints out the first to fourth letters of the A$, i.e. "BOOK" and adds a question mark. When the programme reaches line 210 it is sent back to line 60 and N takes its next value, which is 5 since the value of N jumps 4 each time (STEP 4). So this time around, line 100 prints the 5th to the eighth (5+ 3) letters of the A$ i.e. "card". This 'string slicing' is the easiest way of changing vocabulary on the ZX81; other micros with BASIC, however, work slightly differently. The method suggested in the ZX81 Users' Manual for handling this by 'dimensional arrays' doesn't really work for drills, since it rapidly exhausts the memory.
110 INPUT B$
120 PRINT B$
Line 110 waits for the student to provide an input by pressing some keys; line 120 prints out whatever he pressed. These lines provide the student's response.
130 LET C$ + "THERE IS A "+A$ (N TO N+3)+" ON THE TABLE"
Line 130 specifies the right answer, namely that it consists of "THERE IS A" followed by the right vocabulary word followed by "ON THE TABLE." One small but vital point is to get the correct number of blank spaces in the C$, i.e. blank after "A" and a blank before "ON".
140 IF B$ = C$ THEN GOTO 180
If the student is right, his/her response (the B$) will be the same as the answer in the programme (the C$) and the programme jumps to line 180 below.
160 PRINT "NO"
170 GOTO 100
If the student's answer is wrong, line 140 hasn't worked and so he has not been sent to line 180. Line 160 prints "NO" and line 170 sends him back to line 100, which repeats the same cue again. However many times he gets it wrong, the programme sends him back to the original cue.
180 PRINT "YES"
he gets the answer right, the programme will have jumped to this line and prints
190 PAUSE 100
210 NEXT N
Line 190 holds everything on the screen for a count of 100 (about 2 seconds) so that the student can see his response and "YES." Then line 200 clears the screen and line 210 sends the programme back to line 60, where it jumps to the next value of N and proceeds to supply the next vocabulary cue in line 100.
This is, then, the essential skeleton of the drill: it provides examples; it supplies five vocabulary cues; it asks for the student's response to each cue; it tells the student whether his response is correct and only allows him to go on to a new cue when successful. The chief way in which it handles the provision of cues is by string slicing, i.e. cutting up a single string into items that are used each time. It is also possible to treat each pair of cue and response as separate strings; the A$ cue is "BOOK", the B$ cue is "CARD", and so on; the student responses are specified as separate items, say P$ "THERE IS A BOOK ON THE TABLE", Q$ "THERE IS A CARD ON THE TABLE", etc. This way, though in some respects simpler, runs out of memory rapidly, needs a special routine for handling answer comparison and diagnosis (a GOSUB), and does not help the reader to see the principle of string slicing, which is highly useful in more sophisticated work.
Improvements to the skeleton programme
Several improvements are necessary to make this drill at all usable. One is to make the actual language exchange — "BOOK?", 'THERE IS A BOOK ON THE TABLE" — slightly less unnatural. The exchange can be contextualised by changing four lines:
20 PRINT "WHAT IS ON THE TABLE? A BOOK?"
30 PRINT "YES THERE IS A BOOK ON THE TABLE"
The two example lines 20 and 30 now print out a slightly more realistic exchange.
100 PRINT "WHAT IS ON THE TABLE? A "+A$(N TO N+3)+"?"
This line fits the cue word into a longer stretch of language.
130 LET C$ = "YES THERE IS A "+A$(N TO N+3)+" ON THE TABLE"
With these changes the drill now proceeds cues such as
WHAT IS ON THE TABLE? A VASE?
and expects the response
YES THERE IS A VASE ON THE TABLE
If the student's response is not right, as before he will be given the cue sentences once again.
We also need to sharpen the correction of mistakes. So far we have simply told the student why he is wrong. Within the small 1K Memory not very much can be done about this. However, the following additional line shows in principle how this can be tackled.
150 IF LEN B$ =+not (no symbol available) LEN C$ THEN PRINT "SOMETHING MISSING"
This line compares the student's response with the right answer in terms of length. If it is shorter, it prints out "SOMETHING MISSING." Apart from language mistakes, this line helps to overcome one technical snag with the ZX81: some people find the keyboard difficult to use, and tend to miss out letters, etc.
If more memory space is available, obviously there are many potential uses for correction. The computer can tell the student if he has made a verb mistake, a noun mistake, or any other type of mistake.
Next, the drill is so far rather short. One possibility is to increase the number of vocabulary cues, i.e. changing the A$ in line 40. Again memory limitations prevent this being expanded very much. One alternative is the following:
50 FOR M = 1 TO 3
220 NEXT M
This introduces another loop, and makes the computer run through the programme 3 times, i.e. there will now be 15 cues. To change the number of times it goes through the programme, alter the value of M: M = 1 TO 25 for instance will make it go through the programme 25 times. One technical point to watch is that the M loop must be outside the N loop i.e. the sequence must be MNNM not MNMN, or things go haywire.
Finally, two other lines are necessary to make the programme practical.
10REM "NOUN DRILL"
Line 10 provides the drill with a title, here "NOUN DRILL", so that the programme can be recognised and stored.
230 PRINT "THE END"
Line 230 prints out "THE END" when the student has finished.
So we now have a drill that provides lifelike language, that goes on for as long as we want it to, that tells the student when he is wrong, and that corrects at least one possible error. To make this really usable we need a further touch: English does not consist of only four letter words, but has words of all lengths. Though this is trivial to language learners, it is complicated for the computer, and needs something like the following changes and additions to the programme.
40 LET A$ = "BOOK PEN CLOTH CUP DOLL "
This line rewrites the vocabulary list as words of different lengths; the principle is to decide a maximum length of word (here 5), and then to pad out the words that have less letters with blank spaces until they are all the same length. Thus pen is "PEN ", cloth is "CLOTH" with no blanks, and soon.
60 FOR N=1 TO 25 STEP 5
Line 60 has to be altered to fit the new A$ in line 40. The step size is now 5 since the words are 5 letters long and the final value of N is 25 (5 words of 5 letters).
70 LET D$ = A$ (N TO N+4)
make life easier, line 70 calls the word that has been cut out of the A$ the D$;
it is now 5 letters long including blanks.
80 IF A$ (N+4) = " " THEN LET D$ = D$ (1 TO 4)
90 IF A$(N+3) = " " THEN LET D$ = (1 TO 3)
We have now to get rid of the blanks in words such as "PEN".
Line 80 inspects the five letter word; if the final letter is blank it cuts this out from the D$; line 90 inspects the fourth letter of the word and again cuts it out from the D$ if it is blank. These two lines deal with words of 3 and 4 letters; similar lines can be added to deal with other lengths of word, though, if the range is extreme, it is more economical to use another approach (based on scanning all the letters in the string using a loop).
100 PRINT "WHAT IS ON THE TABLE? A "+D$+"?"
130 LET C$ = "YES THERE IS A "+D$+" ON THE TABLE"
Lines 100 and 130 are modified to fit the changes, by introducing D$.
These adaptations mean that words of any length can be used, an essential feature of any usable drill. The method given here is probably the simplest, even if it is still rather cumbersome. The alternative I have found, which is rather complicated, needs sweeping changes to other lines, and which will only make sense to readers who know the ZX81 quite well, is to make the A$ a list of all the vocabulary items without spaces, i.e. "CATDOGMOUSEELEPHANT," to construct a second string, the E$, which gives the length of each word, "3358", and to slice the A$ by an N loop that prints out the A$ in chunks of the number of letters specified in the E$, i.e. using VAL(E$(N())).
Basic Drill Programme
then, is the complete basic programme which has solutions to most of the basic
problems that arise in using drills. So that it can be adapted to teaching
different structural points, hints are given whenever necessary of the changes
that may be needed. Obviously the teacher may want to change other items of
the programme, e.g. changing "YES" to "CORRECT" or 'THE
END" to "AREN'T YOU CLEVER? YOU HAVE FINISHED THEM ALL."
the name of the drill in the quotes.
PRINT "WHAT IS ON THE TABLE? A BOOK?"
PRINT "YES THERE IS A BOOK ON THE TABLE"
an example exchange in these lines.
LET A$ = "BOOK PEN CLOTH CUP DOLL "
vocabulary cues padded out with blanks to a single standard length.
FOR M = 1 TO 3
3 to the number of times you want the student to go through the drill.
FOR N = 1 TO 25 STEP 5
5 to the standard word length; change 25 to the standard word length
multiplied by the number of words.
LET D$ = A$(N TO N+4)
4 to the standard word length minus one.
IF A$(N+4) = " " THEN LET D$ = D$(1 TO 4)
IF A$(N+3) = " " THEN LET D$ = (1 TO 3)
4 to the maximum word length and work downwards letter by letter to the
minimum word length; i.e. change 4, 3 etc. appropriately and have the
appropriate number of lines.
PRINT "WHAT IS ON THE TABLE? A " + D$ + "?"
the appropriate cue and frame here.
LET C$ = "YES THERE IS A " + D$ " ON THE TABLE"
the correct answer here.
IF B$ = C$ THEN GOTO 180
IF LEN B$ LEN C$ THEN PRINT "SOMETHING MISSING"
changes necessary unless more types of mistake need to be corrected.
GO TO 100
pause can be varied by changing 100, allowing about 50 per second, i.e.
pause 100 = 2 seconds, 150 = 3 seconds, and so on.
PRINT “THE END"
are some sample drills, all of which can be used with this basic programme.
Once the general idea is grasped, programmes for drills such as these take
only about ten minutes to write, and when written can, of course, be stored
and used whenever desired. These sample drills are based on ones originally
designed for oral work and published in Realistic English Drills Book 1
(Abbs, Cook, and Underwood, 1978). With a 1K machine, memory problems
sometimes arise; this may be cured by reducing the number of items used or by
editing out less essential lines of the programme (e.g. 10, 230, the M loop,
put the money in here"
push, drop, place, slide
cheap in England"
no, I think the butter here is expensive"
food, coffee, wine, fish
you. I love bananas"
sweet, orange, toffee, apple
am going to hospital"
mean the hospital near here?"
school, church, college, prison
"Give me that pencil please" "Which pencil? There are two here"
letter, pen, parcel, glass
look, it's a notice about the lecture"
there is going to be a lecture after all"
match, test, debate, talk
John to come up"
can come up now, John"
up, sit down, go out, carry on, move up
Noun / verb correspondences
at that rain"
it is raining quite hard"
snow, drizzle, hail
Continuous of 'be'
be so stupid"
I am not being stupid"
careless, lazy, silly, clumsy
is easy to describe oneself"
describing oneself is not easy as all that"
behave, describe, deduce (hint:
careful of the final 'e' which has to be lost somehow)
programme should, then, enable the reader to write straightforward structural
drills on a small microcomputer. Obviously it cannot handle anything very
complicated; all the drills have had only one variable, i.e. one item that is
changed in each cue and response. For drills that have more than one variable,
a larger memory is necessary. But the principle remains the same. More
variables will simply mean more strings and more loops. A larger memory also
enables such luxuries as asking the student's name and using it throughout the
drill ("Wrong again, Pete") and pinpointing the student's errors
more precisely. You may even allow the students to feed in the actual
vocabulary cues, and get them to see whether the resulting drills are
grammatical or not. Once one has mastered the basic drill techniques outlined
here, many lively and stimulating possibilities open up for the teacher. While
this article has confined itself to drills used by individual students, other
uses by groups and the whole class can be developed.
B., Cook, V., & Underwood, M., Realistic English Drills, OUP, 1978.
J., 'The use of the computer in English language teaching', in CILT
Information Guide, 22, forthcoming.
G., & Kidd, M.E., 'Second language teaching and computers', Canadian
Modern Language Review, 1981
T., 'Exploratory CAL: an alternative use of the computer in teaching foreign
languages,' Birmingham, English for Overseas Students Unit, University of
M., & Kenning, M., 'Computer assisted language teaching made simple,' British
Journal of Language Teaching, 19,1981
W., Communicative Language Teaching, CUP, 1981
G.W., 'The use of microcomputers for language teaching,' British Journal of
Language Teaching, 19,1981
B.P., & Robinson, L.W., 'Creating computer-assisted drills for Russian' Russian
Language Journal, XXXIV, 118,1980