Tuesday, March 2, 2010

GUI and adaptive algorithms for feedback

Zach and I met today to discuss our next steps. We came up with an approach to presenting the Graphical User Interface for WiiCane when it becomes a commercial product. Currently, we have a very crowded screen that includes controls and text boxes for setting all of the feedback thresholds and other conditions. That screen is just for our purposes during testing. But, our users will want something much simpler, that is tied to the curriculum that Gene and the reviewers (Bonnie, Donna and Rob) are creating. So, we are proposing to create a different screen for trainees and instructors to use that does away with all of the controls, and instead provide a list of lessons. Once logged on, a user would touch the screen to choose a lesson; choosing a lesson, sets up all of the conditions for that activity. For example, if you choose "Lesson 1: Veering", the system will turn on both corrective and positive feedback for veering, but no other feedback. The system would assume a default value for the veering threshold (the distance away from the center line that you go before you hear the correction "go right" or "go left").  "Lap swimming" would be turned off for Lesson 1, which only calls for a single traverse of the course. When you select Lesson 1, instructions for tapping three times to start and stop the feedback is displayed and is spoken through the computer and the headphones. Later, if you want to switch to Lesson 4, the veering feedback turns off, and the rotational feedback turns on, and the instructions are again displayed and spoken.

With this approach, we control everything with presets or styles. These are factory settings for each feedback condition or operational mode, based on our experience of using the system. The user will not turn things on or off, or set the thresholds (which turns out to be very trick to do).  Instead, the system will configure itself according to the lesson, and the feedback threshold will be controlled dynamically.  So, as the trainee practices one of the lessons, the computer pays attention to his or her performance and spontaneously and continuously adjusts the thresholds.  This way, as a trainee gets better at doing the task, the tolerance for being correct is reduced. This is an adaptive system similar to ones used in standardized assessments, where questions are selected based on the test-taker's success rate in answering earlier ones. I am guessing that a system like this will promote very rapid improvement, even though the user might not realize he was getting better, because it would seem that it was always equally difficult to get the positive feedback!

This approach will also simplify the process of rating student performance so that we can tell whether learning is occurring. If we see a downward trend in the threshold distances for any given exercise, we know that the student is improving, at least in doing that one thing better (such as veering).  That trend, however, tells us nothing about arc width, but that could be measured simultaneously in the same way. So we may end up with a multi-dimensional score, by which a trainee can be given an overall performance rating. Another virtue of the system we have in mind is that it would be easy to add or revise lesson profiles or presets using a single, very tiny text file that could be easily updated automatically if they connect the computer to the internet. This way, we can update the program remotely very easily.

I am interested in knowing what project staff thinks of this proposal.

No comments: