Addition: A “Training” Program

M. Touzin is another reader who has a “live-in laboratory” for his educational programs–his (then) 4-year-old daughter.

In fact, he asks whether anyone knows of a joystick for the 2068 that would fit the small hands of a child. Although it is likely that Mlle. Touzin is now big enough to manipulate a standard joystick, there still must be a need for small ones. We would welcome comments from readers on sources, substitutions, or makeshifts.

The REM statements in this program give an excellent short course in French, as applied to trains–look at lines 2001, 2150, 2220, 2290, and 2340.

The Program

The young student is given a series of simple addition problems, such as

3 +     = 8

The program also gives a pictorial representation of the problem (and of the solution), in the form of a series of asterisks. See the FINAL DISPLAY illustration for an example.

FINAL DISPLAY OF "ADDITION" PROGRAM
FINAL DISPLAY OF "ADDITION" PROGRAM

A correct answer is rewarded with an aleatoric series of BEEPs, and a picture that appears bit by bit, sort of like a Cheshire cat in reverse. After ten correct responses, the picture is complete, and the child’s score for the series is displayed.

The early part of the display (see illustration) made me wonder whether maybe the reward was intended to appeal to an older class of students. It resembled very much a woman’s undergarment which we euphemistically give a French name that means, approximately, “arm garment”. (The French language itself is not devoid of euphemisms–the French customarily describe this article of apparel as a “throat supporter”.) However, the next correct answer dispelled my apprehension.

THE EARLY DISPLAY
THE EARLY DISPLAY

As one correct answer follows another, the picture gradually takes shape, with the final picture appearing as shown–a rather nice drawing, with delightful economy of line.

Comment

I would make only one suggestion that might make this program an even more effective training aid. It seems to me that the child might grasp the mechanics of addition a bit faster if the pictorial representation of the problem were modified somewhat along the lines of the figure titles “SUGGESTED MODIFICATION”. Another possible improvement would be a display of the correct answer (perhaps repeated at the end of the program) when an error is made.

SUGGESTED MODIFICATION FOR BEGINNERS
SUGGESTED MODIFICATION FOR BEGINNERS

The only other comment I have is that Mlle. Touzin is indeed lucky to have a father who takes such an effective interest in her education.

 200 RANDOMIZE : CLS : PRINT AT 5,11;"ADDITION"
210 PLOT 79,120: DRAW 84,0: DRAW 0,24: DRAW -84,0: DRAW 0,-24
220 PRINT AT 8,0;"THIS PROGRAM TEACH TO BALANCE THE TWO SIDES OF THE ""="" SIGN."
230 PRINT "FOR EACH SUCCESSFUL TRIAL,A DRAWING APPEARS PROGRESSIVELY ON THE SCREEN."
240 PRINT "BEEPING IS ALSO USED TO HELP CHILDREN.AFTER TEN SOLVED PROBLEMS,DRAWING IS COMPLETED."
250 PRINT ''"HIT A KEY TO BEGIN."
260 PAUSE 0
400 CLS : LET TRAIN=0: LET ERR=0
410 LET E$=" "
500 LET C1=INT (RND*10)
510 LET C2=INT (RND*10)
520 LET C3=C1+C2
530 IF C3>10 THEN GO TO 500
540 IF C1=0 AND C2=0 THEN GO TO 500
550 PRINT AT 3,2;C1
560 PRINT AT 3,(2+C1+(C1=0));"+?"
570 PRINT AT 3,(3+C3+(C1=0)+(C2=0));"="
580 PRINT AT 3,(4+C3+(C1=0)+(C2=0));C3
585 IF C1=0 THEN GO TO 620
590 FOR N=2 TO ((2+C1)-1)
600 PRINT AT 5,N;"*": BEEP .01,20: BEEP .01,0: PAUSE 20
610 NEXT N
620 PRINT AT 5,(3+C3+(C1=0)+(C2=0));"="
625 FOR N=(4+C3+(C1=0)+(C2=0)) TO ((4+C3+(C1=0)+(C2=0)+C3)-1)
630 PRINT AT 5,N;"*": BEEP .01,20: BEEP .01,0: PAUSE 20
640 NEXT N
700 INPUT "ANSWER=";REP
710 IF REP<>C2 THEN GO SUB 4000: GO TO 700
720 PRINT AT 6,0;E$: GO SUB 3000
750 IF TRAIN=10 THEN PRINT FLASH 1;AT 21,0;"HIT A KEY TO CLEAR SCREEN.": PAUSE 0: GO TO 400
770 PRINT AT 21,0;"HIT A KEY TO CONTINUE."
780 PAUSE 0
790 PRINT AT 3,0;E$
800 PRINT AT 5,0;E$
810 PRINT AT 21,0;E$
850 GO TO 500
2000 REM LOCOMOTIVE
2001 REM ROUES&CAROSSERIE(BAS)
2010 PLOT 10,40: DRAW 20,0:
2020 CIRCLE 50,40,20: CIRCLE 50,40,17: CIRCLE 50,40,2: RETURN
2030 PLOT 70,40: DRAW 10,0
2040 CIRCLE 100,40,20: CIRCLE 100,40,17: CIRCLE 100,40,2: RETURN
2050 PLOT 120,40: DRAW 90,0
2060 DRAW 0,-15: DRAW 20,0: DRAW -20,15: PLOT 40,30: DRAW 48,6: DRAW 0,-1: DRAW -48,-6: RETURN
2070 CIRCLE 160,30,10: CIRCLE 160,30,7: CIRCLE 160,30,2: RETURN
2080 CIRCLE 190,30,10: CIRCLE 190,30,7: CIRCLE 190,30,2: RETURN
2090 PLOT 210,30: DRAW -10,0
2100 PLOT 180,30: DRAW -10,0
2110 PLOT 150,30: DRAW -33,0
2120 PLOT 83,30: DRAW -16,0
2130 PLOT 33,30: DRAW -23,0
2140 DRAW 0,10: RETURN
2150 REM CABINE
2160 PLOT 20,40: DRAW 0,60
2170 DRAW 50,0: DRAW 0,-60
2180 PLOT 70,100: DRAW 0,5: DRAW -50,0: DRAW -10,-5
2190 DRAW 10,0: RETURN
2200 PLOT 25,80: DRAW 0,10: DRAW 15,0: DRAW 0,-10: DRAW -15,0
2210 PLOT 50,80: DRAW 0,10: DRAW 15,0: DRAW 0,-10: DRAW -15,0
2220 REM BLOC MOTEUR
2230 PLOT 70,100: DRAW 130,0: DRAW 0,-50: DRAW 5,10: DRAW 0,30: DRAW -5,10
2240 PLOT 70,50: DRAW 13,0
2250 PLOT 117,50: DRAW 93,0: DRAW 0,-10
2260 PLOT 70,70: DRAW 130,0
2270 PLOT 70,80: DRAW 130,0
2280 PLOT 205,70: DRAW 3,0: DRAW 0,10: DRAW -3,0: RETURN
2290 REM CHEMINEE ETC.
2300 PLOT 190,100: DRAW 0,10: DRAW 5,5: DRAW -30,0: DRAW 5,-5: DRAW 0,-10
2310 PLOT 75,100: DRAW 0,5: DRAW 5,0: DRAW 0,-5
2320 PLOT 90,100: DRAW 0,5: DRAW 20,0: DRAW 0,-5: RETURN
2330 PLOT 150,100: DRAW 0,5: DRAW -20,0,PI/2: DRAW 0,-5
2340 REM VOIE FERREE
2350 PRINT AT 19,0;"TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT": RETURN
3000 REM BONNE REPONSE
3010 LET TRAIN=TRAIN+1
3100 PRINT AT 3,(3+C1+(C1=0));C2
3110 FOR N=(3+C1+(C1=0)) TO ((3+C1+(C1=0)+C2)-1)
3120 PRINT AT 5,N;"*": BEEP .01,20: BEEP .01,0: PAUSE 20
3130 NEXT N: PAUSE 30
3140 FOR N=1 TO 20: LET SON=RND*30: BEEP .1,SON: NEXT N
3300 IF TRAIN=1 THEN GO SUB 2000
3310 IF TRAIN=2 THEN GO SUB 2030
3320 IF TRAIN=3 THEN GO SUB 2050
3330 IF TRAIN=4 THEN GO SUB 2070
3340 IF TRAIN=5 THEN GO SUB 2080
3350 IF TRAIN=6 THEN GO SUB 2090
3360 IF TRAIN=7 THEN GO SUB 2150
3370 IF TRAIN=8 THEN GO SUB 2200
3380 IF TRAIN=9 THEN GO SUB 2290
3390 IF TRAIN=10 THEN GO SUB 2330
3400 IF TRAIN=10 THEN PRINT AT 1,0;"WRONG ANSWERS=";ERR
3500 RETURN
4000 REM ERREUR
4010 LET ERR=ERR+1
4020 PRINT AT 6,0;E$
4030 LET MREP=C1+REP: IF MREP>12 THEN LET MREP=12
4040 PRINT AT 6,(C3+(C1=0)+(C2=0 -(LEN STR$ C1=2)-(LEN STR$ REP=2));C1;"+";REP;"=";
4050 FOR N=1 TO MREP
4060 PRINT "*";
4070 BEEP .01,20: BEEP .01,0: PAUSE 20
4080 NEXT N
4090 IF C1+REP>12 THEN PRINT "..."
4100 FOR N=1 TO 30: BEEP .005,22: NEXT N
4200 RETURN

LISTING FOR “ADDITION”

Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.