Human-robot interaction is a growing research domain; there are many approaches to robot design, depending on the particular aspects of interaction being focused on. The challenge we address in this paper is to build robots that have the ability to learn to perform complex tasks and refine their acquired capabilities through interaction with humans in the environment. We propose an approach for teaching robots by demonstration similar to the one people use among themselves: demonstrate a task, then allow the learner to perform it under the teacher’s supervision. Depending on the quality of the learned task, the teacher may either demonstrate the task again or provide specific feedback during the learner’s practice trial. Thus, generalization over several demonstrations and using feedback during practice execution trials are key capabilities for refining previously learned task representations. We validated these concepts with a Pioneer 2DX mobile robot learning various tasks from demonstration.