CorrectWriting Auto-feedback question implementation: Difference between revisions
No edit summary |
No edit summary |
||
Line 51: | Line 51: | ||
==Editing CorrectWriting question type== | ==Editing CorrectWriting question type== | ||
When creating new CorrectWriting question type you will see the following | When creating new CorrectWriting question type you will see the form with following parameters: | ||
[[File:CorrectWritingEditForm.PNG]] | |||
Besides of standard parameters, you can see the following parameters: | |||
; Lexical error threshold : a treshold, which will be used when comparing tokens from student response to a teacher answer will be used to match with errors with Levenstein distance. If amount of errors when comparing two tokens is lesser than product of this treshold and length of teacher token - than tokens are the same with errors. Since search for misspellings is not implementend this parameter is '''unused'''. | |||
; Penalty for lexical error : a penalty, that will be substracted from grade, when found one misspelling. ince search for misspellings is not implementend this parameter is '''unused'''. | |||
; Penalty for absent lexeme: a penalty, that will be substracted from grade for each absent lexeme in student response. | |||
; Penalty for odd lexeme : a penalty, that will be substracted from grade for each odd lexeme in student response. | |||
; Penalty for moving lexeme : a penalty, that will be substracted from grade for each moved lexeme in student response, that is placed in incorrect order, which is taken from teacher's answer. | |||
; Minimum grade for answer with non-exact matching : sometimes, teacher may point out for student some hints for especially bad answers, and their comments must be viewed, when student's and teacher's answers are the same. Teacher can define an answer with grade, lower than that border for this answer and point out some specifically bad answer | |||
; Maximum percent of mistakes in student answer for non-exact matching: when student writes response with lots of mistakes, we can reject his answer in favor of matching with another teacher's answer, when count of mistakes is bigger than product of this parameter and count of parts in answer. | |||
; Language of answer : a language, which will be used, when analizing some answer and student response. Currently supported languages, is simple implementation if english language and C programming language | |||
In answer form, you can enter answer and supply a specific feedback for it: | |||
[[File:CorrectWritingAnswerStep1.PNG]] | |||
Than hit "Save changes". The answer form changes, for entering a descriptions for each token. You can skip descriptions for some token, just hitting enter, making an empty line in text field: | |||
[[File:CorrectWritingAnswerStep2.PNG]] | |||
Than press "Save changes" button. Congratulations, you just made your first CorrectWriting question type! | |||
==Installing CorrectWriting question type== | ==Installing CorrectWriting question type== |
Revision as of 08:36, 29 November 2012
Note: This page is a work-in-progress. Feedback and suggested improvements are welcome. Please join the discussion on moodle.org or use the page comments.
Goal
This question type goal was to simplify report of student mistakes in a shortanswer question, when student is learning programming language or in simple cases of natural language learning, when student must write correct expression, and we should give him information about skipping some words or placing words in incorrect order. This also could be useful, when we don't give actual information about what words (or some kinds of symbols) was moved or absent in answer, but their meaning, thus forcing student to know what does this part of symbol means.
Examples
Please, consider the following tasks.
Function header in C language
Student must write simple function header for function, that is described naturally: void function(int abc, char def), with following descriptions of parts:
- void
- type of returned value
- function
- function name
- (
- bracket (or opening bracket for function arguments)
- int
- first argument type
- abc
- first argument name
- ,
- argument list separator
- char
- second argument type
- def
- second argument name
- )
- bracket (or closing bracket for function arguments)
If student submits the following answer, like: void function(abc, def), question type will produce the following output:
- first argument type was skipped
- second argument type was skipped
English language sentence:
Student must write simple sentence, while learning foreign language: The cat ate the mouse, with following descriptions of parts
- The
- definite article
- cat
- subject
- ate
- verb
- the
- definite article
- mouse
- complement
- .
- sentence ending point
If student submits the following answer, like: The cat eat the mouse, question type will produce the following output:
- "eat" is odd in response
- verb is absent in response
- sententence ending point is absent in response.
How input is splitted
This tiny parts, that answer is split to, are called tokens, which are smallest parts of answer, that have sense to split to. For each of them, teacher can supply a description, which gives a student information about, what are the information behind token (and also can be used to hide true token information, if student must learn about it). For natural languages, tokens can be words, symbols, and for programming languages they can be such as described in lexical definition of formal language, which expression belongs to. Teacher can leave a token without description and his bare symbols will be used, when generating text about mistakes.
Editing CorrectWriting question type
When creating new CorrectWriting question type you will see the form with following parameters:
Besides of standard parameters, you can see the following parameters:
- Lexical error threshold
- a treshold, which will be used when comparing tokens from student response to a teacher answer will be used to match with errors with Levenstein distance. If amount of errors when comparing two tokens is lesser than product of this treshold and length of teacher token - than tokens are the same with errors. Since search for misspellings is not implementend this parameter is unused.
- Penalty for lexical error
- a penalty, that will be substracted from grade, when found one misspelling. ince search for misspellings is not implementend this parameter is unused.
- Penalty for absent lexeme
- a penalty, that will be substracted from grade for each absent lexeme in student response.
- Penalty for odd lexeme
- a penalty, that will be substracted from grade for each odd lexeme in student response.
- Penalty for moving lexeme
- a penalty, that will be substracted from grade for each moved lexeme in student response, that is placed in incorrect order, which is taken from teacher's answer.
- Minimum grade for answer with non-exact matching
- sometimes, teacher may point out for student some hints for especially bad answers, and their comments must be viewed, when student's and teacher's answers are the same. Teacher can define an answer with grade, lower than that border for this answer and point out some specifically bad answer
- Maximum percent of mistakes in student answer for non-exact matching
- when student writes response with lots of mistakes, we can reject his answer in favor of matching with another teacher's answer, when count of mistakes is bigger than product of this parameter and count of parts in answer.
- Language of answer
- a language, which will be used, when analizing some answer and student response. Currently supported languages, is simple implementation if english language and C programming language
In answer form, you can enter answer and supply a specific feedback for it:
Than hit "Save changes". The answer form changes, for entering a descriptions for each token. You can skip descriptions for some token, just hitting enter, making an empty line in text field:
Than press "Save changes" button. Congratulations, you just made your first CorrectWriting question type!
Installing CorrectWriting question type
To install this question type, you need formal languages block and question type. Also you need a poas question type.
Just copy all of them in your Moodle installation folder, overwriting if need to and go to Site administration in web-interface, proceeding with the installation and you're done.