
The aim of this research is to create a system that increases the knowledge transferred between users and computers or robots. This system should simplify the programming process and increase user productivity. To ensure that domain knowledge is conveyed in the most effective manner, observations obtained from user demonstrations serve as input to generate and synthesize the programs. The primary issues to address in this research involve how to create programs, which are inherently deterministic, from the actions of users, which can be ambiguous, non-repeatable, and unintentional. For any system to succeed under the noisy nature of these conditions, it must be able to cope with the inevitable uncertainty that arises. Thus, programs that the system generates must not merely mimic the actions of the user, but the programs should capture the \emph{intent} of the user.
This paradigm of generating programs from user demonstration is broadly called \emph{Learning by Observation (\emph{LBO}), Programming by Demonstration, Teaching by Example}, or some permutation thereof.
In this talk, I will describe the approach we have taken and where we are going. This is going to be a miniature version on my PhD proposal talk, so I'm really looking for feedback.