On This Page
Overview
During this assignment, you will:
- Calculate your grade for this course
- Use arrays to store data
- Read data from text files
- Write a report to a text file
Background Information
Grades are calculated by dividing the total actual points by the total possible points within each assessed area. These numbers are usually expressed as a percentage. For example, we may have 10 exercises worth 10 points each, or 100 points total. Your actual score on the exercises may add up to 95 points. Thus, your total exercise score is 0.95, or 95%.
Since there are multiple areas of assessment, you must calculate the percentages for each area and multiply the percentage times the weight for that area. Continuing our example, exercises may be worth 15% of the total grade. Thus the weighted percentage is 0.95 * 0.15 = 0.1425.
To arrive at your total score, you sum the weighted percentages of each area.
Note the following information about scores and grading:
- All the evaluation areas and weights are on the Course Information page.
- Since you have not taken the final exam yet, your final grade will be different than your score to date.
- Each individual item in some assessed area may have different possible scores. For instance, assignment 1 has a possible score of 10 while assignment 2 has a possible score of 20. Thus, for every item you must consider data for both possible scores and actual scores.
- The lowest exercise score is dropped in determining the weighted percentage for exercises.
- It is possible to earn more credit on an assignment, at least in this course, than the maximum score. This is accomplished through extra credit and helps students make up for problems on any one assignment.
- The scores in one evaluation area cannot influence the scores in another. For instance, if you have 105% on your assignment scores, you cannot apply the extra 5% toward the total score.
- All your score data is in WebCT.
^ top
Sample Output
When the program runs, it produces a report like the following:
Point Sums and Weighted Percentages:
Assignments 75 / 70 = 30.0 of 30.0
Exercises 32 / 40 = 12.0 of 15.0
Midterm Exam 85 / 100 = 17.0 of 20.0
Final Exam 0 / 0 = 0.0 of 35.0
Sum of weighted percentages: 59.0
Letter grade to date: F
Sum of weighted percentages excluding final: 90.76923076923076
Letter grade without final: A
Note that this report was produced by the sample input files provided by the instructor. You may change the number of decimal places displayed, but always show at least one digit to the right of the decimal place for all percentages.
^ top
Specifications
- Write a grade calculation application that produces the report shown in the Sample Output.
- Code a class named
Scores to load and store the data for each evaluation area. The class must contain the following constructors and methods exactly, though you may add more.
/**
* Constructor initializes values.
*
* @param areaWeight The weight of the score data.
* @param areaName The name of the Scores object
*/
public Scores(double areaWeight, String areaName)
/**
* Load and accumulate the data.
*
* @param fileName The file to read data from.
*/
public void loadScores(String fileName)
/**
* Calculate totals from the loaded data.
*
* @return The score percentage
*/
public double calcPercentage()
/**
* Returns a String object representing this Score's values.
*
* @return a string representation of this Scores data
*/
public String toString()
- Write a class named
GradeBook to store the Scores for each evaluation area. The class must contain the following variables, constructors and methods exactly, though you may add more.
private Scores homework, exercises, midterm, finalexam;
/**
* Contructor for Gradebook
*/
public GradeBook()
/**
* Load data into each Scores object
*/
public void loadScores()
/**
* Compute the overall grade percentage
*/
public void sumPercentages()
/**
* Report score results
*/
public void reportGrades()
/**
* General purpose method to convert percentage to letter grades
*
* @param percentage The percentage to convert
* @return A character representing the letter grade for the score
*/
public static char toLetterGrade(double percentage)
- You must use the following file names and format. The first line of the file is the total possible points for an evaluation area. The entries that follow are the scores for each individual item (such as an assignment). Note that I will use these files to test your code (among others):
- The report produced by the program must display the data for each assessed area and summary with the exact label as shown in the Sample Output. All the data for each area must be on one line in the order shown.
- The report must both display on the screen and produce the same output in a file named
grades.txt.
- You must report numerical results with at least one digit to the right of the decimal place for all percentages.
- Turn in four data files containing your data in the specified file format:
asn.txt: all your assignment score data
exer.txt: all your exercise score data except the lowest
final.txt: your final exam score data
mid.txt: your midterm score data
- You must remove the lowest exercise score from your
exer.txt file. Note that you do NOT write any code for this step. You just remove your lowest exercise score using a text editor.
- Since you have not taken the final exam yet, your
final.txt file must contain just two lines with a single number 0 on the line exactly like the supplied file.
- All input must be from files. Do NOT code any user input statements or you will receive a low score.
- Do not forget to document all the code.
^ top
Extra Credit
The following are worth extra credit points:
- Complete the assignment using pair programming. (1 point)
- Add code that returns the score you need to achieve on the final exam to get an "A", "B" and "C" grade in the course. For example, for the data provided, you should display: (1 point)
Score needed on final for A: 88.57142857142858
Score needed on final for B: 60.00000000000001
Score needed on final for C: 31.42857142857143
Make certain that your README.txt file describes any extra credit attempted.
^ top
Grading Criteria
The instructor will evaluate your assignment using the following criteria. Each criteria represents a specific achievement of your assignment and has a scoring guide. The scoring guide explains the possible scores you can receive.
Some scoring guides have a list of indicators. These indicators are a sign of meeting, or a symptom of not meeting, the specific criterion. Note that a single indicator may not always be reliable or appropriate in a given context. However, as a group, they show the condition of meeting the criterion.
For information on grading policies, including interpretation of scores, see the course information page.
Program Compilation
- 4: Source code compiles with no errors or warnings
- 2: Source code compiles with warnings
- 0: Does not compile or wrong file turned in
Functionality
- 10: Demonstrates mastery of the assignment
- Has extra features or demonstrates techniques beyond the assignment
- Applies concepts from the lesson(s) appropriately
- Meets all specifications (see above) with particularly elegant solutions
- No errors encountered during operation
- 8: Has all the functionality expected of the assignment
- Demonstrates many techniques from the lesson
- Meets all specifications (see above)
- Implementation seems more complicated than necessary.
- May have one minor error
- 6: Has most of the functionality expected of the assignment
- Demonstrates some techniques from the lesson
- Meets all but one of the specifications (see above)
- Implementation seems excessively complicated.
- May have 2-3 minor errors
- 4: Has some of the functionality expected of the assignment
- Demonstrates some techniques from the lesson
- Meets at least 1/2 of the specifications (see above)
- Implementation seems excessively complicated.
- May have more than 3 minor errors
- 2: Serious functional problems but shows some effort and understanding
- Meets less than 1/2 of the of the specifications (see above)
- Has a major error or many minor errors
- Implementation seems very convoluted
- Demonstrates few techniques from the lesson
- 0: Does not execute or no specifications met
Code Documentation
- 4: Code is well-documented
- 3: Code has minor documentation errors
- Has 1 documentation error
- 2: Code has some documentation errors
- Has 2-3 documentation errors
- 1: Code has many documentation errors
- Has more than 3 documentation errors
- 0: No apparent attempt to document code
REAME.txt File
- 2: README.txt file submitted with specified information included
- 1: README.txt submitted but some information was not included
- 0: No README.txt submitted
Maximum Score: 20, plus extra credit
^ top
What to Turn In
Submit your assignment following the instructions for homework. Include the following items for grading:
README.txt file
- All source code needed to make your program function.
- Four data files containing your grade information as follows and in the specified file format:
asn.txt: all your assignment score data
exer.txt: all your exercise score data except the lowest
final.txt: your final exam score data
mid.txt: your midterm score data
- Any other file needed to make your program function
You must submit all the files needed to make your assignment function properly. Do not assume that the instructors has any files unless explicitly stated by the instructor. Your assignment must work as submitted.
^ top
Home
| WebCT
| Announcements
| Schedule
| Expectations
| Course info
Help
| FAQ's
| HowTo's
| Links
Last Updated: November 06 2005 @11:28:52
|