General Description
This program runs on a BBC Model 'B' but without REMs and a restricted amount of data it should run on a model 'A'. However, this has not been tested.
The program tests the ability of children to see words within words, randomly accessing a data file of 'test' words. It subsequently displays a series of randomly chosen smaller words inviting a 'yes/no' response from the user as to whether the smaller word can be made from the test word. It checks each word before accepting the user's response and provides laudatory sounds and flashing congratulations if the user is successful. The user is invited each time to progress to the next word or may exit to the results display. This provides a display of the words, along with three stars for the correct answers. Users are meant to add up how many correct answers they scored and the computer will indicate whether it agrees with their assessment. The 'game' may be replayed.
It is important that the educational notes are read with this program as it can, with suitably chosen data, be made to do many things. The data that is given is sample data, and is a little too extensive for proper educational value.
Detailed Description
Lines 1-34 This is the main structure of the program calling several dependent procedures. Line 19 seeds the random number generator. In line 17 the array is limited deliberately to 40 elements, as this allows all results to be seen on one screen page. 'Testwords' in line 24 is the displayed key word.
35-67 This displays the introductory messages for the program. Change the envelope if you find it offensive, but I have found that sound is important as visual stimulation in keeping interest levels high. Line 51 clears the title strip from the centre of the screen, leaving the title in normal size type. Notice that the delays passed into the delay procedure in lines 49, 54, 57 and 61 are two and a half seconds. A delay of '10' gives five seconds. Also note that the program assumes that you are operating in normal 'CAPS LOCK' environment. No validation on lower case is done in line 66.
69-80 This chooses the test word that is going to be displayed on the screen. The data is kept at line 280. The value in the brackets, line 76, determines how much of the data is read. It would be possible to keep an extensive data file and through judicious use of the 'RESTORE' command and the value for the random number generator in line 76, access restricted subsets of the data.
81-93 This hardly needed to be placed in a separate procedure but does allow the respond routine to be altered without affecting this routine.
94-117 This displays the remainder of the instructions and then invites a reply, (yes or no) as to whether the smaller word can be made from the larger. A flag 'REPLY' is set which is used in the check procedure in line 115.
118-135 This procedure randomly accesses the data for a smaller word that can be made from the larger. Note the data starts at line 293 as shown by the RESTORE 293 in line 125. The first item of data read is a number which is used as the parameter in the random number generator. This item of data at line 298 determines the range of data read and if judiciously used with the RESTORE in line 125 can be made very selective.
136-159 This routine contains the only real processing in the program. Each letter in the smaller word is checked off against the 'testword'. If an unused letter in the testword is found it is exchanged for another character, a '9' and the routine continues the search. Lines 154-158 sets 'checflag' depending on the reply from the user and whether there exists a usable letter in the testword. The checkflag is used to signal a suitable success or failure sound in the picture routine, as well as deciding what message is displayed and putting the relevant stars into the array WORD$ - all in the next routine.
160-178 This uses checkflag, called 'cflag' in the procedure, to provide the sounds and messages outlined above. Notice that lines 175 and 176 generate double size characters for 'excellent'.
179-194 This routine is used to decide whether to progress to the next testword. I could have arranged automatic progression, but feel the user must be encouraged to interact with the machine at all times. Moreover an assumption is made if progression is automatic, that the user will not be bored in the middle of the 'game'. Concentration spans vary enormously.
195-227 The display of the results for the teacher: again the user is asked to interact with the computer. Not only are there stars against correct results but the user is required to add up the number of words he thinks were right. The computer adds a discrete 'also', line 222, if it agrees. No range check is done on the user's response.
228-256 The menu hardly merits the title 'menu'. It is an attempt to make the computer seem 'friendly' and to discourage the user from repeatedly coming back to the same program by indicating that it, the computer, gets 'tired'.
257-268 Again self-evident . . . a 'BYE BYE' band is drawn in double size characters across the screen.
279-292 Main testword data.
293-324 Smaller testword data. Please note that the RESTORE command restores to the REM statement which heads the routine and to use the program without REMs this must be altered accordingly. For the MODEL 'B' it may be typed in as it stands.
Educational Notes
As it stands, with the data given the program is entertaining and varied but lacks a structured progression for learning. This can be provided through sensible use of the data.
Firstly the larger testwords should be kept in a family of words: eg FAMILIAR, FAMILIES etc. The smaller words should be a subset of the same letters with some unacceptable words added: eg FAME, FAMINE, FAIR, LIES, FILE, FLIES, FLAME, FLEES, FILL etc. From using the program it seems that children respond better to being able to say 'yes it does not fit' rather than 'no it does not'. Experiment for yourself, but as with the anagram program, the power of the program depends very much on the data used. Build up a series of similar programs using different data. They can be suitably graded. Remedial 11 year olds were not bored for 30 minutes work, but towards the end tended to look for letter agreement between the two words rather than word shape agreement.