Gmerge January 8, 2007

            The merging of people who could not correctly enter names and id #s has been discontinued.  All spelling variants and new id #’s are treated as separate entries.  A human will need to make judgements about the merging.  The ability to enter the menu name from the command line has been added using the watcom fortran version of this feature.  Sorting is by name and section, but people are the same only if the id #’s are equal in addition to the names. GMERGE.zip

The older version is in oGMERGE.zip

Gmerge, November 5, 2003

            Gmerge once ran on the CMS system used by the NERDC.  The CMS features are present in versions before 10/1/2003, but have been removed from this version.  The input has been changed to allow a comma delimited, csv, file from the registrar as the first exam.  The output has been changed to include a comma between each entry in the grade list.  The first allows the registrar’s name list to be used to get the best estimate for the student names and id numbers.  The second allows excel to read the output so that even more complex schemes can be used in the grading.  Be sure to read the section #Output flags-troubles.

Compilation

Re-compilation will probably be necessary for almost all departments.  This is due to the fact that every professor has his favorite grading scheme.  The option of linear scaling of each exam before adding is part of the general menu.  The options of dropping the lowest,  the lowest two, or the lowest except the final are already on the menu page.  In addition there are a number of grading schemes named for their inventors. 

            The file cgmerge.bat is set up to compile using M.S. Fortran 5.1.  The simple command line fl32 gmerge.for gmread.for rnumb.for is in the file fl32gmerge.bat which uses the MS power station to compile. 

The Watfor compiler can both edit and compile this code.  Edit gmerge.for, then issue the command run /exe to produce gmerge.exe.  This is the best debugger.

The file gmerge.wpj can be opened by the Watcom ide and used to both compile and edit gmerge.  OpenWatcom is available from http://www.openwatcom.org.

The menu

            Go to ../GMERGE and click on GMERGE.EXE to bring up a dos window with the line

ENTER THE GMERGE MENU NAME

erika

            The erica name is the generic name for a sequence of exams named erika1, erika2 and erika3.  It is also the name erika.mnu which gmerge creates so that after the first use, the menu lines stay the same.  A <cr> leads to

 

 1 RESULTS GO IN FILE  erika    GRA

                       FNAME    EXT          WT,0    WT,,1

 2 Reg (csv) or grade  erikaREG GRA      ISC =  0     + 1     TIMES SCORE+.5

 3 INPUT GRADE FILE    erika1   GRA      ISC =  0     + 1     TIMES SCORE+.5

 4 INPUT GRADE FILE    erika2   GRA      ISC =  0     + 1     TIMES SCORE+.5

 5 INPUT GRADE FILE    -------- GRA      ISC =  0     + 1     TIMES SCORE+.5

 6 INPUT GRADE FILE    -------- GRA      ISC =  0     + 1     TIMES SCORE+.5

 7 INPUT GRADE FILE    -------- GRA      ISC =  0     + 1     TIMES SCORE+.5

 8 INPUT GRADE FILE    -------- GRA      ISC =  0     + 1     TIMES SCORE+.5

 9 SORT RESULTS BY SECTIONS      YES

10 USE DEFAULT GRADES            YES

 12 SHOULD BE 0 TO INCLUDE ALL SCORES IN GRADE

              1 TO DROP LOWEST SCORE

              2 TO DROP LOWEST SCORE EXCLUDING LAST

              3 TO DROP LOWEST SCORE EXCLUDING LAST 2

 4-MUTALG,5-DETERG,6-IPSEG

12                               0

 ENTER THE LINE NUMBER,CHANGE,CHANGE, TO CHANGE A LINE

 ENTER LINE NUMBER, WT, A, B, TO CHANGE THE WTS

 ENTER (CARRIAGE RETURN <CR> TO MERGE AND GRADE OR S TO STOP

 

Line 1 tells the user that the results will be found in the file erica.gra.

Line 2 hints that there should be a registrars file named erikaREG.csv.  If this is the case the directions at the bottom of the page say to enter

2,,csv

to change the extension on the file to csv.  This is important the code identifies a registrar file by this extension.  If there is no registrar file, the line needs to be changed to give the name of the output of the first grade run.  Then the next two in the same way.

2,erika1

3,erika2

4,erika3

Suppose that on the third exam, it is desired to give the students 10 points for simply showing up and to add to this twice the actual score.  The command is

4,WT,10,2

This produces a menu ready to go.

 

 1 RESULTS GO IN FILE  erika    GRA

                       FNAME    EXT          WT,0    WT,,1

 2 Reg (csv) or grade  erika1   GRA      ISC =  0     + 1     TIMES SCORE+.5

 3 INPUT GRADE FILE    erika2   GRA      ISC =  0     + 1     TIMES SCORE+.5

 4 INPUT GRADE FILE    erika3   GRA      ISC =  10    + 2     TIMES SCORE+.5

 5 INPUT GRADE FILE    -------- GRA      ISC =  0     + 1     TIMES SCORE+.5

 6 INPUT GRADE FILE    -------- GRA      ISC =  0     + 1     TIMES SCORE+.5

 7 INPUT GRADE FILE    -------- GRA      ISC =  0     + 1     TIMES SCORE+.5

 8 INPUT GRADE FILE    -------- GRA      ISC =  0     + 1     TIMES SCORE+.5

 9 SORT RESULTS BY SECTIONS      YES

10 USE DEFAULT GRADES            YES

 12 SHOULD BE 0 TO INCLUDE ALL SCORES IN GRADE

              1 TO DROP LOWEST SCORE

              2 TO DROP LOWEST SCORE EXCLUDING LAST

              3 TO DROP LOWEST SCORE EXCLUDING LAST 2

 4-MUTALG,5-DETERG,6-IPSEG

12                               0

 ENTER THE LINE NUMBER,CHANGE,CHANGE, TO CHANGE A LINE

 ENTER LINE NUMBER, WT, A, B, TO CHANGE THE WTS

 ENTER (CARRIAGE RETURN <CR> TO MERGE AND GRADE OR S TO STOP

Entering <cr> produces #Results1.  The above menu is missing an item 11.  It goes straight from 10 to 12.  After looking at the results and the histogram the “correct” cutoffs are entered by changing item 10 to NO

10,NO

 

1 RESULTS GO IN FILE  erika    GRA

                       FNAME    EXT          WT,0    WT,,1

 2 Reg (csv) or grade  erika1   GRA      ISC =  0     + 1     TIMES SCORE+.5

 3 INPUT GRADE FILE    erika2   GRA      ISC =  0     + 1     TIMES SCORE+.5

 4 INPUT GRADE FILE    erika3   GRA      ISC =  10    + 2     TIMES SCORE+.5

 5 INPUT GRADE FILE    -------- GRA      ISC =  0     + 1     TIMES SCORE+.5

 6 INPUT GRADE FILE    -------- GRA      ISC =  0     + 1     TIMES SCORE+.5

 7 INPUT GRADE FILE    -------- GRA      ISC =  0     + 1     TIMES SCORE+.5

 8 INPUT GRADE FILE    -------- GRA      ISC =  0     + 1     TIMES SCORE+.5

 9 SORT RESULTS BY SECTIONS      YES

10 USE DEFAULT GRADES            NO

 THE HIGHEST GRADES FOR E,  D, D+,  C, C+,  B, B+,  A

11                      0   0   0   0   0   0   0    0

 12 SHOULD BE 0 TO INCLUDE ALL SCORES IN GRADE

              1 TO DROP LOWEST SCORE

              2 TO DROP LOWEST SCORE EXCLUDING LAST

              3 TO DROP LOWEST SCORE EXCLUDING LAST 2

 4-MUTALG,5-DETERG,6-IPSEG

12                               0

 ENTER THE LINE NUMBER,CHANGE,CHANGE, TO CHANGE A LINE

 ENTER LINE NUMBER, WT, A, B, TO CHANGE THE WTS

 ENTER (CARRIAGE RETURN <CR> TO MERGE AND GRADE OR S TO STOP

Well now the grade points are a bit to generous, everyone gets an A.  Looking at #grade_cut_offs it is obvious that

11,25,35,45,52,58,64,65,100

 

 1 RESULTS GO IN FILE  erika    GRA

                       FNAME    EXT          WT,0    WT,,1

 2 Reg (csv) or grade  erika1   GRA      ISC =  0     + 1     TIMES SCORE+.5

 3 INPUT GRADE FILE    erika2   GRA      ISC =  0     + 1     TIMES SCORE+.5

 4 INPUT GRADE FILE    erika3   GRA      ISC =  10    + 2     TIMES SCORE+.5

 5 INPUT GRADE FILE    -------- GRA      ISC =  0     + 1     TIMES SCORE+.5

 6 INPUT GRADE FILE    -------- GRA      ISC =  0     + 1     TIMES SCORE+.5

 7 INPUT GRADE FILE    -------- GRA      ISC =  0     + 1     TIMES SCORE+.5

 8 INPUT GRADE FILE    -------- GRA      ISC =  0     + 1     TIMES SCORE+.5

 9 SORT RESULTS BY SECTIONS      YES

10 USE DEFAULT GRADES            NO

 THE HIGHEST GRADES FOR E,  D, D+,  C, C+,  B, B+,  A

11                     25  35  45  52  58  65  65  100

 12 SHOULD BE 0 TO INCLUDE ALL SCORES IN GRADE

              1 TO DROP LOWEST SCORE

              2 TO DROP LOWEST SCORE EXCLUDING LAST

              3 TO DROP LOWEST SCORE EXCLUDING LAST 2

 4-MUTALG,5-DETERG,6-IPSEG

12                               0

 ENTER THE LINE NUMBER,CHANGE,CHANGE, TO CHANGE A LINE

 ENTER LINE NUMBER, WT, A, B, TO CHANGE THE WTS

 ENTER (CARRIAGE RETURN <CR> TO MERGE AND GRADE OR S TO STOP

are much more reasonable

Table 1 Actual grade distribution from this menu

 SCORES LESS THAN OR EQUAL TO    25 RECEIVED E  

 SCORES BEGINNING WITH   26 UP TO AND INCLUDING   35 RECEIVED D  

 SCORES BEGINNING WITH   36 UP TO AND INCLUDING   45 RECEIVED D+ 

 SCORES BEGINNING WITH   46 UP TO AND INCLUDING   52 RECEIVED C  

 SCORES BEGINNING WITH   53 UP TO AND INCLUDING   58 RECEIVED C+ 

 SCORES BEGINNING WITH   59 UP TO AND INCLUDING   65 RECEIVED B  

Registrar file

Table 2  Small part of a registrar file

3810

32111100

ACxxx HAxxx

3811

49111110

ADxxx MIxxx XX

4936

4611110

AGxxx Vxxx

3811

1311110

ALxxx MUxxx Cxxx

3811

5211110

ALxxx Axxx

3809

7211110

ALBxxx Txxx Lxxx

3810,32167200,ACxxx HAxxx

3811,49123860,ADxxx MIxxx XX

4936,4669840,AGxxx Vxxx

            The second set of data is the comma separated variables that were downloaded from the registrar.  The data in the table is the way that this probably looked in excel after this download.  There can be as many columns in the file as are convenient, but the first three must be section number, student id, student name.

Results

            I usually set the .gra files to open in notepad.  This one can also be opened by excel. The most relevant part of the first pass is #grade_cut_offs.  No one has ever agreed with these default cutoffs. 

******************

 

 

 THERE ARE  193 POTENTIALLY DISTINCT STUDENTS HERE

 THE AVE OF THE  144 STUDENTS WHO HAD POS FINAL GRADES, IS  50.35417

 THE HISTOGRAM INCLUDES THESE ONLY

                                     10                  20                  30

    NUMBER  SCORE . 1 2 3 4 5 6 7 8 9 . 1 2 3 4 5 6 7 8 9 . 1 2 3 4 5 6 7 8 9

       0      1  :

       0      2  :

       0      3  :

       0      4  :

       0      5  :

       0      6  :

       0      7  :

       0      8  :

       0      9  :

       0     10  :

       0     11  :

       0     12  :

       0     13  :

       0     14  :

       0     15  :

       0     16  :

       0     17  :

       0     18  :

       0     19  :

       0     20  :

       0     21  :

       0     22  :

       0     23  :

       0     24  :

       0     25  :

       0     26  :

       0     27  :

       1     28  :******

       1     29  :******

       4     30  :***************************

       1     31  :******

       1     32  :******

       0     33  :

       3     34  :********************

       4     35  :***************************

       3     36  :********************

       1     37  :******

       3     38  :********************

       1     39  :******

       2     40  :*************

       3     41  :********************

       3     42  :********************

       5     43  :**********************************

       1     44  :******

       6     45  :*****************************************

       5     46  :**********************************

       9     47  :*************************************************************

       4     48  :***************************

       8     49  :*******************************************************

       4     50  :***************************

       7     51  :************************************************

       6     52  :*****************************************

       4     53  :***************************

       4     54  :***************************

       2     55  :*************

       3     56  :********************

       8     57  :*******************************************************

       4     58  :***************************

       5     59  :**********************************

       3     60  :********************

       2     61  :*************

       2     62  :*************

       3     63  :********************

       4     64  :***************************

       3     65  :********************

       1     66  :******

       3     67  :********************

       5     68  :**********************************

       1     69  :******

       0     70  :

       0     71  :

       0     72  :

       0     73  :

       0     74  :

       0     75  :

       1     76  :******

 SCORES LESS THAN OR EQUAL TO    31 RECEIVED E  

 SCORES BEGINNING WITH   32 UP TO AND INCLUDING   42 RECEIVED D  

 SCORES BEGINNING WITH   43 UP TO AND INCLUDING   44 RECEIVED D+ 

 SCORES BEGINNING WITH   45 UP TO AND INCLUDING   52 RECEIVED C  

 SCORES BEGINNING WITH   53 UP TO AND INCLUDING   56 RECEIVED C+ 

 SCORES BEGINNING WITH   57 UP TO AND INCLUDING   63 RECEIVED B  

 SCORES BEGINNING WITH   64 UP TO AND INCLUDING   65 RECEIVED B+ 

 SCORES BEGINNING WITH   66 UP TO AND INCLUDING   76 RECEIVED A  

    0,  310111100,nrl,  ABxx         EC ,   7,   7,****,****,****,****,**** ,X  

    0,   35111100,nrl,  ADxxx        JB ,  17,  18,  32,****,****,****,  67 ,A  

    0,   46111100,nrl,  AGxxxx      V  ,  12,   7,  28,****,****,****,  47 ,C  

    0,  131111100,nrl,  ALxxxx     MC ,  15,  14,  30,****,****,****,  59 ,B  

The nrl means that this student is not in the registrar’s list – applies to all in this run.  When the registrar’s list is present and the ordering is not by section, these people will be very close to their actual names.  With the correct id number, they will be merged.

 

Output flags-troubles

            Occasionally there is a duplicate name in the input grade file.  This can be caused by two students with the same last name and initials.  This is flagged at the top of the gmerge output file, jrb.gra, as shown in table 1

Table 3  Duplicates in the grade file

TROUBLE WITH nrl,Bxxxxx       XX

      DUPLICATED IN jrb1f03.GRA                            

      ADJ SCORES ARE            6          15

      REG ID    511111111 2nd IN LIST IS            0

 

   Bxxxxx did not have his middle initial in the registrar’s list.  The gra file has his social security number, rather than his student id.  This kept the result from going into the registrar’s list of names and accounts for the nrl, on line one in the above table.  The second line in the above table is the name of the gra file in which this problem first occurs.  This problem needs to be corrected and the code re-run.

 

Table 4  Mergers

 FOLLOWING PEOPLE MERGED

    0           0ANxxxxx Z    XX -9999    5

 6206    41111111ANxxxxxZ     XX     6-9999

 ******************

 

Gmerge attempts to merge people with missing exams on the basis of similar spelling and appropriate missing exams.  ANxxxxx Z left a blank in the last name on exam1 and then filled it in on exam 2.  Had the student id been entered on exam 1, the error would have been corrected by comparing student id’s, and the name would not appear here.  The code merges the two people into one and the resulting output is 

6206,   41111111,,ANxxxxxZ Xxxxxxx Xxx,   6,   5,****,****,****,****,  11 ,D  

In this list the section number, id, and name are from the registrar’s list. 

            The code does not need to be re-run if this is correct, but it has happened that students were incorrectly merged.

 

Table 5  Not in registrar’s list

3812,   31111111,,Wxxxxxxxxx Exxxxxxxxx ,****,****,****,****,****,****,**** ,I  

    0,  511111111,nrl,  Wxxxxxxxxx   EA ,   8,   4,****,****,****,****,  12 ,D+ 

            This item appears with a complete middle name and no middle initial in the registrar’s list.  In addition the social security number has been entered on the exam rather than the student id.  Either dropping the middle initial or changing the id number on the gra list will cause this result to be merged with the registrar’s list.  Correcting this and re-running is recommended owing to the fact that if there are many corrections, it is easy to forget one.  It is, however, relatively easy with an editor or notepad to correct this error.