Traditionally, learning material is delivered in a textual format and on paper. For example, a learning module on a topic may include a description (or a tutorial) of the topic, a few examples illustrating the topic, and one or more exercise problems to gauge how well the students have achieved the expected understanding of the topic. The delivery mechanism of the learning material has traditionally been via textbooks and/or instructions provided by a teacher. A teacher, for example, may provide a few pages of notes about a topic, explain the topic for a few minutes, discuss a couple of examples, and then give some exercise problems as homework. During the delivery, students ask questions and the teacher attempts to answer the questions accordingly. Thus, the delivery is interactive: the teacher learns how well the students have mastered the topic, and the students clarify their understanding of the topic. In a traditional classroom of a relatively small size, this scenario is feasible. However, when e-learning approaches are involved, or in the case of a large class size, the traditional delivery mechanism is often not feasible. In this article, we describe an interface that is “active” (instead of passive) that delivers learning material based on the usage history of the learning material (such as degree of difficulty, the average score, and the number of times viewed), the student’s static background profile (such as GPA, majors, interests, and courses taken), and the student’s dynamic activity profile (based on their interactions with the agent). This interface is supported by an intelligent agent (Wooldridge & Jennings, 1995). An agent in this article refers to a software module that is able to sense its environment, receive stimuli from the environment, make autonomous decisions, and actuate the decisions, which in turn change the environment. An intelligent agent in this article refers to an agent that is capable of flexible behaviour: responding to events timely, exhibiting goal-directed behaviour, and performing machine learning. The agent uses the profiles to decide, through case-based reasoning (CBR) (Kolodner, 1993), which learning modules (examples and problems) to present to the students. Our CBR treats the input situation as a problem, and the solution is basically the specification of an appropriate example or problem. Our agent also uses the usage history of each learning material to adjust the appropriateness of the examples and problems in a particular situation. We call our agent Intelligent Learning Material Delivery Agent (ILMDA). We have built an end-to-end ILMDA infrastructure, with an active GUI front-end—that monitors and tracks every interaction step of the user with the interface, an agent powered by CBR and capable of learning, and a multi-database backend. In the following, we first discuss some related work in the area of intelligent tutoring systems. Then, we present our ILMDA project, its goals and framework. Subsequently, we describe the CBR methodology and design. Finally, we point out some future trends before concluding.