The goal of this paper is to describe a new approach to a content creation and delivery mechanism for a programming course. This approach is based on the concept of creating a large repository of learning objects, each of which consists of the core material, code examples, supplementary notes, and review questions. A learning object will be uniquely described by a XML document and presents an interface for future search, retrieval and updating, as well as for potential connection to external assessment tools. Furthermore, we describe a new teaching, learning and authoring tool (called Adaptive Book) that will allow users to add new learning objects, modify current ones, and discuss concepts using a variety of representation models. With the adaptive book, an instructor will be able to design his or her very own course using a large repository of material, which will target a particular audience or a customized syllabus. In addition, the electronic adaptive book will serve as an intera...