As outlined in the UI Overview, the Grader Tool system is comprised of three separate application programs. The instructor user program is intended for instructor use. It provides functionality to view and modify class spreadsheets, curves, and data. The student user program is intended for student use. It provides functionality to view the current user's grade data and historical trends and to use the grade prediction tool. Student users have no administrative capabilities and cannot view other student users' data. The TA user program is intended for TA use. It provides functionality to view and modify class spreadsheets and data. TA users can essentially perform the same tasks as instructor users but with more limited administrative capabilities.
In the user application, the major object in the user program is the Class Spreadsheet. It's implementation will need to provide efficient access for a wide range of operations, including modifying grades, calculating statistics, and expanding/collapsing columns. Hence, it will need to use a moderately sophisticated data structure that supports these various forms of access.
Other significant objects in the user program are the Interactive Grade Charts. These charts include the Histogram, Pie Chart, Curve Tool, and Historical Trends. The Histogram and Pie Chart have agile letter grade boundaries. Their implementation will need to provide this agile movement whenever the user moves a slice or bar. The implementation will also need to account for the curve modification resulting from the movement. The curve affects the spreadsheet, curve tool, histogram, and pie chart. The Curve Tool allows the user to modify the color representing each letter grade and the overall curve of the class. The implementation will need to ensure that the curve is synchronized with the histogram, pie chart, and spreadsheet. It will also need to ensure letter grade colors are consistent. The implementation for historical trends will need to draw information from past courses. This information needs to be stored in some manner so that the user can access the information later on through historical trends.
Aside from the Spreadsheet and Charts, the other objects in the grader tool
should have reasonably straightforward implementations.