  How can we help a forgetful learner learn multiple concepts within a limited
time frame? While there have been extensive studies in designing optimal
schedules for teaching a single concept given a learner's memory model,
existing approaches for teaching multiple concepts are typically based on
heuristic scheduling techniques without theoretical guarantees. In this paper,
we look at the problem from the perspective of discrete optimization and
introduce a novel algorithmic framework for teaching multiple concepts with
strong performance guarantees. Our framework is both generic, allowing the
design of teaching schedules for different memory models, and also interactive,
allowing the teacher to adapt the schedule to the underlying forgetting
mechanisms of the learner. Furthermore, for a well-known memory model, we are
able to identify a regime of model parameters where our framework is guaranteed
to achieve high performance. We perform extensive evaluations using simulations
along with real user studies in two concrete applications: (i) an educational
app for online vocabulary teaching; and (ii) an app for teaching novices how to
recognize animal species from images. Our results demonstrate the effectiveness
of our algorithm compared to popular heuristic approaches.
