I am writing a program that keeps track of marks. However I noticed that there are a couple possible ways to calculate the mark and each one gives a different answer usually like 1% difference. So I want to check with some people to see which way is the proper way to go.

Here is some sample data( 2 assignments)

Mark: 80  - refers to the mark the student got on the given assignment/midterm/etc
Out of: 90 - what the actual item was out of.
weight: 86 - how much percent this given assignment/midterm/etc is worth to their final mark. This will always be out of 100. You can't get more then 100% in a course. 

Score: 80/90 = 88.89%
achieved weight: 88.89% * 0.86 = 76.44%(this assignment was worth 86% of the 100%. This means all other assignments and stuff can only be worth a total of 14 to get a weight of 100%). 

------- 2nd one below.

Mark: 85
Out of:  100
weight:   10
Score:  85/100 = 85%
achieved weight:  85% * .10 = 8.5%

So those are 2 sample marks that this student got.

So 96% of the possible 100% for weight has now been give out. So the course has only 4% of unknown left.

Now I want to calculate the current mark and overallMark.

Current mark refers to the current mark the student has achieved by looking at assignments that have been actually marked.

So if the teacher has only given 2 assignments back and their weights are 10% each and this student got a 100% on both of these assignments then he is currently getting a 100% in the class. Of course if the student decided to drop out of the class then he would have gotten 20% in that class which also would be his overallmark since then you look at the total 100%.

Now a couple ways I found you can calculate the current mark are.

  1. Total all the marks up and divide by total score

    (80 + 85) / (90 + 100) = 165 / 190 = .868 * 100 = 86.84%

  2. Total all the marks up and divided by number of tasks. Basically getting average. (80 + 85) / 2 tasks = 165/ 2 = 84%

  3. add up all achieved weights 76.44 + 8.5 = 84.94%

  4. add up all total marks up divide by total score times times by achieved weight (80 + 85) / (90 + 100) = 165 / 190 = .868 * 96 = 83.32%

For overall %

  1. Add up all achieved weights and divide by a 100 ( 76.44 + 8.5 ) /100 = 84.94%

So as you can see I found many ways to do this. I am not sure really what the best way or the correct way is. I think number 3 would get me the most accurate result but I want to double check with people. I don't want to be off by 1-2% since that could mean that my application is telling them that they could be failing when they are passing or getting an A when they really are getting a B.

Thanks

link|improve this question

72% accept rate
feedback

closed as off topic by Molly, ChrisF, William Hilsum, Jared Harley, splattne Jan 4 '10 at 8:28

Questions on Super User are expected to generally relate to computer software or computer hardware, within the scope defined in the faq.

3 Answers

Just before this question is closed, I think option 3 is almost correct. In options 1 and 4, I think your fractions are incorrect:

(80 + 85) / (90 + 100) != (80 / 90) + (85 / 100)

Option 2 does take into account that 1% in assignment 1 carries much more weight than 1% in assignment 2.

To correct option 3, the weights need to be adjusted slightly to account for the unknown 4%.

Assignment 1 weight: 86 * (100 / 96) = 89.58%
Assignment 2 weight: 10 * (100 / 96) = 10.42%

Hence, you should get 79.63% + 8.85% = 88.48% as the current mark.

link|improve this answer
feedback

Keep in mind there are two very different ways of looking at 'current mark':

  1. An absolute number out of 100%. This would basically be your grade if you stopped coming to class
  2. A relative number out of the current maximum you could have attained. this would be your grade if the class was canceled and they had to give you a grade out of any scores they had for you.

maybe you should just show both? '45%(50% possible) - projected 90% ?'

link|improve this answer
feedback

It is not clear what you mean by "current mark" and "overall mark", but I can tell you that all your calculations except number three are misleading because they do not take weights into account; you add 80 + 85 as if marks in the two assignments were worth the same, they aren't.

Your calculation three adds the weights you have acieved so far; this would be your final mark if you took zero in all your future assignments.

It looks like you are trying to calculate your final mark as if it only counted these two assignments, not the entire course. This is easy to do, just calculate the achieved weight using only these two assignments (86 + 10 = 96) not the total possible. Don't think of the weights as percents; they are not necessarily out of 100. In your case:

Assignment 1: 80 out of 90, assignment has weight 86: (80/90) * 86 = 76.44

Assignment 2: 85 out of 100, assignment has weight 10: (85/100) * 10 = 8.5

Out of a total weight of 96: (76.44 + 8.5) / (86 + 10) = 0.8848 = 88.48%

link|improve this answer
feedback

Not the answer you're looking for? Browse other questions tagged or ask your own question.