To be truly useful, robots should be able to handle a variety of tasks in diverse environments without the need for re-programming. Current systems, however, are typically task-specific. Aiming toward autonomous robots capable of acquiring new behaviors and task capabilities, we describe a method by which a human teacher can instruct a robot student how to accomplish new tasks. During the course of training, the robot learns both the sequence of behaviors it should execute and, if needed, the behaviors themselves. It also stores each learning episode as a case for later generalization and reuse.