Ian Douglas*

Component-based design and development is a technique that has long been used for industrial product manufacture and it has recently gained prominence in software development. There have been moves towards bringing the idea of components into the development of educational systems. The chief benefit of component manufacture lies in the ability to reuse existing components in new courses. A vision is presented of how component-based course development might work. For such a vision to be realized three problem areas need to be addressed.



A systems approach to educational product development (Dick and Carey, 1996) is slowly becoming more common in educational institutions. The demands for increased quality and the associated accreditation has led to more scrutiny of the educational development process. The systems approach to educational development has many parallels with modern approaches to software development (Brugge and Dutoit, 1999). Whereas individuals or small groups once crafted software, it is now more often engineered by large multi-disciplinary teams. Software engineering also stresses that a systematic analysis and design phase precede the implementation of a product.

A recent paradigm shift has a taken place in software engineering towards object-oriented and component methods of software development, using new techniques and new thinking about design. This idea of constructing products from components is an established technique in the industrial manufacture of hard products. The chief benefit of a component type approach is in allowing reuse, i.e. a component used on one product can be used to provide the same function for another product. An additional benefit is that of ease-of-maintenance, i.e. if a problem arises in a product it is possible to identify the faulty component and replace it.

Recently there have been a number of initiatives, which seek to transfer the ideas and benefits of the component approach to the development and delivery of educational systems. There are still different perspectives on what constitutes a learning component (the term learning object is also used). Definitions can be open and include any identifiable unit of learning materials or it can refer to specifically on-line computer-aided learning.

The component model is related to the trend of textbook publishers setting up custom publishing divisions. Rather than just offering fixed packages (textbooks), publishers can now offer customers the option of creating their own packages using extracts from all the intellectual property of that publisher. The idea of a learning component can also be linked to that of Java-based computer based learning software, where a small piece of interactive software, e.g. a simulation, is used to teach a particular concept via the Internet (for examples in mathematics and science see- http://www.best.com/~ejad/java/).



For learning components to work effectively there needs to be a central repository of stored components. To envisage how this might work consider the following scenario:

Professor Smith at the Newtown University is developing a new course in "Systems Analysis and Design using UML". This course is to be added to the undergraduate program in computer science. The professor has identified a number of specific learning objectives, including the following examples.

By the end of this course students should be able to:

"Provide a critique of a given sequence diagram"

"Convert a class diagram into C++ code"

Professor Smith selects the web reference for the learning component repository. He selects search and enters the keywords " UML " and "sequence". The search results in the display of several learning objectives related to these keywords, one of which, "provide an analysis of a sequence diagram", sounds similar to what he is looking for. Selecting the identified objective results in the display of a list of learning components aimed at achieving this learning outcome, it will also display associated assessment components. Selecting on each object name will access meta-data attached to the component. Included in the meta-data would be such information as type of learning object (e.g. whether it is instructions for a tutorial exercise or a Java applet containing an interactive practice exercise), technology requirements (e.g. requires Apple QuickTime viewer), peer reviews of the object’s quality, student feedback on their experience using the components and the learning model applied. After selecting one of the components, Professor Smith then enters the second objective. This time there are no associated learning objectives. The system asks him if he wants to record this as an unfulfilled need, he selects yes and the learning objective is recorded as one where a need for learning components exist. Professor Smith does a search for unfulfilled needs using "UML" as a keyword; this results in a list of several learning outcomes that have been entered by other professors. Professor Smith notes that a small computer-aided learning object he recently developed could fulfill one of the outcomes. He selects ‘submit learning object’ and is then given a form to fill in the standard meta-data; after doing this he is able to submit his object. Once submitted, an email is automatically sent to notify all those instructors who have registered an interest in this learning objective.



Before the idea of learning components and learning component repositories becomes established there are a number of problems that must be resolved. These include:

Standards: Standards must be set for the components and the meta-data that describes them. The problem of standards will be resolved as it has in the software world by either of two means: the market will determine the standard, or an organization that is supported by the majority of developers will set a standard. An example of an initiative on standards is the IMS Global Learning Consortium (http://www.imsproject.org/ ), which has the support of a number of technology companies. In parallel with this it is likely that a number of organizations will use the market to try and establish their own standards.

Cataloging and finding the standard components: Once standards have been established the next problem to be solved is in determining how the components are to be accessed by those who wish to use them. A database system linked to a web-based search facility is the most likely option for course developers to access existing learning components. The success of this will be very much dependent on the standards used.

Supporting course developers in using a component-based approach: While there are a large number of software products that assist in the delivery of course materials (e.g. CourseInfo, WebMC), there are very few tools available to support the systematic analysis, design and documentation of new courses and curricula, and none that incorporate a component model. Most modern software companies involved in large-scale software development will use computer-aided software engineering tools (CASE), which document analysis and design models from which software components are implemented. The equivalent tools need to be developed for course developers, to assist them in thinking in terms of components.




Brugge, B. and Dutoit, A.H. (1999). Object-Oriented Software Engineering. Saddle River,NJ: Prentice Hall.

Dick, W. and Carey, L. (1996). The systematic design of instruction. New York: HarperCollins.