Abstract:
The present invention provides a method of teaching rote facts by the use of a computer network and the required software with the following functions: 
     (1) Student interest is maintained by engaging the students in a competative game. Each student has access to a computer terminal with which to input the correct answer to a question posed by a master computer. The master computer keeps score and handicaps the faster players so that the slower players always have a chance to win occasionally and therefore their interest is maintained. 
     (2) To further promote learning the correct answer is displayed after the first student inputs an answer to the question. 
     (3) The handicap of each student is recorded and is accessable only to the teacher for evaluating the students. 
     (4) Scores are automatically recorded for future evaluation by the teacher.

Description:
BACKGROUND OF THE INVENTION 
     Numerous educational computer programs have been written over the years with varing degrees of usefulness. The chief drawback of previous programs is that unless the student posseses an inquisitive mind he or she soon becomes bored with answering the questions the computer asks and the learning process stops. What is needed is a system where group participition can be employed and the peer preesure will keep all students interested in the learning process. Even though the students using the computer game can be pre grouped according to ability a handicaping system must be employed to keep the slower students from always losing and thereby becoming discouraged. 
     SUMMARY OF THE INVENTION 
     The present invention provides a method of teaching rote facts by the use of a computer program desgned to maintain student interest at a high level by the use of a competative game. A master computer asks questions and keeps the score of students entering answers on computer terminals. A handicap system tends to keep all scores equal. The handicap is recorded for each student and is available to the teacher for use in evaluating the students. 
     Various other features of the method and apparatus of the present invention will become obvious to those skilled in the art upon reading the disclosure set forth hereinafter. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     Referring now to the drawings which only show one example of the hardware and software in accordance with the present invention used in the discription of the method in accordance with the present invention. 
     FIG. 1. Schematic Diagram Of Hardware Required To Practice This Invention. 
     FIG. 2. Flow Chart Of Computer Program Required To Practice This Invention. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Referring to FIG. 1, For purposes of illustration seven slave Commodore 64 computers (2 thru 8) are shown hooked into a network with an eighth master Commodore 64 computer (1) through their respective &#34;user ports&#34;. The output of the master computer (pin M of the user port) is connected throught a common buffer (9) to the input (pins B and C of the user port) of each slave computer such that when the master computer sends a bit each slave receives that bit at the same time. The output of each slave (pin M of the user port) is buffered by it&#39;s own buffer located in the buffer box (9) and sent to the input (pin B and C of the user port) of the master computer. To assure that only one slave at a time will try to send to the common master input, a control line (10) is run from the master computer (pins D through L of the user port) to each slave (pin K) respectively. Master computer user port pins D through L are output ports that are software controled to allow one slave at a time to send. All computers share a common ground through pin A of their user ports. The buffers are contained in a common (9) box and are composed of #75451 chips. 
     Refering to FIG. 2, A flow chart for the master computer program is shown to the left of the dotted line. A flow chart for each of the slave computer programs is shown to the right of the dotted line. Arrowed lines crossing the dotted line towards the right represent data sent from the master computer to all of the slave computers at once. Arrowed lines crossing the dotted line towards the left represent data being sent from each slave computer in turn to the master computer. 
     Considering the master computer flow chart to the left of the dotted line. The first thing that happens is a student logs on by entering a name (11). A routine then activates the clear to send line to one slave terminal at a time allowing the students to send their students name, and terminal number to the master computer where they are stored (12). When all of the students are logged on a &#34;space bar&#34; is then entered on the master computer terminal setting the game in motion. 
     The master computer computes a problem (13) in this case or reads a question from the floppy disc and sends (14) it to each of the slave terminals where it is displayed. The master computer then brings high the control line to each of the slave terminals in turn in the inverse order of their scores allowing them to send an answer if one has been entered. When all of the slaves have been given a turn to answer (15), the master then evaluates the answers in the inverse order of their score. When an answer is found it is compared (16) with the right answer and if correct, points are added to that players score (18) to bring his score up 75% of the way to the highest players score, a praise message is printed, and a happy tune is played (19), the problem and the correct answer are printed, and a happy code is sent to all slave ternminals. If the answer is incorrect an unplesant sound is uttered, the problem and the correct answer is printed and an unhappy code is sent to all slave terminals. A new handicap is then generated (17) for each player as follows: The higher the players score the sooner the student&#39;s turn to send an answer will occur in the answering cycle giving that sudent a time disadvantage. A new problem is generated and the cycle is repeated until someone gets a score of 25 or greater. 
     Considering the slave terminal program flow chart to the right of the dotted line. The terminal is initially in a watching loop (20) waiting to be instructed by the master to allow it&#39;s student to logon. When so instructed by the master, players at the slave terminals are asked to logon. (21) When a student at a terminal logs on the program then interogates it&#39;s control line until it gets a signal from the master to send it&#39;s logon information to the master computer. The slave program then waits for a problem to be sent (22). When a problem is received it is printed and the program then watches for an entry of an answer by the student. When an answer is entered the program then interogates it&#39;s terminal control line until permission is recieved to send (23) the answer to the master terminal. Upon sending an answer to the master the slave program then waits for a code to print a happy or sad message and utter a happy or sad sound (24). The slave terminal program also waits for the updated score and a code to print the updated scoreboard (25). The program then waits for the problem and the correct answer which are printed. The program then waits for a new problem which it prints. Upon printing a new problem the slave terminal then waits for the student to enter an answer and the cycle is repeated. Details of the operation of the master and slave programs may be found in the attached &#34;BASIC&#34; listings. 
     
         __________________________________________________________________________100   REM MAS150110   OPEN2,2,2,CHR$(6)120   OPEN4,8,4,&#34;@0:GAME#,S,R&#34;130   INPUT#4,G140   CLOSE4150   A$=&#34;AAAAA&#34;160   PRINT#2,A$170   FOR I=1 TO 20180   GET#2,A$:GETB$:NEXT I190   DIM U$(10)200   DIM A(8)210   DIM Z$(8)220   DIM S(8,3),B(8,2)230   FOR T=1 TO 7:X(T)=(255-2↑T):NEXT T240   N$=&#34;8&#34;250   FOR T=1 TO 8:U$(T)=&#34;&#34;:S(T,1)=0:NEXT T260   PRINT CHR$(147)270   INPUT&#34;DO YOU WANT TO SEE SCORES&#34;;A$280   IF A$=&#34;Y&#34; THEN GOTO 2440290   P=G+1292   PRINT &#34;GAME#=&#34;;P300   INPUT&#34;ENTER YOUR NAME&#34;;U$310   PRINT#2,A$320   T=VAL(N$)330   U$(T)=U$340   U$=&#34;&#34;350   PRINT#2,CHR$(63)360   PRINT#2,CHR$(63)370   PRINT CHR$(147)380   PRINT &#34;WHEN EVERYONE IS READY HIT A SPACE BAR&#34;390   FOR T= 1 TO 20 :GET#2,A$ :NEXT T400   U$=&#34;&#34;410   FOR W=1 TO 7420   POKE 56577,1430   T=W440   POKE 56579,X(T)450   FOR I=1 TO 30460   GET#2,A$470   IF A$=CHR$(13) THEN GOTO 610480   IF A$ &lt;&gt; &#34;&#34;THEN U$=U$+A$490   NEXT I500   IF U$ &lt;&gt;&#34;&#34;THEN GOTO 610510   GET A$520   IF A$=CHR$(32) THEN GOTO 660530   IF A$ &lt;&gt;&#34;&#34;THEN U$=U$+A$540   NEXT W550   FOR I=1 TO 20560   GET A$570   IF A$=CHR$(32) THEN GOTO 660580   IF A$ &lt;&gt;&#34;&#34;THEN U$=U$+A$590   NEXT I600   GOTO 400610   T$=LEFT$(U$,1)620   T=VAL(T$)630   U$(T)=MID$(U$,2)640   PRINT U$(T)650   GOTO 400660   REM ITEM 660 THROUGH 710 SENDS SLAVES A LIST OF PLAYERS670   PRINT#2,CHR$(32)680   FOR T=1 TO 8690   IF U$(T)=&#34;&#34;THEN U$(T)=CHR$(48)700   PRINT#2, U$(T)710   NEXT T720   PRINT CHR$(147)730   PRINT&#34;NAMESCORE&#34;740   FOR T=1 TO 8750   PRINTU$(T);TAB(16);S(T,1)760   NEXT T770   N=1780   REM ITEM 780 THRU 930 GENERATES PROBLEMS AND ANSWERS790   FOR I=1TO10:X=RND(1):NEXT I800   FOR I=1 TO 10 : GET#2,A$:GETB$:NEXTI810   PRINT#2,CHR$(13)820   X=RND(1)830   IF X&lt; .3333 THEN Y=43840   IF X&gt; .3333 AND X&lt;=.6666 THEN Y=  45850   IF X &gt; .6666 THEN Y=42860   D=INT(RND(1)*10)+1870   E=INT(RND(1)*10)+1880   IF Y=43 THEN Q=D+E890   IF Y=45 THEN Q=D-E900   IF Y=42 THEN Q=D*E910   IF Y=42 THEN Y=88920   IF Q&lt;0 THEN GOTO 820930   Q$=STR$(Q)940   GOSUB 1730950   REM ITEM 960 SENDS PROBLEM TO SLAVES960   PRINT#2,D;CHR$(Y);E;&#34;=&#34;;CHR$(13)970   IF T$=&#34;8&#34;THEN 1000980   FOR X=1 TO 1200990   NEXT1000   PRINT D;CHR$(Y);E;&#34;=&#34;1010   REM ITEM 1010 THRU 1310 GETS ANAWERFROM SLAVES1020   POKE 56577,11030   Z$=&#34;&#34;: R$=&#34;&#34;1040   FOR T=1 TO 8:Z$(T)=&#34;&#34;:NEXT T1050   U=81060   FOR T=1 TO 8:Z$(T)=&#34;&#34;:NEXT T1070   FOR T=U TO 1 STEP-11080   F= B(T,2)1090   IF F=8 THEN 12001100   POKE 56579,X(F)1110   FOR I=1 TO 101120   GET#2,A$1130   IF A$=CHR$(99) THEN 11701140   IF A$=CHR$(13) THEN 11701150   IF A$=&#34;&#34;THEN 11701160   Z$(T)=Z$(T)+ A$1170   NEXT I1180   NEXT T1190   GOTO 13301200   U=T-11210   POKE 56579,2551220   IF U=0 THEN U=81230   FOR I=1TO 51240   GET B$1250   IF B$&lt;&gt;CHR$(13) THEN GOTO 12701260   T=8: Z$(T)=&#34;8&#34;+R$1270   IF B$&lt;&gt;&#34;&#34;THEN R$=R$+B$1280   IF B$&lt;&gt;&#34;&#34;THEN PRINT B$;1290   IF B$=CHR$(137) THEN PRINT #2,CHR$(137)1300   IF B$=CHR$(137) THEN GOTO 22601310   NEXT I : IF T=1 THEN 13301320   GOTO 10701325   REM ITEM 1330 THRU 1500 COMPARES SLAVE ANSWER TO TRUTH1330   POKE56579,255 :FOR T=1 TO 81340   F=B(T,2):Z$=Z$(F)1350   IF Z$&lt;&gt;&#34;&#34;THEN 13801360   NEXT T1370   GOTO 10501380   REM ITEM 1380 THRU 1540 COMPARES SLAVE ANSWER TO TRUTH1390   PRINT CHR$(147)1400   PRINT#2,CHR$(147)1410   FORI=1 TO 2000:NEXT I1420   T$=LEFT$(Z$,1)1430   Z$=MID$(Z$,2)1440   X=VAL(Z$)1450   Z$=&#34;&#34;1460   T=VAL(T$)1470   REM COMPARE ANSWER WITH TRUTH1480   T=VAL(T$)1490   PRINT CHR$(147)1500   IF X=Q THEN 15501505   REM ITEM 1510 THRU 1570 COMPUTES SCORES AND SENDS THEM1510   C$=CHR$(120)+T$+&#34;2&#34;+CHR$(121):PRINT#2,C$; :IF T=8 THEN 27901520   PRINT#2,CHR$(100);T;S(T,1);CHR$(101)1530   PRINT#2,&#34;BOO !BOO !&#34;;U$(T);CHR$(13):PRINT&#34;BOO !BOO !&#34;;U$(T)1540   GOTO 16301550   S(T,1)=S(T,1)+S(T,3)+11560   IF T=8 THEN 2650 :FOR D=1 TO 10000:NEXT1570   PRINT#2,CHR$(100);T;S(T,1);CHR$(101)1580   REM ITEM 1580 THRU 1700 PRINTS RESULTS1590   PRINT &#34;GREAT &#34;;U$(T)1600   PRINT#2,&#34;GREAT &#34;;U$(T);CHR$(13)1610   C$=CHR$(120)+T$+&#34;1&#34;+CHR$(121)1620   PRINT#2,C$;1630   PRINT#2,D;CHR$(Y);E;&#34;=&#34;;Q;CHR$(13);1640   PRINT&#34;NAMESCORE&#34;1650   FOR T=1 TO 81660   PRINT U$(T);TAB(16); S 1)1670   NEXT T1680   FOR I=1 TO 4:PRINT:NEXT I1690   Z$=&#34;&#34; :T$=&#34;&#34; : X$=&#34;&#34;1700   FOR I=1 TO 10 :GETB$:NEXT I1705   REM ITEM 1710 UPDATES GAME #1710   N=N+11720   GOTO 8201730   REM HANDICAP ROUTINE1740   FOR T=1 TO 81750   B(T,1)=5001760   S(T,2)=S(T,1)1770   NEXT T1780   FOR J=1 TO 81790   FOR T=1 TO 81800   IF S(T,2) &lt; B(J,1)THEN B(J,2)=T1810   IF S(T,2) &lt; B(J,1) THEN B(J,1)=S(T,2)1820   NEXT T1830   U=B(J,2)1840   S(U,2)=5001850   NEXT J1860   J=81870   H=B(J,1)1880   FOR T=1 TO 81890   X=(H-S(T,1))*.751900   S(T,3)=INT(X)1910   NEXT T1920   FOR T=1 TO 81930   A(T)=A(T)+S(T,3)1940   NEXT T1950   FOR T=1 TO 81960   IF S(T,1)&lt;=25 THEN 19901970   NEXT1980   RETURN1990   PRINT#2,U$(T);&#34; IS THE GRAND WINNER&#34;2000   P=T2010   GOTO 20802020   PRINT U$ (P); &#34; IS THE WINNER&#34;2030   PRINT&#34;TO PLAY AGAIN HIT SHIFT-F1&#34;2040   GETB$2050   IF B$&lt;&gt; CHR$(137) THEN GOTO 20402060   PRINT #2,CHR$(137)2070   GOTO 22602080   REM MUSICAL SCALE2090   RESTORE2100   FOR L=54272 TO 54296:POKEL,0:NEXT2110   POKE 54296,152120   POKE 54277,92130   POKE 54276,172140   FOR T=1 TO 300:NEXT2150   READ A2160   READ B2170   IF B=-1 THEN GOTO 20202180   POKE 54273,A:POKE 54272,B2190   POKE 54276,172200   FOR T=1 TO 250 :NEXT:POKE54276,162210   FOR T=1 TO 50:NEXT2220   GOTO 21202230   DATA17,37,19,63,21,154,22,2272240   DATA25,177,28,214,32,94,34,1752250   DATA-1,-12260   REM SCORE STORING ROUTINE (ITEM 2260-2440)2270   G=G+12280   OPEN 4,8,4,&#34;@0:GAME#,S,W&#34;2290   PRINT# 4,G2300   CLOSE42310   S$=&#34;SCORE&#34;+STR$(G)2320   K$=CHR$(34)+&#34;@0:&#34;+S$+&#34;,S,W&#34;+CHR$(34)2330   OPEN4,8,4,K$2340   FOR T=1 TO 82350   PRINT#4,U$(T)2360   U$(T)=&#34;&#34;2370   PRINT#4,S(T,1)2380   S(T,1)=02390   PRINT#4,A(T)2400   A(T)=02410   NEXT T2420   CLOSE42430   GOTO 2402240   REM SCORE.READ-ITEM 2440 TO 26102450   P$=&#34;DOGS&#34;2460   INPUT &#34;ENTER PASSWORD&#34;2470   IF F$=P$ THEN GOTO 24902480   GOTO 2902490   PRINT &#34;THE LAST GAME NUMBER WAS &#34;;G2500   INPUT&#34;ENTER GAME NUMBER&#34;;J$2510   J$=&#34;SCORE &#34;+J$2520   K$=CHR$(34)+&#34;@0:&#34;+J$+&#34;,S,R&#34;+CHR$(34)2530   OPEN4,8,4,K$2540   PRINT&#34;NAME&#34;;TAB(12);&#34;SCORE&#34;;TAB(20);&#34;HANDICAP&#34;2550   FOR T=1 TO 82560   INPUT#4,U$2570   INPUT#4,S2580   INPUT#4,A2590   PRINT U$;TAB(12);S;TAB(20);A2600   NEXT T2610   CLOSE42620   INPUT&#34;WHEN READY TO CONTINUE,HIT RETURN&#34;;A2630   PRINTCHR$(147)2640   GOTO 2902650   REM HAPPY RESPONSE2660   FOR L=54272 TO 54296:POKEL,0:NEXT2670   FOR V= 1 TO 32680   POKE54296,152690   POKE54277,1902700   POKE54278,1302710   POKE54273,(V+16)2720   POKE 54272,(36+V)2730   POKE54276,172740   FOR X= 1 TO 500 : NEXT X2750   POKE54276,162760   NEXT V2770   FOR L=54272 TO 54296:POKEL,0 : NEXT2780   GOTO 15702790   REM SAD RESPONSE2800   FOR L=54272 TO54296:POKEL,0:NEXT2810   FOR V=1 TO 32820   POKE54296,152830   POKE54277,682840   POKE54278,2482850   POKE54273,1502860   POKE54272,(2+20*V)2870   POKE54276,1292880   FOR X= 1 TO 500 : NEXT X2890   POKE54276,162900   NEXT V2910   FOR L=54272 TO 54296:POKEL,0:NEXT2920   GOTO 1520100   REM SLA111.1110   OPEN 2,2,2,CHR$(6)+CH 1)130   DIM X(500)140   PRINT CHR$(147)150   U$=&#34;&#34;160   FOR T= 1 TO 8:S(T)=0:NEXT T170   FOR T= 1 TO 20 : GET#2, A$ :NEXT T180   GET#2,A$190   IFA$&lt;&gt;CHR$(63) THEN 180210   PRINT CHR$(147)220   PRINT&#34;ENTER YOUR NAME&#34;;230   T$=&#34;3&#34;240   GET B$250   IF B$&lt;&gt;&#34;&#34; THEN U$=U$+B$:Z=LEN(U$):Z=Z-2:IF B$=CHR$(20) THEN   U$=LEFT$(U$,Z)260   IF B$&lt;&gt;&#34;&#34; THEN PRINT B$;270   IF B$=CHR$(13) THEN GOTO 310280   GET#2,A$290   IF A$=CHR$(137) THEN 140300   GOTO 230310   FOR I= 1 TO 20:GET#2,A$:NEXT I320   FOR I=1 TO 499330   X(I)=PEEK(56577)340   IF I &lt; 4 THEN GOTO 380350   Y= X(-1)+  X(I)360   X=X(I-3)+ X(I-2)370   IF X-Y &lt;0 THEN GOTO 390380   NEXT I390   PRINT#2,T$;U$;CHR$(13)400   REM ITEM 410 THRU 520 GETS A LIST OF PLAYERS FROM THE MASTER410   GET#2,A$420   IF A$&lt;&gt;CHR$(32) THEN 410430   FOR T=2 TO 10440   X$=&#34;&#34;450   GET#2,A$460   IF A$=&#34;&#34; THEN GOTO 450470   IF A$=CHR$(32) THEN GOTO 450480   IF A$&lt;&gt; CHR$(13) THEN X$=X$+A$490   IF A$= CHR$(13) THEN U$(T)=X$500   IF A$ &lt;&gt; CHR$(13) THEN GOTO 450510   IF U$(T)=&#34;&#34; THEN U$(T)=CHR$(48)520   NEXT T530   FOR T= 1 TO 8540   U$(T)=U$(T+2)550   NEXT T560   PRINT &#34;NAMESCORE&#34;570   FOR T=1 TO 8580   PRINT U$(T);TAB(16);S(T)590   NEXT T600   X$=&#34;&#34;610   REM ITEM 620 THRU 910 GETS PROBLEM FROM MASTER AND SENDS ANSWERS TO   MASTER620   GET#2,A$630   IF A$=CHR$(120)THEN 1090640   IF A$ &lt;&gt; &#34;&#34; OR A$&lt;&gt;CHR$(13)THENY$=Y$+A$650   IF A$=CHR$(13) THEN PRINT Y$660   IF A$=CHR$(13) THEN Y$=&#34;&#34;670   IF A$=CHR$(100) THEN 920680   IF A$=CHR$(137) THEN 140690   GET B$700   IF B$&lt;&gt;&#34;&#34;THEN PRINT B$;710   IF B$ &lt;&gt; &#34;&#34; THEN X$=X$+B$720   IF B$=CHR$(13) THEN Q$=T$+X$+CHR$(99)730   IF B$=CHR$(13) THEN X$=&#34;&#34;740   IF B$=CHR$(13) THEN GOTO 760750   GOTO 620760   REM SENDS ANSWER WHEN SO INSTRUCTED BY MASTER770   IF LEN(Q$)&gt;5 THEN Q$=T$+CHR$(99)790   FOR I=1 TO 65800   X(I)= PEEK(56577)810   IF I&lt; 4 THEN GOTO 850820   Y=X(I-1)+ X(I)830   X=X(I-3)+X(I-2)840   IF X-Y&lt;-32 THEN GOTO 870850   NEXT I860   GOTO 880870   PRINT#2,Q$880   Q$=&#34;&#34;:X$=&#34;&#34; :S$=&#34;&#34;890   Y$=&#34;&#34;900   FOR I=1 TO 5:GETB$:NEXT I910   GOTO 620920   Q$=&#34;&#34;:X$=&#34;&#34; :S$=&#34;&#34;:P CHR$(147)930   FOR W= 1TO10:GETB$:NEXT940   GET#2, A$950   IF A$=&#34;&#34; THEN 940960   IF A$&lt;&gt; CHR$(101) THEN S$=S$+A$970   IF A$ &lt;&gt; CHR$(101) THEN GOTO 940980   F$=LEFT$(S$,2) : T=VAL(F$)990   IF U$(T)=&#34;&#34; THEN U$(T)=CHR$(48)1000   S$(T)=MID$(S$,3)1010   S(T)=VAL(S$(T))1020   PRINT&#34;NAMESCORE&#34;1030   FOR T=1 TO 81040   PRINTU$(T);TAB(16);S(T)1050   NEXT T1060   X$=&#34;&#34; : Y$=&#34;&#34; :Q$=&#34;&#34;1070   FOR I=1 TO 5:GETB$:NEXT I1080   GOTO 6201090   REM GET CONTROL MESSAGE1100   C$=&#34;&#34;1110   FOR I=1 TO 201120   GET#2,A$1130   IF A$=CHR$(121) THEN 11601140   IF A$&lt;&gt;&#34;&#34; THEN C$=C$+A$1150   NEXT I1160   REM ANIMATION ROUTINE1170   V$=LEFT$(C$,1)1180   C$=MID$(C$,2,1)1190   C=VAL(C$)1200   IF C=1 AND V$=T$ THEN 12401210   IF C=2 AND V$=T$ THEN 13801220   FOR X=1 TO 1000:NEXT1230   GOTO 6201240   REM HAPPY RESPONSE1250   FORL=54272 TO 54296:POKEL,0:NEXT1260   FOR I=1 TO 31270   POKE54296,151280   POKE54277,1901290   POKE54278,1301300   POKE54273,(I+16)1310   POKE54272,(36+I)1320   POKE54276,171330   FORT=1 TO 500 :NEXT1340   POKE54276,161350   NEXT1360   FORL=54272TO54296:POKEL,0:NEXT1370   GOTO 6201380   REM SAD RESPONSE1390   FORL=54272 TO 54296:POKEL,0:NEXT1400   FOR I= 1 TO 31410   POKE54296,151420   POKE54277,681430   POKE54278,2481440   POKE54273,1501450   POKE54272,(2+20*I)1460   POKE54276,1291470   FORT=1 TO 500 :NEXT1480   POKE54276,161490   NEXT1500   FOR L=54272TO54296: POKEL,0:NEXT1510   GOTO 620__________________________________________________________________________