# Teacher's helper, student's friend (Rainbow 1981-09)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Home / Publications / Rainbow / Rainbow 1981 / Rainbow 1981-09Template:PageName For the teacher amongst us, GRADER can be a reaI boon!

However, we would also emphasize that GRADER can easily be adapted for keeping up to date records on a single student. By using GRADER, the student would be able to chart his or her progress throughout a grading period and know where he stands at all times. It’s also a good way for parents to keep track of how a student is doing.

We will go through GRADER part by part so it will be easier to adapt It, if necessary.

Lines 10-25 initiate the program and ask for the type grade you will be compiling, Because, in our use, the reading grade only has daily averages, we wrote a special routine for reading grades at lines 600-780. This could be your whole program if all grades are weighted the same.

Lines 60-110 and 120-180 do the actual computation of grades. Since this particular program was written for third grade level, there are a lot of children who make 100's, especially on daily work. To eliminate the tedium of entering all those 100's, we added the subroutines 340-380 and 390-430 to make the inputting of 100's much easier. This really cuts down on the time it takes to enter the grades.

We chose to enter the grades as a string and then take the value of the string so we could assign the word "end" to break out of the grade input loop. While it would have been just as easy to use something like "IF S>150 GOTO 110" and then use any real high number, it seemed easier to use an easily-recognized word to break out of the loop.

Please also note lines 70 and 140. These take care of mistakes. If an incorrect grade is entered, just enter the incorrect grade again as a minus. That not only reduces the total by the incorrect number, it also reduces the number of "chances" by one, lines 110 and 100 take the average of the types of grades.

Line 190 is where the allocation of weight to the types of grades is made. In this instance, teats are worth one-third and daily work two-thirds. These percentages are easily changed to heat whatever needs you have.

The remainder of the program is devoted to the printout. Quite a bit of attention was paid to this because, in the situation for which it was written, a great many students are "traded" for either enriched or remedial work. The printout, including the name, subject, number of "chance," total points and number of 100's constitutes a full report to the student's "home" teacher. It means once the grade are computed, than do not have to be re-recorded elsewhere.

Also, to make life easier, the program is set to "form feed" for a 66-line piece of paper. This mikes the whole report easier to deal with.

There are certain economies which could have been employed to save memory space, particularly in the printout image statements, but, since this program fits very comfortably in 4k, we did not see that as necessary. Of course, you need Extended Color Basic to use the PRINTUSING statement, but. If you do not have that, it is easily convertable.

The listing:

2 '**********************
4 '* (c) FALSOFT 1981   *
5 '**********************
20 INPUT "SUBJECT",UP\$:SB\$=UP\$+PU\$
30 CLS
40 INPUT "STUDENT'S NAME",A\$
50 GOSUB340
60 INPUT "enter DAILY SCORE (OR END)",S\$
70 IF S\$="END" TNEN 110
75 S=VAL(S\$)
80 IF S<0 GOTO 320
90 N=N+1:D=S+D
100 GOTO 60
110 Z=D/N:CLS
120 GOSUB390
130 INPUT "enter TEST SCORE (OR END)",T\$
140 IF T\$="END" TNEN 100
145 T=VAL(T\$)
150 IF T<0 GOTO 330
160 M=M+1:B=T+O
170 GOTO 130
100 Y=O/M:CLS
190 X=(Y*.334)+(Z*.666)
200 CLS:PRINT
205 IF LC=4 THEN PRINT#-2,	PRINT#-2,"":LC=I:GOTO210
207 LC=LC+1
210 GOSUB400
220 PRINT#-2,""
230 PRINT#-2,"DRILY AVERAGE ",:PRINT#-2,USING"##.##",Z
240 PRINT#-2,"TEST AVERAGE    ",:PRINT#-2,USING"##.##",Y
270 PRINT#-2,"":PRINT#-2,"DAILY PAPERS";:PRINT#-2,TAB(13);:PRINT#-2,USING"##";N; :PRINT#-2,TAB(18)"POINTS";: PRINT#-2,TAB(23);: PRINT#-2,USING"#,###",D;: PRINT#-2,TAB(29)"......(Student made"N"100's on dally work)"
280 V=N+M:F=O+B
290 PRINT#-2,"TOTAL TESTS";:PRINT#-2,TAB(13);:PRINT#-2,USING"##",M,:PRINT#-2,TAB(18)"POINTS";:PRINT#-2,TAB(23);:PRINT#-2,USING"#,###";B;:PRINT#-2,TAB(29)"..... (Student made"K"100's on tests)"
300 PRINT#-2,"CHANCES";:PRINT#-2,TAB(13);PRINT#-2,USING"##";V;:PRINT#-2,TAB(18)"POINTS";:PRINT#-2,TAB(23);:PRINT#-2,USING"#,###";F
310 GOTO 448
320 N=N-1:O=S+O:GO-TO60:'???? if this GOTO joins a strange WEB error occurs (403 Prohibited)
330 M=M-1:B=T+0:GO TO130:'???? if this GOTO joins a strange WEB error occurs (403 Prohibited)
340 INPUT "NOW MANY 100'S DID THIS STUDENT  MAKE IN DAILY WORK";N
350 Q=N*100
360 N=N+N
370 O=Q+O
330 RETURN
390 INPUT "NOW MANY 100'S OID THIS STUDENT MAKE ON TESTS";K
400 Q=K*100
410 M=M+K
420 B=Q+B
430 RETURN
440 PRINT#-2,STRING\$(OO,"*")
445 PRINT#-2,CHR\$(18)""CHR\$(38)
450 PRINT#-2,""
460 H=0:D=B:Z=0:S=0:T=0:M=0:O=0:Y=0:X=0:V=0:F=8:Q=0:K=0
470 GOTO30
480 R=LEN(SB\$):C=42-A:PRINT#-2,CHR\$(31);TAB(C/2)S0\$
490 PRINT#-2,CHR\$(30);TAB(37)"FOR";CHR\$(31)
500 A=LEN(A\$):C=40-R:PRINT#-2,TAB(C/2)A\$;CHR\$(30)
510 RETURN
600 CLS
610 INPUT "STUDENT'S NAME";A\$
620 COSUB340
630 INPUT "enter DAILY SCORE (OR END)";S\$
640 IF S\$="END" THEN 680
643 S=VAL(S\$)
650 IF S<0 TNEN N=N-1:D=S+D:GOTO630
660 N=N+1:O=S+D
670 GOTO630
680 Z=D/N:CLS
690 GOSUB400
700 PRINT#-2,""