KDEEdu/Parley/Todo
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/
General
DONE: remove old practice codeF- there is still a practiceold folder: leave it until merge is done! Frederik
- 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
TODO: filter out empty entries for practice - F- DISCUSS: timeouts during practice ???
Synonyms
- 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?):
DONE: Check synonyms as part of written practice(BEN_SCHL)DONE: accept any synonym as correct(BEN_SCHL)DONE: ask to enter all synonyms(BEN_SCHL)DONE: show already entered synonyms in list(BEN_SCHL)DONE: ask until the exact word that is wanted is there, but don't count other synonyms as wrong on the way there(BEN_SCHL)DONE: Check user options if he really wanted synonyms to be counted as correct by now we always accept them as correct (BEN_SCHL)- Let other modes benefit from synonyms. Maybe similar to the hint button show a synonym if it exist?
DONE: If in written mode a synonym was entered, check if that synonym is in this practice mode and increase its good count ?(BEN_SCHL)
LaTeX support
- TODO: write a class to convert latex code to images, with error handling etc
- TODO: integrate LaTeX in written and flash card practice modes
- TODO: write a dock widget to support the user editing latex (line edit, preview, checkbox to toggle math mode?)
- check cantor, there is some rendering code
Fullscreen mode
- TODO: implement fullscreen mode (and add to toolbar?)
- TODO: implement auto-hiding of toolbar (like gwenview, firefox etc)
Configure Practice
Main page:
DONE: Currently check boxes and radio buttons are shown ->remove radiosF
DONE: move multiple choice options to advanced- KoliaDONE: move checkboxes in Practice->Options to Advanced page in config dialog- Kolia- DISCUSS: Tenses - where should they be selected? only needed for conjugation practice
DONE: language selection: instead of having two lists, just have one list containing "French → German" and "German → French" (Kolia)I'm sorry, I just did it - Frederik- check if with 2 languages are always in the right order now!
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)
Other pages:
- TODO: threshold: word types are broken here?
Notes Advanced page:
- DONE:
Remove direction switching checkbox until implemented- Kolia - 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
- TODO: comparison forms: make no distinction between adjectives and adverbs
- IDEA/TODO: maybe it would make sense to put the most common options into the statistics page that is shown before practice is started
- maybe replace the checkboxes again with radio buttons -> it's so easy to change now
- only show one bar of grades - the one that corresponds to the current language selection
Completely Missing
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: Example sentences (easy indeed)Frederik
Article/Gender of Nouns
Two cases: we have the articles in the grammar section or we don't Example: German die Flasche is female == bottle
- a) We know the articles, this is presented:
- bottle
- der Flasche
- die Flasche
- das Flasche
- bottle
- b) We don't know the articles
- bottle
- Flasche is masculine
- Flasche is feminine
- Flasche is neuter
- bottle
Notes:
- definite articles by default, fall back to indefinite
For the implementation: just use the Multiple choice front end and subclass (if possible, otherwise make it possible!) the multiple choice backend
Comparison Forms
You know? Adjectives and adverbs - words that describe other words.
Example:
- unordentlich
- Absolute: chaotic (the base form)
- Comparative: [more chaotic] (user inputs more chaotic in line edit)
- Superlative: [the most chaotic] (user inputs most chaotic in line edit)
Implementation:
- caption (the word in the other language)
- 3 labels and line edits
Flash Card
DONE dani_l: replace [Continue] with [I didn't know the answer][I knew the answer] in flash card mode
Multiple Choice
DONE Kolia: 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?
DONE Kolia: Make number of multiple choice answers configurable in the config practice dialog
- keyboard focus?!?! if I press enter and no choice is selected, it will always be wrong
- hotkeys (maybe in menu? even configurable??) for the choices: 1 for first, 2 for second...
- use kactions
- TODO: continue when a radio button is selected
- TODO: check that only entries from the right languages are taken - I just had the choices taken from different languages (Frederik)
Written
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)DONE: Ignore capitalization mistakes(BEN_SCHL)DONE: Ignore accent mistakes(BEN_SCHL)DONE: Create a class that does voodoo on strings to correct answers:(BEN_SCHL)DONE: Takes into account the options above (accent/capitalisation)(BEN_SCHL)- 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.
- Moved some of the code to the new WrittePracticeValidator class maybe move more cuntionality 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
DONE: you have the accents all wrong(BEN_SCHL)DONE: you have wrong capitalization(BEN_SCHL)
- 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
- how do we get this kind of feedback from the class to the ui?
DONE: when pressing enter and the input is empty, directly continue to solution. don't ask for another try.(BEN_SCHL)- TODO dani_l: only show right/wrong when the solution is shown
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
DONE: set grade to 1 when a word was answered incorrectly(BEN_SCHL)
- 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
- TODO: implement support for showing pronunciation for every practice frontend
- TODO: implement support for sound for every practice frontend
- TODO: add a "Auto-play sound" option to the practice settings and implement it
Grades
Grades are equivalent to boxes (leitner), they are:
- 0 not practiced
- 1 lowest level
- ...
- 7 best level
- Words are answered correctly:
- a correct answer gives grade += 1
- a word that has been answered correctly is not asked again
- Words are answered wrong:
- a wrong answer gives grade = 1 (reset to lowest level). Wrong anserws are:
- If a hint message has been used (may change policy here later if it doesn't work out)
- If an accent and/or capitalisation mistake was made (might be accepted as right if the option is chosen in the config)
- If answer stays the same after enter is pressed a second time assume the user doesn't know the answer and continue.
- Just print a different message if the user corrected himself and the answer was right
- words that were incorrectly answered will come up again until they are answered correctly (or the practice is stopped)
- DISCUSS: 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 (Leitner says it stays in 1 ?)
- a wrong answer gives grade = 1 (reset to lowest level). Wrong anserws are:
- TODO: implement grading as described above and make sure it works in all modes
- TODO: Respect Leitner option to ask for the correct answer three times in a row.
- DISCUSS: If you answer an unknown word wrong or right doesn't matter as by definition above wrong words get set to level 1 (from 0) and right words get increased to 1 (from 0). I changed that correct new words end up in level 2 ? (BEN_SCHL)
- DISCUSS: what happens when practicing with multiple modes? does only the last mode affect the grading? make in configurable? (DOES THIS STILL APPLY?)
- 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 or give different grades for each practice mode ?
- TODO: pass in 3 int from backend to frontend: current, good, bad (so that the selection of right/wrong can be previewed correctly)
Result States
- User hasn't entered anything
- Status image: ?
- Status image toggle: inactive
- Line edit: black
- Counted as: nothing yet
- User entered a wrong solution
- Status image: ✗
- Status image toggle: active (?)
- Line edit: black
- Counted as: nothing yet
- User entered a wrong solution, got feedback and pressed enter without changes
- Status image: ✗
- Status image toggle: active
- Line edit: red, disabled (Solution is shown)
- Counted as: wrong
- User entered wrong solution(s), got feedback and entered the correct solution
- Status image: ✓ (?)
- Status image toggle: active (doesn't make sense!)
- Line edit: green, disabled (Solution is shown)
- Counted as: wrong
- User entered correct solution on first try
- Status image: ✓
- Status image toggle: active
- Line edit: green, disabled (Solution is shown)
- Counted as: correct
- User revealed answer only using hints
- Status image: ✓ (?)
- Status image toggle: active (doesn't make sense!)
- Line edit: green, disabled (Solution is shown)
- Counted as: wrong
Summary Page (after practice is finished)
DONE dani_l: One page onlyDONE dani_l: Bar on top with colors that indicate how good the practice wasDONE dani_l: tooltips on the bar that indicate the meaning of the colorsDONE 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 old kDebug() messages that don't make sense out of context
- TODO: check if the column visibility is saved correctly in all cases
- TODO fregl:
there is a broken version of the 5 language document in the files on edu.kde.org(and there should be a *version with and without* images which you can clearly separate from each other, right?)
- Settings
- TODO: the languages that will be practiced should be per document, not global
- TODO: other practice options should probably be per document as well
- TODO: implement undo support
- TODO: frederik be ashamed! Danish document -> 4000 words to sublessons a 20 doesn't work
- TODO: creating a new document: title is not carried over for root lesson and window title
- big todo: configurable special chars per language - come with language definition - configurable hotkey ...
Word types
- TODO: newly created sub word types should inherit their parent's grammar type -> Frederik?
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
Missing Artwork
- TODO Icon for stop practice - idea: like start practice: flash cards with multimedia stop
- TODO Icon/image for states:
- User answered correct (✓)
- User answered wrong (✗)
- User has not answered yet (?)
TODO: screenshots that explain the above
Regressions in trunk
- Title is broken (documents show up with 0 as title, chainging root lesson behaves weird, it doesn't get saved)
- TODO fregl: Auto-save in practice mode
libkdeedu
(Frederik does all of this unless someone else wants to punish himself)
- Comparison forms: use keduvoctext for forms (make grades possible)
- make grades for articles possible
Stuff to discuss today
- artwork
- what/how/format
- who
- write request with lots of screenshots?
- correct/wrong states, it it ok how they are currently implemented (especially in written mode)
- great, but: longer ? in written (see above)
- what grammar modes do we need and how can they be implemented
- can we reuse/extend our frontend/backend modes?
- grading for grammar training
- create example document(s) making use of all our advanced features for testing
- grammar training
- multiple choice options
- two images per entry, pronunciation, sound
- ...
- blockers before merging the branch back to trunk
- timeline for merging, release schedule
- synonym/antonym: what to keep? what about semicolons?
Merging to trunk - timeline
Release blocker:
- lib-grammar grades do not work yet
- Frederik - until April 15th do the freaking lib!
- Daniel: implement grammar modes
- April 22: Frederik: conjugation done wrong again before
- synonyms and accents have to work in practice again
schedule
- April 20: Decide if branch gets released: tentatively
- Frederik: away April 22-30
- Frederik: probably away May 12-17
- edu sprint: (work work work on Parley) May 20-26
- April 26th - soft feature freeze - most things should be there, stop doing big new features
- Frederik: create packages with build service, get user feedback
- May 11th -> Freeze - no new features, stabilize!
- May 19th: Soft Message Freeze
- NO NEW STRINGS, NO STRING CHANGES ANY MORE (ask Frederik if you need to change strings and let him take the flames)
- June 2nd: Documentation/Handbook Freeze
- Have an updated documentation, work with Burkhart to get it from userbase to docbook