SDSU CS535 Object-Oriented Programming & Design
Fall Semester, 1996
Grader Project Description

[To Assignment Index]
San Diego State University -- This page last updated Oct 15, 1996

Project - Grader Program

The project is to design and implement a grader program. A grader program is used by instructors to keep track of student grades. The program needs a GUI, as some instructors are not comfortable with command line interfaces. All data for a course needs to be stored on disk. Instructors teach more than one course per term. So the program needs to be able to handle more than one course at time. An instructor needs to be able to:
sort the students by grade, name, or ID.
add students
delete students
add grade categories (see below)
add grade events (see below)
add/change weights, name of grade events and grade categories
add/change student grades
Computing Grades

A student has a first name, last name, ID, and a grade for the course. Grade events are items that are grade for the course, such as homework, exams, programs, papers, presentations, performances, etc. Each grade event has a name, total number of points, a weight. An instructor may group grade events into categories, like programs, exams, etc. A student's course score in the course is determined by the grade in each category. Each category can have weights, which is used to determine the course score. For example, say a course has two categories of grade events: exams and homework. In this example the exams count 65% of the course grade and the homework counts 35%. In this example the course has two exams: a final worth 60% of the exam part of the grade, a midterm worth 40% of the exam category. In this example there are 3 homeworks of equal weight in the homework category. Now given the following student scores:
Student score758310612
Points Possible10090151012

In the exam category the student would have or an 85% in the exams. In homework category the student would have or 76%. Thus, the student has 85*.65 + 76*.35 = 82% in the course. Note the calculations are rounded to the nearest percent. The calculation become a bit more interesting when some of the grade events have not occurred. For example, before the final is given, the students grades looks like:
Student score7510612
Points Possible100151012

In the exam category, the student has , or 30%. However, this would give the student a course score of 30*.65 + 76*.35=46%. This is misleading. It would be better to use the 75% for the exam average. This would give a better indication of how students are doing in the course.
Letter Grades

Some instructors prefer giving letter grades (A, A-, B+, B, ..., D-, F) over numerical scores for grade events. One can convert the letter grades to numerical scores. However, there is no standard conversion between letter grades and percentages. Even if the instructor does not assign letter grades to each grade event, the instructor must assign letter grades to the student at the end of the semester. The program should allow the instructor to assign letter grades to percentages. The instructor also needs to compute the class grade point average.


For each grade event an average, standard deviation, minimum and maximum score is computed over all students. For each grade event category an average, standard deviation, minimum and maximum score is computed over all students.

Optional Features

A spreadsheet like interface is tempting, but can require a lot of effort in AWT. There is no need to kill yourself creating spreadsheet cells. Importing data from and exporting data to other programs is always useful. Plotting grades makes it easier to determine the curve for the course.