We will discuss a unique content-creation, delivery and maintenance model for designing and teaching programming courses. This approach is based on the idea of creating customized learning objects, each of which is uniquely described by an XML document and presents an interface for future search, retrieval and update, as well as a potential connection to external assessment tools. We will demonstrate the electronic Adoptive Book that serves as an interactive, continuously up-to-date learning environment for students as well as an authoring tool for the instructor.