U-021, An Electronic Gradebook Package

  This is a publication of Information Technology and Communication, Universi-
  ty  of  Virginia,  Charlottesville,  VA, copyright 1995.  Please credit UVa,
  ITC, and the author when referring to and/or copying  this  publication  for
  your own purposes.

  This ITC publication was designed to be displayed on-line using a  monospace
  font.  


         TITLE:Electronic Gradebook Package        DOCUMENT NO:  U-021

         DATE:  May 1, 1995                        VERSION NO:  4





  INTRODUCTION

       The gradebook programs are designed to maintain  classroom  grades  for
  instructors  and  teaching  assistants.  These programs, which reside on the
  RS/6000 computers, include a number of useful features,  such  as  computing
  weighted  averages;  optionally  deleting  the  lowest  grade  from a set of
  grades; producing a formatted gradebook to be printed; producing a histogram
  of  grades;  and  sorting the gradebook by name, by student ID, or by one of
  the grades.

       The commands in the gradebook package and their functions are:

       gconvt  - Convert a class list from the Registrar to gradebook format.
       gnew    - Create a gradebook and add or alter information.
       gtype   - Compute averages and print a formatted gradebook.
       ghist   - Create a histogram on a particular grade field.
       gsort   - Sort on any field in ascending or descending order.
       gletter - Assign letter grades to a field in the gradebook.


  DEFINITION OF TERMS

  Following is a list of some words and symbols  used  in  this  document  and
  their definitions:

     field       Unique name or title for each column in the gradebook file.

     record      A line in the gradebook file which contains information for a
                 person.

     max         Maximum score which can be earned for each  test  or  assign-
                 ment.  Each  grade  field must be assigned a non-zero maximum
                 value.



  U-021                 An Electronic Gradebook Package                      2

     weight      Weight of each field.  This value  may  be  any  real  number
                 greater  than  or equal to 0.  Non-grade fields have a weight
                 of zero.

     Ctrl        Symbol to represent the control  key.   To  enter  a  control
                 character,  hold  down  the control key (labeled Ctrl on most
                 keyboards), press the letter key indicated, and then  release
                 both keys (as in Ctrl-d).

     <CR>        Symbol to represent the carriage return  key,  often  labeled
                 RETURN, ENTER, or .


  CREATING THE GRADEBOOK

       There are two methods available  for  creating  the  initial  gradebook
  file.  One method is to type in the names and ID numbers using the gnew com-
  mand.  This interactive method works well if your class size is small.   For
  larger  classes, a quicker (and hopefully less painful) method is to request
  that the Registrar send you the names and Social Security  numbers  of  stu-
  dents  in your class and use the gconvt command to create the gradebook file
  for you.  Both methods are explained below.

       The default gradebook filename used by all the  gradebook  programs  is
  scores.   However,  you may name the file anything you choose.  If you use a
  name other than scores, you will have to tell  the  gradebook  commands  the
  name  you have chosen.  Any valid Unix filename may be used.  The input file
  for all gradebook commands except gconvt must be in  the  special  gradebook
  file format, which is outlined in the Appendix.

  Using Gconvt to Create the Gradebook

       Through electronic mail, the Registrar's office can provide you with  a
  list  of  students  who  are  registered for your class.  The command gconvt
  reorganizes this information into a gradebook file, keeping you from  having
  to type in each person's name and student ID.

       You must first request this information from  the  Registrar's  office,
  and  it  will be sent to your electronic mail address.  When the information
  arrives in your mailbox, store it in a file and edit that file to remove the
  mail headers.  The format of the Registrar's file is shown in the Appendix.

  To put the file in gradebook format, run the following command, typing < and
  > as shown:

          gconvt <registrar_file >grade_file<CR>

  where

     registrar_file is the file received from the Registrar's office with mail
                    headers removed; and

     grade_file     is  the  gradebook  file  in  the   proper   format.    If
                    >grade_file is omitted, the gradebook file will be printed
                    to your screen.



  U-021                 An Electronic Gradebook Package                      3

  Using Gnew to Create the Gradebook
  Use the following command to create a gradebook file interactively:

          gnew -i grade_file<CR>

  where grade_file is the name of the gradebook file  you  will  create.   The
  name  can be scores or any other name that you choose.  The file should have
  a unique name which is not already present on your account.  After you enter
  this command, you will see the message

          gnew:  can't open "grade_file", new gradebook?

  This means that the file grade_file was not found.  Since you want to set up
  a new gradebook file, type the letter y followed by a carriage return.  Gnew
  will then prompt you for students' names (up to 32 characters with last name
  first)  and  ID numbers (up to 12 characters).  Enter each piece of informa-
  tion on a separate line, ending each line with a carriage return.  When  you
  have entered this information for all the students, stop the program by typ-
  ing a Ctrl-d.

  EXAMPLE

       A sample session using gnew to set up a  gradebook  follows,  with  the
  user  input in bold print.  In this example, Henry Wadsworth's student ID is
  not known.

            $ gnew -i scores<CR>
            gnew:  can't open "scores", new gradebook? y<CR>

            gradebook created.

            add student records to gradebook...

            entry 1:
            name (last, first) = Smith, Harry<CR>
            student# = 112324085<CR>

            entry 2:
            name (last, first) = Elsworth, Garth<CR>
            student# = 223006555<CR>

            entry 3:
            name (last, first) = Atkins, Maria<CR>
            student# = 220157788<CR>

            entry 4:
            name (last, first) = Wadsworth, Henry<CR>
            student# = <CR>

            entry 5:
            name (last, first) = Ctrl-d




  U-021                 An Electronic Gradebook Package                      4

  UPDATING THE GRADEBOOK USING GNEW
  To add or alter information in the gradebook file, use the following command:

   gnew field_id [-i grade_file] [-f score_file] [-e error_file] [name score. . .]


  where

     field_id    is one of the following:

              o  field title (as specified in the header line  of  the  grade-
                 book);

              o  the integer number of a field, where the fields are  numbered
                 from left to right, beginning with 1 for the name field; or

              o  one of the keywords fields, max, weights, adds, or drops.

     -i grade_file
                 specifies the name of your gradebook file.  If you use scores
                 as  your filename, omit -i grade_file unless you are creating
                 a gradebook.

     -f score_file
                 specifies the name of  the  file  that  contains  student  ID
                 numbers  and scores for a new field.  If the -f option is not
                 included on the command line, gnew assumes that you  will  be
                 entering  the  test  scores  interactively.   See  ``Adding a
                 Field'' below and the Appendix for more information.

     -e error_file
                 specifies the name of the file that contains  the  mismatches
                 found between grade_file and score_file.  If the -e option is
                 not used, the mismatches will be displayed as  part  of  your
                 interactive session.

     name        is the name of a student.

     score       is the score of a test or assignment for that student.   Note
                 that name and score must be paired.


  When gnew prompts you for input, there are four responses you can make:

       o  Ctrl-d saves your changes and ends the program.

       o  Ctrl-c exits the program without changing the gradebook.

       o  A carriage return leaves the current line unchanged and prompts  you
          with the next line.

       o  Anything else becomes the new contents of a field.


  Adding a Field

       There are two ways to add new scores to a  gradebook:   you  can  enter
  each score interactively, or gnew can read the scores from a file.  To enter
  the test scores interactively, type gnew field_id, where field_id is  a  new
  field  title that has not already been used in the gradebook file.  You will




  U-021                 An Electronic Gradebook Package                      5

  be asked if this is a new field; type y<CR>.  The program  will  prompt  you
  for  the  maximum score, weight of the test, and the students' scores.  When
  each student's name is displayed on the screen, enter the score and press  a
  carriage  return.   After  scores  have been entered for all students in the
  gradebook, you will be returned to the Unix command line.

       Another way to add a new score field to the gradebook is  to  bring  in
  student  IDs and test scores from a file.  The format required for this file
  is shown in the Appendix.  This file can be  produced  by  the  test-scoring
  program  run by ITC/Carruthers Hall, or by the ts program which is available
  on the RS/6000 computers (see document  U-022,  ``TS:  A  Test-Scoring  Pro-
  gram'').

       To read scores in from a file, use the -f option on the  command  line.
  Be  sure  that  the  field title you choose has not already been used in the
  gradebook file.  You will be asked if this is a new field; type y<CR>.   The
  program  will  prompt  you for the maximum score and the weight of the test;
  then it will read the students' scores from the file.  Each student  in  the
  gradebook  file  whose student# matches an ID in score_file will receive the
  test score found in the matching entry.  Students whose IDs do not appear in
  score_file  must  have  their scores entered interactively.  Also, gnew will
  display student IDs found in score_file which do not exist in the  gradebook
  file.

       To  save  the  list  of  mismatches  between  the  gradebook  and   the
  score_file,  use  the  -e option on the command line.  The list will then be
  saved in error_file so you can have it available for making  corrections  to
  the gradebook interactively.

       Remember that neither the hyphen (-) nor the underscore (_)  should  be
  used  in  field  titles, and that the field title should contain at least as
  many characters as the largest element in that field.  Also, if the  -d  op-
  tion  of gtype will be used to drop the lowest of a group of grades, all the
  field titles for those grades must begin with the same string of letters, as
  in QUIZ1, QUIZ2, QUIZ3, etc.

       If you specify the integer number of a field that does not exist in the
  gradebook  file,  gnew  will assume that you are adding a new field and will
  prompt you for information for that field.  You can reorder fields using the
  rangelist option of gtype.


  Changing Information in a Field

       To alter existing data in a field of the gradebook file, enter the name
  of an existing field on the gnew command line.  Gnew will prompt you for all
  information associated with that field, displaying its identifying  informa-
  tion and current value, and prompting for new values.  You can enter new in-
  formation to change the value of a field, a  carriage  return  to  keep  the
  value  unchanged,  or  a  Ctrl-d to exit the program, updating the gradebook
  file.  If you specify a valid integer number of a field, gnew  will  display
  the field's title and current value, and will prompt you for a new value.


  Changing the Gradebook Using Keywords
  If you enter a keyword for field_id on the command line, you can modify  the
  gradebook file as follows:

     gnew fields    allows you to change  the  current  field  titles  in  the
                    gradebook file. The name and student# field titles may not




  U-021                 An Electronic Gradebook Package                      6

                    be changed. Press a carriage return at  any  prompt  where
                    you do not want to change the field name.

     gnew max       allows you to change the current maximum of any  field  in
                    the  file  scores except for the name and student# fields.
                    Press a carriage return at any prompt  where  you  do  not
                    want to change the maximum value for that field.

     gnew weights   allows you to change the current weights of any  field  in
                    the  file  scores except for the name and student# fields.
                    Press a carriage return at any prompt  where  you  do  not
                    want to change the weight for that field.

     gnew adds      allows you to add additional students.  For each new  stu-
                    dent  added,  you  will be prompted for each field that is
                    already defined in the gradebook.  Press Ctrl-d  when  you
                    are finished.

     gnew drops     allows you to delete students.  Be very careful  to  enter
                    the  entire name of each student who should be dropped, in
                    order to avoid dropping other students who have  the  same
                    last  name.   If you make a mistake or leave a blank line,
                    press Ctrl-c to exit  the  program  without  changing  the
                    gradebook.  Press Ctrl-d to save your changes and exit the
                    program.



  Changing Grades Using Name Score Pairs

       To change a grade, enter name score pairs at the end of the  gnew  com-
  mand  line.  For each pair listed, the program will select all records where
  the gradebook's name field matches name, and will change field_id to  score.
  You  must  specify  the  entire last name.  To make sure you change only one
  record, type the last name and the first name enclosed in single  quotes  to
  match the proper student, as in

           gnew quiz1 'Smith, Harry' 18<CR>


  In each selected record, the field  listed  on  the  command  line  will  be
  changed  to the value given by score. Each updated record will be printed on
  the screen.  If no match is found for a name, gnew will display a message on
  the screen.  If more than one match is found, gnew will display a message on
  the screen and make the changes to all records that matched.


  U-021                 An Electronic Gradebook Package                      7

  File Backup

       Before gnew updates your gradebook file, it makes a copy and puts it in
  a  file  named grade_file.bak.  If you use the default gradebook filename of
  scores, the backup file is saved as scores.bak.

  EXAMPLES


  1.   Assume that you are using the gradebook file scores described previous-
       ly.   To add the scores for quiz1 to the file, you would do the follow-
       ing:

               $ gnew quiz1<CR>
               is "quiz1" a new field? y<CR>
               max = 20<CR>
               weights = 1<CR>
               Smith, Harry = 20<CR>
               Elsworth, Garth = 15<CR>
               Atkins, Maria = 10<CR>
               Wadsworth, Henry = <CR>


  2.   Now assume that you want to change the score on quiz1 for Maria  Atkins
       to 12.  To do this, type

               gnew quiz1 Atkins 12<CR>

       or, if the last name ``Atkins'' may match more than one student, type

               gnew quiz1 'Atkins, Maria' 12<CR>



  GTYPE

       Gtype prints a formatted summary of a gradebook file.  This command has
  options to display selected fields only, compute weighted averages, drop the
  lowest score from a set of grades before computing the  average,  or  revise
  the gradebook with a reordered field list.  It has the following format:


         gtype [-i grade_file] [-o outfile] [-a] [-t] -s] [-d field_id]
                      [-r rangelist] [-n new_gradebook] [name ..]

  where

     -i grade_file     specifies the name of the input gradebook  file.   This
                       option  may  be  omitted  if your gradebook file is re-
                       ceived through standard input or it is named scores.

     -o outfile        specifies the name of the  file  to  which  gtype  will
                       write  the  formatted summary.  If this option is omit-
                       ted, the formatted summary will  be  displayed  on  the
                       terminal  screen.   Since this file is not in the stan-
                       dard gradebook format, it cannot be used  as  input  to
                       the gradebook programs.

     -n new_gradebook  produces a new gradebook file with any  changes  speci-
                       fied  by  the other gtype options; new_gradebook is the




  U-021                 An Electronic Gradebook Package                      8

                       filename you want the new gradebook to have.

  The remaining options specify processing to be done to the  input  gradebook
  before it is summarized or rewritten.

     -a                computes the average for each student in the gradebook.
                       Each score is converted to a percentage score by divid-
                       ing by the maximum score.  These percentages are multi-
                       plied  by the corresponding weights, and the sum of the
                       products is divided by the sum of the weights, yielding
                       a weighted average.  The average score is listed at the
                       end of each student's record in the output and is named
                       average.   A  missing score is treated as 0 (zero) when
                       the average is computed.  The -d option may affect this
                       computation.   The average field has a maximum score of
                       100 and a weight of 0.
                       If the -a option is specified with the -n  option,  the
                       computed  average  will be added to the new file with a
                       title of average.

     -t                computes the total score for each student in the grade-
                       book.   The  values in all fields except for name, stu-
                       dent#, and average are summed and printed.  If  the  -t
                       option  is specified with the -n option, the total will
                       be added to the new file with a field title of total.

     -s                prints the name field of the gradebook in short format,
                       which  is the name of each student up to a length of 16
                       characters, not including a comma.  The name field nor-
                       mally  occupies 32 characters.  This option is meaning-
                       ful only when printing a formatted summary.

     -d field_id       drops the lowest score  among  the  fields  matched  by
                       field_id  from  the  average  computation.   A field is
                       matched by field_id if field_id is an initial substring
                       of  the  field  name.  For example, if the lowest score
                       from QUIZ1, QUIZ2, QUIZ3 is to be dropped, use QUIZ  as
                       the  field_id.  This option implies the -a option; that
                       is, -a need not be specified if this option is used.

     -r rangelist      selects or reorders the fields for each student accord-
                       ing  to  rangelist.   Rangelist  consists  of a list of
                       ranges separated by slashes (/).  A range can be

                    o  a field title, which expands into a list of all  fields
                       that it matches (as described for option -d above);

                    o  two field titles  separated  by  a  hyphen  (-),  which
                       selects  all  fields  between  the  two  mentioned, in-
                       clusive; or

                    o  an explicit list of full  field  titles,  separated  by
                       slashes.

                   The period (.) matches the last (rightmost)  field  of  the
                   input gradebook.
                   When the input gradebook is read, its fields are rearranged
                   according  to  the  order of specified ranges in rangelist.
                   Fields may be deleted or duplicated using  this  mechanism.
                   Note  that  all  the fields to appear in the output must be




  U-021                 An Electronic Gradebook Package                      9

                   explicitly specified. Rangelist could be used to produce  a
                   formatted  listing  of  grades without names (for posting).
                   It can also be used to create a new gradebook file with the
                   fields in a different order.  If you do create a new grade-
                   book file, you must continue to specify name  and  student#
                   as the first two fields.


     [name ...]        selects only those students whose name field is matched
                       by  name.   The  names  on  the  command line should be
                       separated by spaces.
                       For example, this command would produce formatted  out-
                       put  for  only  those  records  in the input file whose
                       names contain Smith, Jones or Wood:

                               gtype Smith Jones Wood<CR>


       If gtype is invoked with no parameters, it will read  the  file  scores
  and  display  the title of each field across the terminal's screen.  It then
  displays all information for each student.

  EXAMPLES

  1.   To produce a formatted display of  the  contents  of  the  scores  file
       described  above,  where the information is presented in order of name,
       student#, and quiz1, type

               gtype -r /name/student#/quiz1<CR>

       The output will appear on the screen as follows:

                        name               student#    quiz1
                        Smith, Harry       112324085   20.0
                        Elsworth, Garth    223006555   15.0
                        Atkins, Maria      220157788   12.0
                        Wadsworth, Henry


  2.   To send the output of gtype to a file called scores.o so that it can be
       printed, use the command

               gtype -o scores.o <CR>

       Scores.o can be printed using the lpr command.  (For  more  information
       on lpr, see TIB-23, ``Output File Routing.'')

  3.   Suppose you have added more information to the  scores  file,  and  you
       want  to  compute the average for each student, display a short version
       of  the  student's  name,  and  create  a  new  gradebook  file  called
       scores.new  which contains average as the last field.  Type the follow-
       ing command:

               gtype -a -s -n scores.new<CR>

       The results will appear on the screen as follows:

               name        student#    quiz1   quiz2   test1   average
               Smith       112324085   20.0    18.0    89.0     92.0





  U-021                 An Electronic Gradebook Package                     10

               Elsworth    223006555   15.0    15.0    84.0     79.5
               Atkins      220157788   12.0    20.0    68.0     74.0
               Wadsworth                       14.0    91.0     63.0


  4.   Suppose you want a formatted version of the file scores to  be  written
       to the file scores.out including the average for each student, dropping
       the lowest quiz grade, and omitting the students' names and identifica-
       tion numbers.  The command is:

               gtype -o scores.out -d quiz -r quiz1-.<CR>

       Remember that the field title period (.) matches the rightmost field of
       the  input  gradebook.   After  executing  the  above command, the file
       scores.out will contain:

                           quiz1   quiz2   test1   average
                           20.0    18.0    89.0     92.7
                           15.0    15.0    84.0     81.0
                           12.0    20.0    68.0     78.7
                                   14.0    91.0     84.0

       The file scores.out may be printed using the lpr command.


  GHIST

       Ghist prints a histogram of the class scores for the requested field in
  the gradebook.  Output includes the following items:

       o  number of missing (blank) scores

       o  number of exterior scores (those not included in the histogram)

       o  arithmetic mean (not including missing scores)

       o  median

       o  standard deviation

       o  raw score

       o  normalized score (raw score divided by maximum score)

       o  percentile

       o  frequency (number of occurrences)

  The command has the following format:

        ghist field_id [-low_number] [+high_number] [-s step_size] [-c number_of_bars]
                                  [-i grade_file] [-o outfile]

  where

     field_id          is the title of a grades field.

     -low_number       is a numeric value indicating the lowest  score  to  be
                       printed  in  the  histogram.  The hyphen must be speci-
                       fied.




  U-021                 An Electronic Gradebook Package                     11

     +high_number      is a numeric value indicating the highest score  to  be
                       printed in the histogram.  The plus sign must be speci-
                       fied.

     -s step_size      specifies the range of raw scores on each  bar  of  the
                       histogram.

     -c number_of_bars specifies the number of bars on  the  histogram.   This
                       allows  you to choose the number of distinct groups di-
                       played in the histogram.

     -i grade_file     specifies the name of the input gradebook  file.   This
                       option  may  be  omitted  if your gradebook file is re-
                       ceived through standard input or if it is named scores.

     -o outfile        specifies the name of the  file  to  which  ghist  will
                       write  the  histogram.   If this option is omitted, the
                       histogram will be displayed on the screen.




  U-021                 An Electronic Gradebook Package                     12

       If neither +high_number nor -low_number is  specified  on  the  command
  line,  the  histogram  is  printed  from highest score to lowest score.  The
  count of scores outside the range is shown under ``exterior scores'' at  the
  top of the output; these scores are not included in the statistical computa-
  tions.  The -s and -c options are mutually exclusive; if both are  specified
  in the command line, the -c option is used and the -s option is ignored.

  EXAMPLES
  Two examples of output from a larger data file follow:
  $ ghist quiz1                           $ ghist quiz1 -c 4
  5 missing scores                        5 missing scores
  0 exterior scores                       0 exterior scores
  mean:   70.772058823529                 mean:   70.772058823529
  median: 77.5                            median: 77.5
  stdev:  23.048398324607                 stdev:  23.048398324607
      raw  norm %tile freq                    raw  norm %tile freq
  --------------------------------------- -----------------------------------------------
  >   0.0   0.0   0.0    2 ||             >   0.0   0.0   0.0    2 ||
  <= 20.0  20.0   5.9      ||             <= 23.4  23.4   5.9      ||
  --------------------------------------- -----------------------------------------------
  >  20.0  20.0   5.9    0                >  23.4  23.4   5.9    3 |||
  <= 40.0  40.0   5.9                     <= 47.2  47.2  14.7      |||
  --------------------------------------- -----------------------------------------------
  >  40.0  40.0   5.9    7 |||||||        >  47.2  47.2  14.7    7 |||||||
  <= 60.0  60.0  26.5      |||||||        <= 71.1  71.1  35.3      |||||||
  --------------------------------------- -----------------------------------------------
  >  60.0  60.0  26.5   11 |||||||||||    >  71.1  71.1  35.3   22 ||||||||||||||||||||||
  <= 80.0  80.0  58.8      |||||||||||    <= 95.0  95.0 100.0      ||||||||||||||||||||||
  --------------------------------------- -----------------------------------------------
  >  80.0  80.0  58.8   14 |||||||||||||| [1] 0
  <=100.0 100.0 100.0      ||||||||||||||
  ---------------------------------------
  [1] 0



  GSORT

       Gsort sorts a gradebook's records in  either  ascending  or  descending
  order  by  any  field  and  produces  a  sorted gradebook file.  It does not
  display the sorted file.  The program is called using the following command:

           gsort [{ +/-}field_id] [-i grade_file] [-o outfile]

  where

     {+/-}field_id  can be either a field number or a field title.  A  preced-
                    ing plus sign (+) indicates ascending order is to be used,
                    a hyphen (-) indicates descending order.  When a  field_id
                    is  specified,  either  +  or  -  must  precede it.  If no
                    field_id is selected, the sort will be done  on  the  name
                    field in ascending order.

     -i grade_file  specifies the name of the input gradebook file.  This  op-
                    tion  may  be  omitted  if your gradebook file is received
                    through standard input or it is named scores.

     -o outfile     specifies the name of the file to which gsort  will  write
                    the  sorted  file.   If this option is omitted, the sorted
                    file will be written to file sorted.  If you want the  ex-




  U-021                 An Electronic Gradebook Package                     13

                    isting file to be rewritten without changing its name, you
                    should specify outfile to be the same as grade_file.  When
                    you  do  this, the old copy of the gradebook file is named
                    grade_file.bak before the update is begun.


  EXAMPLES

  1.   The scores file is to be sorted in ascending order on the  name  field.
       The command

               gsort<CR>

       will produce the file sorted.  To see a formatted display of file sort-
       ed, type

               gtype -i sorted<CR>

       and the following output will be displayed on the terminal screen:

                name               student#    quiz1   quiz2   test1
                Atkins, Maria      220157788   12.0    20.0    68.0
                Elsworth, Garth    223006555   15.0    15.0    84.0
                Smith, Harry       112324085   20.0    18.0    89.0
                Wadsworth, Henry                       14.0    91.0


  2.   The scores file is to be sorted in descending order by the field test1,
       and  the  output is to be sent to a file named scores.sorted.  The com-
       mand

               gsort -test1 -o scores.sorted<CR>

       will produce the file scores.sorted.  To see  a  formatted  display  of
       this file, type

               gtype -i scores.sorted<CR>

       and the following output will appear on the screen:

                name               student#    quiz1   quiz2   test1
                Wadsworth, Henry                       14.0    91.0
                Smith, Harry       112324085   20.0    18.0    89.0
                Elsworth, Garth    223006555   15.0    15.0    84.0
                Atkins, Maria      220157788   12.0    20.0    68.0

       To print the file scores.sorted, use the lpr command.


  GLETTER

       Gletter assigns letter grades to scores in a gradebook  file  and  pro-
  duces  a  report showing student ID number, letter grade, numeric score, and
  name.  You can set up the grading scale by specifying  each  grade  and  its
  lower limit, called a threshold.  The command has this format:

          gletter field_id [-n] [-f scale_file] [<grade_file] [>outfile]

  where

     field_id          is the title of the field containing the numeric  score
                       to be assigned a letter grade.  This field is required.

     -n                tells the program to sort the output by  student  name.
                       If this option is omitted, the output will be sorted by
                       student ID number.




  U-021                 An Electronic Gradebook Package                     15

     -f scale_file     specifies the name of a file that contains  a  list  of
                       letter  grades  and  lower grade thresholds.  Each line
                       should contain one  letter  grade,  a  space,  and  the
                       numeric  lower  limit for that grade.  If the -f option
                       is omitted, you will be prompted to set up  a  list  of
                       letter  grades  and  thresholds and given the option to
                       save this information to a file for future use.

     <grade_file       specifies the name of the gradebook file if its name is
                       not scores.

     >outfile          is the name of the output file to which the report will
                       be written.  If >outfile is omitted, the report will be
                       shown on the screen.


  EXAMPLES
  1.   You want to assign letter grades to the field test1  in  the  gradebook
       file  scores.  The grades will be assigned using the standard ten-point
       grading scale, which you will save in a file called std_scale.

          $ gletter test1

          Choose letter grade set by number:
                  1) A,B,C,D,F
                  2) A+,A,A-,B+,B,B-,C+,C,C-,D+,D,D-,F
                  3) custom
          1,2,3> 1
          Specify grade thresholds:
                  A  = 90
                  B  = 80
                  C  = 70
                  D  = 60
                  F  = 0

          Grade thresholds:
                  A  =  90.0
                  B  =  80.0
                  C  =  70.0
                  D  =  60.0
                  F  =   0.0
          OK? (y/n)> y

          Save as (<return> for no save): std_scale
          Grade thresholds saved to "std_scale"
          SSNO      GR SCORE     NAME
                     A  91.0     Wadsworth, Henry
          112324085  B  89.0     Smith, Harry
          220157788  D  68.0     Atkins, Maria
          223006555  B  84.0     Elsworth, Garth

  2.   You want to assign letter grades to the average field,  which  contains
       the final grade for the first part of the semester.  The following com-
       mand will use the same scale that you just set up; sort the  output  in
       order  of name; read the information from the file scores.new; and send
       the output to a file named finalgd.

          $ gletter average -n -f std_scale <scores.new >finalgd






  U-021                 An Electronic Gradebook Package                     16

       The file called finalgd would look like this:

          SSNO      GR SCORE     NAME
          220157788  C  74.0     Atkins, Maria
          223006555  C  79.5     Elsworth, Garth
          112324085  A  92.0     Smith, Harry
                     D  63.0     Wadsworth, Henry


  U-021                 An Electronic Gradebook Package                     17

  SUMMARY OF COMMANDS

  gconvt <registrar_file >grade_file<CR>

  gnew field_id [-i grade_file] [-f score_file] [-e error_file] [name score...]


  gtype [-i grade_file] [-o outfile] [-a] [-t] [-s] [-d field_id]
          [-r rangelist] [-n [new_gradebook]] [name ...]

  ghist field_id [-low_number] [+high_number] [-s step_size] [-c number_of_bars]
          [-i grade_file] [-o outfile]

  gsort [{_}field_id] [-i grade_file] [-o outfile]

  gletter field_id [-n] [-f scale_file] [<grade_file] [>outfile]



  U-021                 An Electronic Gradebook Package                     18

  APPENDIX:  Format of Files

  Gradebook File

       The gradebook file must have two contiguous sections:  the header  sec-
  tion, which contains three lines, and the grades section, which contains one
  line for each student.

       The first line of the header section contains titles of the fields. The
  first  two  fields  on this line always specify the student's name (up to 32
  characters) and student ID number (up to 12 characters).  These  two  fields
  always have the titles name and student#. The remaining field titles are de-
  fined by the user, typically one field per test or assignment.  These fields
  can be added to the file using the gnew command.

       The hyphen (-) and underscore (_) should not be used in  field  titles,
  and  the field title should contain at least as many characters as the larg-
  est element in the field, because the field will be as wide  as  its  title.
  Also,  if  the -d option of gtype will be used to drop the lowest of a group
  of grades, all the field titles for those grades must begin  with  the  same
  string of letters, as in QUIZ1, QUIZ2, QUIZ3, etc.

       The second line of the header section defines the maximum scores  which
  can be earned for tests and assignments.  This line begins with the word max
  followed by two colons.  The colons indicate  that  the  name  and  student#
  fields have no maximum values.

       The third line of the header section defines weights  for  each  field.
  It  begins  with the word weights, followed by two colons.  The colons indi-
  cate that no weights are applied to the name and student# fields.

       The grades section begins after the third line of the  header,  on  the
  fourth  line  of  the  file.  Information  for  each  student should be on a
  separate line.  The student's name (last name  first)  and  ID  number  come
  first,  where  each  field  is terminated with a colon.  Missing fields must
  also be terminated by a colon, as in

          Wadsworth, Henry::

  It is not necessary to alphabetize the names as they are entered;  the  com-
  mand gsort can generate an alphabetized gradebook.

  EXAMPLE

       Before any scores are entered, our example gradebook  file  would  look
  like this:

          name:student#:
          max::
          weights::
          Smith, Harry:112324085:
          Elsworth, Garth:223006555:
          Atkins, Maria:220157788:
          Wadsworth, Henry::



  U-021                 An Electronic Gradebook Package                     19

       The scores file used as an example throughout this document would  look
  like this:

          name:student#:quiz1:quiz2:test1:
          max::20.0:20.0:100.0:
          weights::1.0:1.0:2.0:
          Smith, Harry:112324085:20.0:18.0:89.0:
          Elsworth, Garth:223006555:15.0:15.0:84.0:
          Atkins, Maria:220157788:12.0:20.0:68.0:
          Wadsworth, Henry:::14.0:91.0:


  Registrar's Information

       This is the format of the file that comes from the  Registrar's  office
  via  electronic  mail, which contains a list of students that are registered
  for a particular class.  The program gconvt can reformat this  file  so  the
  gradebook  package  can use it.  The entire record format of the Registrar's
  information is shown below; however, only the student's  ID  number  (Social
  Security number) and name are used in the gradebook file.


                      ____________________________________
                      |Columns           Contents         |
                      |___________________________________|
                      | 10-18    Social Security number   |
                      |    19    First initial            |
                      | 20-39    Name (last/first/middle, |
                      |                blank delimited)   |
                      | 47-50    Course abbreviation      |
                      | 52-55    Course number            |
                      | 57-60    Section number           |
                      |___________________________________|


       If you normally use mail on a machine other than the RS/6000s, you  may
  receive  files  from Carruthers Hall on your primary mail account instead of
  your RS/6000 account.  If this happens, forward the message  containing  the
  data to your full address on the RS/6000.  For instance, if you received the
  data on your PC Mail account and your RS/6000 account (xyz8r) is on avery,
  forward  the message containing the data to xyz8r@avery.med.virginia.edu.
  Then use the mailer on the RS/6000 machine to save the data to a file.







  File of IDs and Scores

       Two test-scoring programs at the University create a  file  of  student
  IDs  and  scores  that can be used to update a field in an electronic grade-
  book.  One is run by ITC/Carruthers Hall; the other is  the  ts  program  on
  RS/6000  computers.  For more information on the ts program, see document U-
  022, ``TS:  A Test-Scoring Program.'' Use the -f option of the gnew  command
  to  read  this  information into the gradebook file.  The format of the file
  containing student IDs and scores is the same regardless of which  of  these
  two test-scoring programs you select.





  U-021                 An Electronic Gradebook Package                     20

            ___________________________________________________
                 |Columns                Contents              |
                 |_____________________________________________|
                 |  5-13    Social Security number             |
                 | 18-22    Test score, in COBOL format 999V99 |
                 |_____________________________________________|


  COBOL format 999V99 means that there would be no decimal between  the  one's
  place  and  tenth's  place.   For  example, a grade of 100 would be shown as
  10000, and a grade of 86.5 would be 08650.


WE REALLY WANT TO KNOW...
Have you found this publication useful? Are there ways we might improve or supplement it or other ITC publications? Did you find this document in Web or in hard copy? We really want your opinion. Send e-mail to:  newsdesk@virginia.edu

© 2008 by the Rector and Visitors of the University of Virginia.

The information contained on the University of Virginia’s Department of Information Technology and Communication (ITC) website is provided as a public service with the understanding that ITC makes no representations or warranties, either expressed or implied, concerning the accuracy, completeness, reliability or suitability of the information, including warrantees of title, non-infringement of copyright or patent rights of others. These pages are expected to represent the University of Virginia community and the State of Virginia in a professional manner in accordance with the University of Virginia’s Computing Policies.