Parley Practice NG 23rd attempt
Work on the parley practice happens in a branch here: Browse WebSVN online
Check it out:
svn co svn://anonsvn.kde.org/home/kde/branches/work/parley-practice/
DONE: remove old practice codeF
- TODO: does Paraphrase make any sense at all? no - remove paraphrase - it is not used in any single document we could find
- TODO: remove Antonym completely
- TODO: find an icon for stop practice (toolbar)
- idea: use the start practice with media-stop instead of media-play
- DISCUSS: timeouts during practice ???
- TODO: get rid of current way of handling them in the lib? BIC!!!???!!!
- TODO: use a stringlist instead
- TODO: make it possible to edit them in the table - how to separate two of them? semicolon?
- TODO: change/rewrite dock widget
- DISCUSS: practice options (is this really really needed?):
- accept any synonym as correct
- ask to enter all synonyms
- ask until the exact word that is wanted is there, but don't count other synonyms as wrong on the way there
DONE: Currently check boxes and radio buttons are shown ->remove radiosF
- TODO: move multiple choice options to advanced
- TODO: move checkboxes in Practice->Options to Advanced page in config dialog
- DISCUSS: Tenses - where should they be selected? only needed for conjugation practice
- TODO: language selection: instead of having two lists, just have one list containing "French → German" and "German → French"
The layout could be like this:
- TODO: it would be nice to replace the checkboxes by listviews with multi selection and icons (and optionally drag and drop to change the order)
- TODO: threshold: word types are broken here?
Notes Advanced page:
- TODO: Remove direction switching checkbox until implemented
- TODO: Time limits: only let the user select if the time limit is active, use show solution after answering
- TODO: enable button xyz: not applicable any more, only the hint button, so remove them from the ui file
- TODO: rearrange the widgets in the advanced page
Still missing are:
- TODO: Conjugations
- TODO: Vocabulary test (school like) with good summary and "grade"
- no button for hints
- add buttons to "go back and forth"
- don't show if the answer was right
- DISCUSS: do we want to have some type of "grade" and if yes, how should it be calculated?
Easy ones reusing the written front end should be:
- TODO: Comparative forms, articles
- TODO: Example sentences
- TODO dani_l: replace [Continue] with [I didn't know the answer][I knew the answer] in flash card mode
- TODO: Unset the selected choice after an answer (radio button)
- DISCUSS: Showing the "I knew it"/"Did not know it" below the other radios looks bad
DONE dani_l: implement a toggle under the ✓/✗ image
- DISCUSS: do we like it?
- TODO: Make number of multiple choice answers configurable in the config practice dialog
DONE: Hint needs to be implemented in a sane way (now it shows the solution directly)- done (Frederik) DONE: Feedback - when a new word is shown, it still says "Your answer was wrong"- done (Frederik)
- TODO: Ignore accent / capitzalisation mistakes is not implemented currently
- TODO: make sure that "I did (not) know it" actually does the right thing
- TODO: I think I just had an empty word shown - make sure they are filtered away
- TODO: Create a class that does voodoo on strings to correct answers:
- Takes into account the options above (accent/capitalisation)
- There is a class like this, "answervalidator.cpp" but it's ugly old and eats kittens. Cleaning it up would be ok. Things like word similarity are in there.
- how far do we want to go when comparing answers? what feedback should the user get?
- you made a spelling mistake (this can be done by running spellcheckers and comparing what they suggest for a word with the solution)
- you wrote nonsense
- you have the accents all wrong
- how do we get this kind of feedback from the class to the ui?
All Practice Modes
- TODO: every word that was answered correctly is shown as "right on first attempt" in summary - no way to get anything wrong :D maybe change that...
- TODO: remove statistics that don't make sense any more from the TestEntryManager (like "skip known")
- TODO: feedback text: not "wrong idiot", not "I fear this was wrong.." but good sentences
- TODO: set grade to 1 when a word was answered incorrectly
- DISCUSS: define our terminology, e.g. is it grade or box, answer or solution, correct or right, incorrect or wrong etc.
- TODO: fix spacing and layouting issues in the ui
Grades are equivalent to boxes (leitner), they are:
- 0 not practiced
- 1 lowest level
- 7 best level
Words can be answered correctly or wrong.
- a correct answer gives grade += 1
- a wrong answer gives grade = 1 (reset to lowest level)
- a word that has been answered correctly is not asked again
- words that were incorrectly answered will come up again until they are answered correctly (or the practice is stopped)
- when a word is answered after being answered wrong before, it ends up on level 2, if the practice is stopped before, it stays in level 1
When answering in written mode, the user gets a chance to correct herself if the first answer was not right. She can edit the answer immediately after pressing enter again. If no changes were made, we assume the user doesn't know the answer and show the "wrong answer, continue" state. If on the other hand the answer is changed into the right answer, we still count it as wrong. The feedback text reads something like "Your answer was right, but you needed more than one attempt to get there.".
A word is wrong when
- the user enters anything but the right answer in the first attempt (first pressing enter is all that counts)
- hint means it's wrong (may change policy here later if it doesn't work out)
- accent and capitalisation might be accepted as right if the option is chosen in the config
- TODO: implement grading as described above and make sure it works in all modes
- DISCUSS: what happens when practicing with multiple modes? does only the last mode affect the grading? make in configurable?
- DISCUSS: find out if restricting the grading for each mode makes sense (e.g. saying "if i practice in multiple choice, the word can only rise up to grade 3")
- TODO: figure out a sane way to configure this
Summary Page (after practice is finished)
DONE dani_l: One page only DONE dani_l: Bar on top with colors that indicate how good the practice was DONE dani_l: tooltips on the bar that indicate the meaning of the colors DONE dani_l: caption under the bar
DONE dani_l: Table below (sorted, most mistakes on top)
- TODO fregl: add a button to print a list with $number words you should practice
- STILL VALID?: New rows are appended when pressing enter in the row above the last one, not in the last one - Qt 4.6 regression?
- TODO: changes in dock widgets are not reflected in table -> model needs to emit dataChanged for the view to update (not working since the editing happens without models knowledge)
- TODO: table: add column for grades (including combo box for changing the grade)
- TODO: summary dock widget: make word type work (or remove it)
- TODO: remove leitner box classes
- TODO: get rid of compiler warnings
- TODO: get rid of old kDebug() messages that don't make sense out of context
Profiles and config and zip
- DISCUSS: Instead of using current kvtml files, use the same with compression
- add images, sound and other media into the zip file