Program analysis

This project would analyse students' computer programs to to provide hopefully useful feedback and maybe a mark to the student.

Here are possible areas of analysis

  1. Perform a normal software metrics analysis and compare a student's program's metrics with a sample program provided by the lecturer. A bad program might be longer (more lines of code), have fewer functions/methods etc.
  2. Using the techniques of compiler optimisation, it would be possible to detect some inefficiencies in a student's code.
  3. On some short programs there might be a recognised number of solutions. Given a set of program templates it should be possible to match the student's program into one of the standard solutions. If the student's program didn't match any template, then it could be marked manually. Maybe this new program could be added to the set of templates.

References

  1. Experiences gained from producing a compiler to guide first year programming students.