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:
| Midterm | Final | hw1 | hw2 | hw3 |
Student score | 75 | 83 | 10 | 6 | 12 |
Points Possible | 100 | 90 | 15 | 10 | 12 |
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:
| Midterm | Final | hw1 | hw2 | hw3 |
Student score | 75 | | 10 | 6 | 12 |
Points Possible | 100 | | 15 | 10 | 12 |
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.
Summaries
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.