The goal of developing algorithms for programming robots by demonstration is to create an easy
way of programming robots such that it can be accomplished by anyone. When a demonstrator
teaches a task to a robot, he/she shows some ways of fulfilling the task, but not all the possibilities.
The robot must then be able to reproduce the task even when unexpected perturbations occur.
Source: