Assistive Software
| Sponsor |
Jen Mankoff
jmankoff@cc.gatech.edu
home: (404) 872-6664
work: (404) 894-1077
|
| Area |
HCI / Intelligent Systems |
Problem
There is a growing number of Computer Programmers developing
Repetitive Stress Injuries. These people, along with other people with
a variety of disabilities, are faced with a serious lack of assistive
technology to support the programming process. Most software-based
assistive technology (with the notable exception of emacspeak) is
geared towards word processing. Yet, programming is a very well
defined domain, with easily parsable grammars and a limited
vocabulary. Thus, it should be a much simpler task to write assistive
software for programming than for free-form dictation. For example, a
word prediction program need only consider the keywords in a language,
and any declared variable/function names. If it goes one step further
and considers the context of the word being written, it can narrow
down the possibilities even more.
Suggested Projects
(1 and 2 are especially urgent)
- Write an elisp program that will load in a dictionary containing
words and probabilities, and, given a prefix, output the 10 most
probable words starting with that prefix. Describe some ways of rating
words. How would you modify the rating system for a programming
language dictionary? How would you modify it so it could learn?
- Write an elisp program that will store a history of sentences in a
tree structure according to probability, and then retrieve suggested
sentences on command given a prefix consisting of words. See Tucker or
Jen for more information on this data structure. How would you modify
this program to learn over time? How would you modify the system to
support programming instead of email? What if the words in the prefix
were not necessarily consecutive in the sentence to be matched
against?
- Design a good user interface to one of the first two projects. The
UI needs to minimize keystrokes. For example, it could automatically
insert the current top choice as the user types each letter. The top n
choices could always be visible, with one-keystroke insert
commands. For examples, check out ispell-mode and the remembrance
agent.
Resources
Contact the sponsor before you begin. She can provide you with:
- Elisp Book.
- GNU elisp manual (online, URL).
- Paper on Syntactic sentence completion (ASSETS '94).
- Pointers about word completion.
- Sample word-prediction program in elisp which doesn't use word
ratings and can't switch dictionaries.
- Source code to the remembrance-agent mode.
- Advice and further details.
updated by tucker, 9/7/97, 5:45pm.