3
Applications and Education
This educational program for preschoolers requires children to use only the three console keys to answer questions.

When you bought your computer, one reason you used to justify the purchas was that the kids could use it for educational purposes. Well, now the computer is home, but the three-year-old rarely uses it. "Too young," you tell yourself, "maybe in a few years."

Children as young as two can and are using computers every day. But the lack of good software is still the major reason preschoolers don't make greater use of computers. To be used successfully with preschoolers, educational software must be truly educational, must have a difficulty level and subject matter appropriate for the age group, and must hold the child's attention and be fairly simple to use.

For the Very Young

Using computers to teach young children can be fun and challenging. The Atari's design makes it extremely easy for young children to use. Although the Atari offers numerous ways to input answers, this program, once LOADed, requires only the use of the three function keys to input responses. The subject matter, elementary numbers, is basic and is intended to teach the numbers from one to ten and the addition of single digits.

There are four options for the child to pick from. When the menu appears the youngster must use the function keys to select the part of the program to use. Pressing the SELECT key moves a small marker from one option to the next. When the child is satisfied with his or her selection, he or she presses the START key. It is important that the child hold down the key until the computer responds (this is true throughout the program).

The Options

The four options are Adding, Counting, Next Number, and Select a Number.

Adding represents a simple addition problem and an equivalent number of symbols for each number in the problem. By counting the symbols, the child can decide on the answer. The child then presses the SELECT key until his or her answer (with the appropriate number of symbols) appears on the screen. The word for each number in the problem also appears.

```      5  ***** FIVE
+
4  #### FOUR
___
9  &&&&&&&&&
```

To find out if an answer is correct, the child holds down the option key. If the answer is correct, the child hears a song and then is given the option of another problem.

Counting involves very little participation on the part of the child and is intended for the child who has had little experience with the computer and is perhaps too young for the other options.

Next Number asks the child to find the next consecutive number. The computer selects a number and then prints the digit, the word for the number, and the appropriate number of symbols. The child must answer with the next consecutive number in the same manner.

In the final option, Select a Number, the child must match the word for a number with the correct number.

Using the Joysticks

It is hoped that this program will give parents and others new ideas about how to design programs for very young children.

This program uses the console keys. Another method for easy input is the joystick; Al Baker has two articles that explore this topic in COMPUTE!s First Book of Atari. Consider also the possibility of multiple-choice questions that format the answers on the screen in such a way that a child could simply push the stick in the direction of his or her response.

The computer is your tool; why not make it a learning tool for your children?

Elementary Numbers
```100 REM ELEMENTARY NUMBERS
110 REM
120 REM COMPUTE! PUBLICATIONS
130 DIM CLEAR\$(1),NUMBER\$(51),C\$(1),NUM\$(6)
140 NUMBER\$="ZERO ONE  TWO  THREEFOUR FIVE SIX  SEVENEIGHTNINE ":CLEAR\$=CHR\$(125):C\$=CHR\$(94)
150 GRAPHICS 18:SETCOLOR 4,8,3
160 POSITION 5,3:PRINT #6;"ELEMENTARY":POSITION 5,7:PRINT #6;" NUMBERS":GOSUB 360
170 AA=4
180 PRINT #6;CLEAR\$:POSITION 0,0:PRINT #6;"PRESS start TO BEGIN":POSITION 0,1:PRINT #6;"PRESS select TO PICK"
190 POSITION 3,4:PRINT #6;"adding":POSITION 3,6:PRINT #6;"counting":POSITION 3,8:PRINT #6;"next number"
200 POSITION 3,10:PRINT #6;"select a number"
210 IF PEEK(53279)=5 THEN AA=AA+2
220 IF AA=12 THEN AA=4
230 IF AA=4 THEN POSITION 0,10:PRINT #6;"  "
240 IF PEEK(53279)=6 THEN GOTO 260
250 POSITION 0,AA:PRINT #6;">>":POSITION 0,AA-2:PRINT #6;"  ":GOSUB 360:GOTO 210
260 IF AA=4 THEN 500
270 IF AA=6 THEN 960
280 IF AA=8 THEN 1260
290 IF AA=10 THEN 1580
300 FOR AA=1 TO NUM1:POSITION AA+5,4:PRINT #6;C\$:NEXT AA
310 POSITION AA+6,4:PRINT #6;NUMBER\$(NUM1+1+(NUM1*4),NUM1+5+(NUM1*4)):RETURN
320 FOR AA=1 TO NUM2:POSITION AA+5,6:PRINT #6;C\$:NEXT AA
330 POSITION AA+6,6:PRINT #6;NUMBER\$(NUM2+1+(NUM2*4),NUM2+5+(NUM2*4)):RETURN
340 NUM1=INT(RND(0)*10):RETURN
350 NUM2=INT(RND(0)*10):RETURN
360 FOR WAIT=1 TO 500:NEXT WAIT:RETURN
370 IF AA=10 THEN 1370
380 GOTO 400
390 IF AA=19 THEN 520
400 IF AA<11 THEN POSITION 5+AA,8:PRINT #6;C\$:POSITION 3,8:PRINT #6;AA
410 SOUND 0,75,10,8
420 IF AA=10 THEN POSITION 2,8:PRINT #6;"10 "
430 IF AA>10 THEN POSITION 5+(AA-10),9:PRINT #6;C\$:POSITION 2,8:PRINT #6;AA
440 SOUND 0,0,0,0
450 RETURN
460 NUM\$=NUMBER\$(COUNT+1+(COUNT*4),COUNT+5+(COUNT*4)):RETURN
470 CHAR=INT(RND(0)*8)+36:GOTO 490
480 CHAR=INT(RND(0)*5)+60
490 C\$=CHR\$(CHAR):RETURN
510 GOSUB 340:GOSUB 350
520 GRAPHICS 18:SETCOLOR 4,14,12:SETCOLOR 0,8,18
530 POSITION 3,4:PRINT #6;NUM1
540 IF NUM1=0 THEN POSITION 5,4:PRINT #6;"zero":GOTO 560
550 GOSUB 470:GOSUB 300
560 POSITION 3,6:PRINT #6;NUM2
570 IF NUM2=0 THEN POSITION 5,6:PRINT #6;"zero":GOTO 590
580 GOSUB 480:GOSUB 320
590 POSITION 2,7:PRINT #6;"___":POSITION 1,5:PRINT #6;"+"
600 AA=0:POSITION 3,8:PRINT #6;"0"
610 GOSUB 470
620 POSITION 0,0:PRINT #6;"press select to{12 SPACES}change answer":GOSUB 360
630 IF PEEK(53279)=5 THEN AA=AA+1:GOSUB 390
640 POSITION 0,0:PRINT #6;"press option when   you like your answer  ":GOSUB 360
650 IF PEEK(53279)=5 THEN AA=AA+1:GOSUB 390
660 IF PEEK(53279)=3 THEN 680
670 GOTO 620
680 IF AA=NUM1+NUM2 THEN GOSUB 750
690 IF AA<>NUM1+NUM2 THEN GOSUB 770:GOTO 520
700 POSITION 0,0:PRINT #6;"press SELECT for{4 SPACES} another problem{8 SPACES}":GOSUB 360:GOSUB 360
710 IF PEEK(53279)=5 THEN 500
720 IF PEEK(53279)=6 THEN 150
730 POSITION 0,0:PRINT #6;"press start for menu{17 SPACES}":GOSUB 360
740 GOSUB 360:GOTO 700
750 REM CORRECT ANSWER
760 POSITION 2,11:PRINT #6;"correct":GOSUB 1920:RETURN
770 REM WRONG ANSWER
780 POSITION 2,11:PRINT #6;"sorry, try again"
790 FOR S=1 TO 2
800 SOUND 0,120,2,8
810 GOSUB 950
820 SOUND 0,29,10,12
830 FOR WAIT=1 TO 40:NEXT WAIT
840 GOSUB 940:NEXT S
850 FOR S=1 TO 3
860 SOUND 0,180,2,8
870 GOSUB 950:GOSUB 940
880 NEXT S
890 FOR S1=1 TO 2
900 SOUND 0,29,10,11
910 FOR WAIT=1 TO 40:NEXT WAIT
920 GOSUB 940:NEXT S1
930 RETURN
940 SOUND 0,0,0,0:FOR WAIT=1 TO 40:NEXT WAIT:RETURN
950 FOR WAIT=1 TO 80:NEXT WAIT:RETURN
960 REM COUNTING
970 TIMES=1
980 GOSUB 2130
990 SETCOLOR 4,8,5:SETCOLOR 0,9,14
1000 POKE 87,2:POSITION 5,2:PRINT #6;"COUNTING"
1010 FOR C=1 TO 15:SETCOLOR 4,C,8:FOR WAIT=1 TO 25:SOUND 0,C*15,10,8:NEXT WAIT
1020 SOUND 0,0,0,0:NEXT C
1030 SETCOLOR 4,8,5:SETCOLOR 0,9,14:SETCOLOR 1,12,10
1040 POKE 87,2:PRINT #6;CLEAR\$:Q=1
1050 COLOR 2:POKE 87,5:FOR C1=6 TO 8:PLOT 0,C1:DRAWTO 79,C1:NEXT C1
1060 FOR COUNT=1 TO 9
1070 REM
1080 GOSUB 460
1090 POKE 87,1:POSITION 0,3:PRINT #6;NUM\$:POSITION 15,3:PRINT #6;NUM\$:POSITION 9,3:PRINT #6;COUNT
1100 POKE 87,2:FOR C1=5 TO 13 STEP 4:POSITION C1,0:PRINT #6;COUNT:NEXT C1
1110 POKE 87,2:POSITION 2,2:PRINT #6;NUM\$:POSITION 9,1:PRINT #6;COUNT:POSITION 13,2:PRINT #6;NUM\$
1120 SETCOLOR 2,3,7
1130 COLOR 3
1140 SOUND 0,120,10,8
1150 POKE 87,5:PLOT Q+4,15:DRAWTO Q+4,11:DRAWTO Q,11:POSITION Q,15:POKE 765,3:XIO 18,#6,0,0,"S:"
1160 SOUND 0,0,0,0
1170 Q=Q+8
1180 GOSUB 360
1190 COLOR 3
1200 POKE 87,5:PLOT Q+4,15:DRAWTO Q+4,11:DRAWTO Q,11:POSITION Q,15:POKE 765,3:XIO 18,#6,0,0,"S:"
1210 NEXT COUNT
1220 TIMES=TIMES+1
1230 IF TIMES=3 THEN 150
1240 GOTO 980
1250 END
1260 REM NEXT NUMBER
1270 GOSUB 2130
1280 SETCOLOR 4,5,10:SETCOLOR 0,6,3:SETCOLOR 1,11,6:SETCOLOR 2,3,3
1290 POKE 87,1:POSITION 5,4:PRINT #6;"NEXT NUMBER"
1300 FOR C1=2 TO 3
1310 COLOR C1:C2=C1*4
1320 POKE 87,5:PLOT 79,C2+2:DRAWTO 79,C2:DRAWTO 0,C2:POSITION 0,C2+2:POKE 765,C1:XIO 18,#6,0,0,"S:"
1330 NEXT C1
1340 GOSUB 340:IF NUM1=9 OR NUM1=0 THEN 1340
1350 GOSUB 360:GOSUB 360
1360 GOSUB 480
1370 GRAPHICS 17
1380 POSITION 2,13:PRINT #6;"PRESS THE select":POSITION 2,15:PRINT #6;"KEY UNTIL YOU"
1390 POSITION 2,17:PRINT #6;"FIND THE":POSITION 2,19:PRINT #6;"NEXT NUMBER"
1400 POSITION 3,4:PRINT #6;NUM1:GOSUB 300
1410 AA=0
1420 IF PEEK(53279)=5 THEN AA=AA+1:GOSUB 370
1430 IF PEEK(53279)=3 THEN 1500
1440 POSITION 0,0:PRINT #6;"press option when   you like your answer  ":GOSUB 360
1450 GOSUB 470
1460 IF PEEK(53279)=5 THEN AA=AA+1:GOSUB 370
1470 POSITION 0,0:PRINT #6;"press select to{12 SPACES}change answer":GOSUB 360
1480 IF PEEK(53279)=3 THEN 1500
1490 GOTO 1420
1500 IF AA=NUM1+1 THEN GOSUB 750
1510 IF AA<>NUM1+1 THEN GOSUB 770:GOTO 1370
1520 IF AA<>NUM1+1 THEN 1370
1530 POSITION 0,0:PRINT #6;"press SELECT for{4 SPACES} another problem{8 SPACES}":GOSUB 360:GOSUB 360
1540 IF PEEK(53279)=5 THEN 1340
1550 IF PEEK(53279)=6 THEN 150
1560 POSITION 0,0:PRINT #6;"press start for menu{17 SPACES}":GOSUB 360
1570 GOSUB 360:GOTO 1530
1580 REM SELECT A NUMBER
1590 COUNT=INT(RND(0)*9):GOSUB 460
1600 GRAPHICS 18:SETCOLOR 4,5,9:SETCOLOR 0,7,5
1610 POSITION 1,0:PRINT #6;"MATCH UP THE word":POSITION 2,1:PRINT #6;"WITH THE number"
1620 POSITION 0,8:PRINT #6;"PRESS start TO BEGIN"
1630 AA=1
1640 GOSUB 360
1650 IF PEEK(53279)<>6 THEN 1650
1660 GRAPHICS 18:SETCOLOR 0,1,13:SETCOLOR 4,5,9
1670 POSITION 8,7:PRINT #6;NUM\$
1680 POSITION 2,3:PRINT #6;"select TO CHANGE":POSITION 1,4:PRINT #6;"option IF YOU LIKE"
1700 GOSUB 360
1710 POSITION 1,10:PRINT #6;"0 1 2 3 4 5 6 7 8 9"
1720 IF PEEK(53279)=5 THEN AA=A+2:SOUND 0,75,10,8:FOR W=1 TO 10:NEXT W:SOUND 0,0,0,0
1730 IF PEEK(53279)=3 THEN 1800
1740 IF AA>19 THEN AA=1:POSITION 19,9:PRINT #6;" "
1750 IF AA=1 THEN 1770
1760 POSITION AA-2,9:PRINT #6;" "
1770 POSITION AA,9:PRINT #6;C\$
1780 GOSUB 360
1790 GOTO 1720
1800 ANS=((AA+1)/2)-1
1810 IF ANS=COUNT THEN GOSUB 750
1820 IF ANS<>COUNT THEN GOSUB 770:GOTO 1660
1830 GOSUB 360
1840 GRAPHICS 18:SETCOLOR 4,8,12:SETCOLOR 0,8,2
1850 POSITION 1,3:PRINT #6;"VERY GOOD":POSITION 2,5:PRINT #6;NUM\$;" IS ";COUNT
1860 GOSUB 360:GOSUB 360
1870 POSITION 2,5:PRINT #6;"OPTION FOR MENU"
1880 POSITION 1,3:PRINT #6;"SELECT FOR ANOTHER{6 SPACES} PROBLEM{7 SPACES}"
1890 IF PEEK(53279)=3 THEN 150
1900 IF PEEK(53279)=5 THEN 1590
1910 GOTO 1890
1920 REM INTRO MUSIC
1930 S3=2
1940 MUSIC=INT(RND(0)*2)+1
1950 RESTORE 5300+(MUSIC*100)
1970 IF S1=-1 THEN SETCOLOR 4,8,3:RETURN
1980 SOUND 0,S1+3,10,7:SOUND 1,S1,10,11
1990 SETCOLOR 4,S3,8
2000 FOR WAIT=1 TO TIME*7:NEXT WAIT
2010 SOUND 0,0,0,0:SOUND 1,0,0,0:FOR WAIT=1 TO 3:NEXT WAIT
2020 S3=S3+2:IF S3>15 THEN S3=1
2030 GOTO 1960
2130 REM ROUTINE FOR MODE 2 3 ROWS
2140 REM MODE 1 2 ROWS
2150 REM MODE 5 32 ROWS
2160 GRAPHICS 5
2170 BEGIN=PEEK(560)+PEEK(561)*256+4
2180 POKE BEGIN-1,71
2190 POKE BEGIN+2,7:POKE BEGIN+3,7
2200 POKE BEGIN+4,6:POKE BEGIN+5,6
2210 POKE BEGIN+38,65:POKE BEGIN+39,PEEK(560):POKE BEGIN=40,PEEK(561)
2220 RETURN
5400 DATA 122,2,122,2,82,2,82,2,73,2,73,2,82,4,92,2
5410 DATA 92,2,97,2,97,2,109,2,109,2,122,4
5420 DATA 82,2,82,2,92,2,92,2,97,2,97,2,109,4
5430 DATA 82,2,82,2,92,2,92,2,97,2,97,2,109,4
5440 DATA 122,2,122,2,82,2,82,2,73,2,73,2,82,4
5450 DATA 92,2,92,2,97,2,97,2,109,2,109,2,122,4,-1,-1
5500 DATA 122,2,109,2,97,2,122,2,122,2,109,2,97,2,122,2,97,2,92,2,82,4,97,2,92,2,82,4
5510 DATA 82,1,73,1,82,1,92,1,97,2,122,2,82,1,73,1,82,1,92,1
5520 DATA 97,2,122,2,122,2,82,2,122,4,122,2,82,2,122,4,-1,-1
```

Listing. Elementary Numbers.