3.4 Developer Overview

     The Grader program is a program to be designed mostly for teacher use, but allowing for some teaching assistant and student functionality. Most functions remain similar to traditional grading and spreadsheet tools – an editable spreadsheet, a roster of students, a list of assignments and their statistics, and calculations across many spreadsheet rows. With the Grader, new ways of managing grades are also possible – a few of these being through the use of click-able, drag-able graphs (see Section 2.6) and the placement of grades in a hierarchical category view where columns can be collapsed together (see Section 2.4). Obviously, with newer, more efficient ways of working with grades on the end-user side, there must be more work put in to create such functionality on the programmer’s side. So, here are some basic structure outlines for the implementation of the program.

    The Grader program consists of these notable structures:

  • Roster
    • Student *
      • Name, ID, (Other information as follows… address, etc.)
      • List of Scores (along a row)
  • Grade Book
    • Graded Item (parent) *
      • List of ‘Graded Item ’s
      • Statistics
      • Grade Scheme – clarified below
      • (Other Options… for assignments, such as Grace Days, Late Penalties…)
    • Graded Item (child) *
      • List of Scores (along a column)
      • Points/Percentage of Total Grade that this item is worth
      • (Other Options… for assignments, such as Grace Days, Late Penalties…)
  • Grade Scheme
    • Grade *
      • Symbol, Color, Range, Value
    •  (Other Options… for user style and accessibility…)
  • Graphs
    • Pie Chart or Histogram
    • Graded Item
    • Adjustable Grade Line/Grade Cutoff

    From this, it’s much easier to see how the Grader program is expected to work. A Grade Book consists of 1 or more Graded Items for a class. The 1 required Graded Item is a ‘Total Score’ and any additional ones are ‘Assignment’s. Graded Items can be represented hierarchically through the tree-and-leaf representation shown above. A Grade Scheme holds all user customizations, such as custom grades, options, or just different ways of grade calculations. Grade Scheme has multiple Grades, which consist of all the values necessary for a grade – symbol to use, color to display, range the student score must fall into, value that will be used for calculations.

    In fact, the hardest part of this to implement would be the Graphs. Graphs take a Graded Item – the data to represent – and display it via histogram or pie chart. On the histogram or pie chart, there will be lines with tabs – clickable, drag-able lines and tabs – that the user can move around to change grade cutoffs or curves for assignments. Any changes on the graph are directly applied to the Grade Book. While the basic idea behind this (how the changes work) is not difficult, programming user mouse interaction and mapping floating-point-precision values to a degree of change is going to be. The obstacles that will be encountered while implementing this program can be overcome, however, with sufficient documentation now covering pie charts, graphs, and user-mouse interaction.