I'm currently in the process of creating a program set for creating and taking exams. I am creating this for a customer of mine that runs a technical college and would like their teachers to have a standardized testing environment, while also reducing the amount of work-time required to grade tests, etc.
The problem I'm having is that I'm not in the least bit mathematically inclined. I would like to have my program be dynamic enough to auto-calculate the overall score based on the number of questions (lets say 10 ~ 300 questions), type of question, and difficulty rating (1-5, 1 being easy and 5 being a challenge) - but cannot for the life of me figure out a formula to do this calculation. The primary thing is that all tests will be standardized to have an overall score of 500 points regardless of the number of questions. This is very similar to the way that certification exams work, from what I understand.
If someone could help me out with this, even a formula would greatly help.
pseudo code example:
$score= for each difficulty(d1~d5), calculate (sum(D#)/Da)/500)+previous D#
Based on the little information that is available in your question, there is a naive way to do it that might (or not) suit your needs:
A easy question worth 1 point, a challenging one 5, a medium 3, etc. Let's say that you want a test with 10 questions:
2 - challenging (2 * 5 = 10 points)
5 - medium (5 * 3 = 15 points)
3 - easy (3 * 1 = 3 points)
The total amount of points is 28. Dividing 500 by 28 you get 17.85.
If a student gets right lets say 1 challenging, 3 medium and 2 easy his points would be 5 + 9 + 2 = 16.
16 * 17.85 gets the grade based on the overall score of 500: 285.6
For more (or less) questions you just have to do the same process, dividing the overall score (500) by the total amount of points in the test, and then multiplying it back to get the actual result.
Hope that helps.