capstone mid semester presentation
TRANSCRIPT
COMP3901Capstone PresentationJavon Davis, Howard Edwards, Alexander Nicholson
ScenarioProfessor X is a at The University of the East Indies. This semester, he
is lecturing Algorithmic Analysis, COMP2121 and he has a very large class. He gave a couple quizzes and the majority did exceedingly well. Normally, this would be good news, however, in the exams, the same persons did not perform as well. This is clearly an anomaly.
Problem DefinitionInstructors would like to provide enough unique questions and associated solutions to form quizzes for students.
Unique quizzes are important:
●To ensure a unique learning experience.
●To prevent cheating.
Current SolutionAn instructor would have to manually create each question with the
required options, but it could take a while …
If the instructor is talented he might be able to auto-generate some questions himself but it might be too specific.
The instructor could supervise the students while doing the online quizzes but this might take more effort than you’d want for a quiz.
Just don’t give quizzes… students might like that.
QGenTemplating language for designing a question.
Works with parameters embedded within questions and answers that take generated values.
Interface for writing custom features to generate parameters based on need.
Provides out of the box functionality for choosing random numbers and random picking from sets.
Open source and extensible, capabilities to write libraries and import libraries that provide additional functionality to instructors not fond of programming.
QGen
QGen is a question generator. You generate “random” questions (and answers) based on a question specification and a few simple instructions.
QGen has two requirements (kind of..)Requirement 1: a specification.qg file (YAML File?)
You provide a specification of what a question and answers “look like”:
SimpleAddition: title: 'Simple addition question' type: 'multichoice' correct_feedback: 'Great job, you got the answer right!' incorrect_feedback: 'The answer wasn''t correct' correct_answer_weight: '' #Defaulted to 100 incorrect_answer_weight: '' #Defaulted to 0 params: a: random: start: 0 end: 100 b: random: start: 0 end: 100 body: '#What is the sum of the following? {a} + {b}' answer: - 'The answer is \$${a} + {b}$ not ${a} - {b}$' distractor: - 'The answer is ${a} / {b}$' - 'The answer is ${a} - {b}$' - 'The answer is ${a} * {b}$'
Requirement 2 (Optional): Python sources
If you require a little more power or flexibility than what qg supports out of the box, you can define your own constructs. A construct is simply a Python class with a generate method.