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)

  1. 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?
  2. 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?
  3. 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:


    updated by tucker, 9/7/97, 5:45pm.