During my time at University, I had to do many assignments. The most interesting (as part of my Master of Information Technology at Macquarie Univeristy) was developing a Randomised Quiz System for Programming. The motivation behind it was simple:
- Students plagiarise. A lot. Practical Exercises are given to every student every week, but since the answers to these questions are essentially the same (and easy to copy), students will share their work.
- Students also don’t get enough practice doing questions. Lecturers will teach a concept, but not have time to go through making hundreds of variations on the same concept.
- Students work best when they work at their own pace.
So taking all these things into account, I developed a program where you could put in your Question Template into an XML file, specify which bits are to be randomised, and consequently generate random questions for each student – eliminating the ability to copy from classmates.
Generally speaking, the program has 3 types of questions:
- Read and Interpret (essentially like putting something into a compiler and giving the output)
- Multiple Choice Questions based on Reading and Interpreting
- Having questions where you ‘fill-in’ pieces of code to make the program execute as instructed in the question directive.
The third presents many interesting security concerns (many of which I didn’t bother to pay attention to due to time constraints), but the rest are quite interesting (and work quite well). I finished this project, and handed it in. If I recall correctly, I scraped in a High Distinction.
Over a year later, I was approached by a good friend who was to lecture an Undergraduate Computing unit. We got talking, and discussed the project I had completed in 2010. I told him that it really wasn’t “up to scratch” (I didn’t really know even what a Framework WAS back then), but that I’d rewrite it a little so that it at least conformed to a loose MVC architecture.
Several months later, I completed the bulk of this work, and after some collaboration with the University, I’ve decided to release my work as Open Source (GPL3) in the interest of helping the community.
I’m a bit embarrassed with a lot of the code (it’s funny how much you learn within a couple of years), but it (mostly) works.
If you’re interested, check out the original proposal here or the code on github here. If you like/hate it, leave a comment below or email me.
Even better, if you want to contribute please get in touch!






