I am looking for software that will automatically assess the output of student assignments, or at least the numerical parts of them. This is for a large class of >100 students and multiple assignments. As part of a scheme to avoid plagiarism each student obtains different correct numerical answers to their problems. Thus if student A should get 2.56342 for question 1, student B should get 3.42975 and no two students should obtain answers that are identical. The method of calculation is the same in each case, but students have different input parameters that change the solution. (I should add at this point that the numbers cannot be obtained with simple or complex formulae from the input parameters: a significant amount of work is required to generate each answer; I have written a piece of software that generates these answers.)

I am wondering if it would be possible to use an existing software package that could handle the submission of student answers/assignments and also mark/grade the results for at least the numerical parts of the assignments. So far I have looked at Moodle, Hot Potatoes and Question Mark, but none of them seem suitable because I cannot see a way of the same question having different answers for different students. It maybe that I need to try to develop a custom built system for this, but before putting that effort in I would be very grateful to hear of any suggestions of existing systems that might be able to handle this task.

I have tried to check if this question has been asked before and looked at this question on use of automated assessment of programming assignments, for example, but I could not find a previous question that covers the question I pose here.

  • As a professor of computer science I'm pretty certain you're going to need some custom software for this. Having said that, have you looked at Wolfram Alpha?
    – Raydot
    Jun 17, 2015 at 16:48
  • @DaveKaye - thanks for the reply, yes that is the conclusion that I have come to myself - something like QuestionMark or Moodle is ok to collect the data, but processing needs to be proprietary. - I will look at Wolfram Alpha, thanks for the suggestion, I was not aware of that as a possible option
    – tom
    Jun 17, 2015 at 18:33
  • Ooops, what I meant to say was Matlab. But maybe Wolfram Alpha could work too.
    – Raydot
    Jun 17, 2015 at 19:48
  • Google Apps for Education? Jul 25, 2015 at 5:26

2 Answers 2


There is WebAssign, started at North Carolina State many years ago and now an independent company )http://webassign.com/corporate/about-us/), which provided versions of problems from standard textbooks in physics and other fields with random inputs so that each student would have individual numerical inputs (I had some experience with these in the early days -- the inputs were generated from Perl scripts with input constrained to be physically reasonable).

I have not been involved with courses that used these for ten years or so, but one issue that arose then was the appearance of spreadsheets that had the algorithms for solving the problems coded into the spreadsheet, so that students could simply plug their numbers into the spreadsheet and come up with the answers.

Your question suggests that you are using more complicated problems than those in elementary science courses, but perhaps you could use scripts (using Python, Perl or whatever) to generate unique inputs for each student.


Along similar lines to MikeV's answer is WeBWork, a free open-source online homework system. Students interact directly with the software's web interface to see their assigned problems and submit their solutions. Each problem on the assignment has a Perl script that is run for each student to generate the question and validate the result, so that each student can get their own random numerical values, and you can do arbitrary computations to check whether it is right. It also saves a random seed per student, so that a single student can (if you decide to allow it) attempt their own version of the problem repeatedly.

Most users of this software just draw from a pre-written bank of questions, but if you know some Perl you can certainly make your own (there may be a learning curve, of course). Depending on how involved your validation code is, you can either rewrite it in Perl or use some mechanism to let Perl call your code in its native language.

WeBWork has a fairly specific paradigm for scoring, student records, etc, so it may or may not fit neatly into what you have in mind for your course, but maybe it is worth a look.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .