(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-75491640-1', 'auto'); ga('send', 'pageview');
Structure drills on a ZX81 |
c |
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
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.
BOOK
THERE IS A BOOK ON THE TABLE
then gives him or her a vocabulary cue such as
CARD?
requires him to type a response
THERE IS SOME CARD ON THE TABLE
which is wrong, so he is told
NO
and the cue is repeated
CARD?
THERE IS A CARD ON THE TABLE
whereupon he is told
YES
and is given the next cue
FORK?
and so on for five different cues.
Skeleton programme
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$.
60 FOR N = 1 TO 20 STEP 4
100 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"
If he gets the answer right, the programme will have jumped to this line and prints "YES"
190 PAUSE 100
200 CLS
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)
To 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())).
The Basic Drill Programme
Here, 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."
10REM "NOUN DRILL"
Substitute the name of the drill in the quotes.
20 PRINT "WHAT IS ON THE TABLE? A BOOK?"
30 PRINT "YES THERE IS A BOOK ON THE TABLE"
Substitute an example exchange in these lines.
40 LET A$ = "BOOK PEN CLOTH CUP DOLL "
Substitute vocabulary cues padded out with blanks to a single standard length.
50 FOR M = 1 TO 3
Change 3 to the number of times you want the student to go through the drill.
60 FOR N = 1 TO 25 STEP 5
Change 5 to the standard word length; change 25 to the standard word length multiplied by the number of words.
70 LET D$ = A$(N TO N+4)
Change 4 to the standard word length minus one.
80 IF A$(N+4) = " " THEN LET D$ = D$(1 TO 4)
90 IF A$(N+3) = " " THEN LET D$ = (1 TO 3)
Change 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.
100 PRINT "WHAT IS ON THE TABLE? A " + D$ + "?"
Substitute the appropriate cue and frame here.
110 INPUT B$
120 PRINT B$
130 LET C$ = "YES THERE IS A " + D$ " ON THE TABLE"
Substitute the correct answer here.
140 IF B$ = C$ THEN GOTO 180
150 IF LEN B$ LEN C$ THEN PRINT "SOMETHING MISSING"
No changes necessary unless more types of mistake need to be corrected.
160 PRINT "NO"
170 GO TO 100
180 PRINT "YES"
190 PAUSE 100
The pause can be varied by changing 100, allowing about 50 per second, i.e. pause 100 = 2 seconds, 150 = 3 seconds, and so on.
200 CLS
210 NEXTN
220 NEXT M
230 PRINT “THE END"
Sample drills
Here 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, 150 etc.).
1. Present tense
"put"
"You put the money in here"
put, push, drop, place, slide
2. Definite article
"Butter's cheap in England"
"Oh no, I think the butter here is expensive"
butter, food, coffee, wine, fish
3. Zero article
"Have a banana"
"Thank you. I love bananas"
banana, sweet, orange, toffee, apple
4. Zero article
"I am going to hospital"
"You mean the hospital near here?"
hospital, school, church, college, prison
5.'Which' questions
"Give me that pencil please" "Which pencil? There are two here"
pencil, letter, pen, parcel, glass
6. 'Going to'
"Oh look, it's a notice about the lecture"
"So there is going to be a lecture after all"
lecture, match, test, debate, talk
7. Imperative
"Tell John to come up"
"You can come up now, John"
come up, sit down, go out, carry on, move up
8. Noun / verb correspondences
"Look at that rain"
"Yes, it is raining quite hard"
rain, snow, drizzle, hail
9. Continuous of 'be'
"Don't be so stupid"
"But I am not being stupid"
stupid, careless, lazy, silly, clumsy
10. Reflexive 'oneself
"It is easy to describe oneself"
"Oh, describing oneself is not easy as all that"
deceive, behave, describe, deduce (hint: careful of the final 'e' which has to be lost somehow)
This 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.
References
Abbs, B., Cook, V., & Underwood, M., Realistic English Drills, OUP, 1978.
Higgins, J., 'The use of the computer in English language teaching', in CILT Information Guide, 22, forthcoming.
Holmes, G., & Kidd, M.E., 'Second language teaching and computers', Canadian Modern Language Review, 1981
Johns, T., 'Exploratory CAL: an alternative use of the computer in teaching foreign languages,' Birmingham, English for Overseas Students Unit, University of Birmingham.
Kenning, M., & Kenning, M., 'Computer assisted language teaching made simple,' British Journal of Language Teaching, 19,1981
Littlewood, W., Communicative Language Teaching, CUP, 1981
Roberts, G.W., 'The use of microcomputers for language teaching,' British Journal of Language Teaching, 19,1981
Scherr, B.P., & Robinson, L.W., 'Creating computer-assisted drills for Russian' Russian Language Journal, XXXIV, 118,1980