|
Article Excerpt The Web has caught the attention of many educators as an efficient communication medium and content delivery system. But we feel there is another aspect of the Web that has not been given the attention it deserves. We call this aspect of the Web its "component architecture." Briefly it means that on the Web one can develop very complex applications, not from scratch, but rather by mixing and matching a selected array of specialized modules. We argue that this component architecture allows us to easily and inexpensively develop complex, diverse, dynamic, and pedagogically sound educational software. Additionally this component architecture changes the way teachers think about and teach with technology. It also has implications for how we teach the next generation of educational technology designers. In this article we discuss the advantages of the Web as a component framework for educational software development by examining three web-based learning environments. The three environments are different in many ways and were developed on different computer platforms, but all took advantage of the component architecture of the Web. We also explore the implications of the component concept for teachers and educational technologists.
**********
"Explosion" and "revolution" are two words that are frequently used to describe the dramatic increase in the educational uses of the World Wide Web (WWW or Web). The Web, growing much faster than any other technology, has been seen as the most promising medium for deploying educational content. Two main reasons have been identified for this growth of educational uses of the Web. The first reason is that the Web offers a new medium for communication. From e-mail to MUDS and MOOS, the Internet in general (and the Web in particular) allows learners from geographically disparate locations to communicate and interact with each other in both synchronous and asynchronous ways. This ties in with current conceptions of learning being a socially constructed enterprise (Brown, Collins, & Duguid, 1989; Resnick, 1987). The Internet offers the potential to develop "communities of learners" or "discourse communities" that allow students to collaborate and learn (Brown, 1994). The second aspect of the Web that is seen as being valuable for educational purposes is its conception as an information resource, the "global library" so to speak. Though it is not clear how much of this is hype and how much is reality, more and more information resources (journals, newspapers, encyclopedias, etc.) are now available online--a trend that can go just one way. These resources are not merely restricted to print or text-based resources, but rather encompass a variety of media formats: image, video, and audio.
We agree that these two reasons are powerful ones indeed. However, we feel that there is another aspect of the Web that has not been given the attention it deserves. We call this aspect of the Web its "component architecture." Briefly it means that on the Web one can develop very complex applications not from scratch, but rather by mixing and matching a selected array of specialized modules. We argue that this component architecture allows us to easily and inexpensively develop complex, diverse, dynamic, and pedagogically sound educational software. Additionally this component architecture changes the way teachers think about and teach with technology. It also has implications for how we teach the next generation of educational technology designers.
Component Architecture and Component-Based Frameworks
What is Component Architecture? The concept of component architecture as a new approach to developing software is deceptively simple. Essentially, this approach focuses on producing reusable and context independent software units (i.e. components). The notion of component is quite old and has been used in engineering and business for many years. In a sense, the ubiquitous screw is a perfect example of the component concept. The screw is used in a large number of contexts. What makes it possible to be used in different contexts is its context-independence. Context independence means that a component is easily transferable from its development context (the screw factory) to a wide variety of application contexts (cars, ships, and planes). It also indicates that it can be easily replaced by other components with similar functionality but different or better qualities, that is, with a screw made of stainless steel (Schmidt & Assmann, 1998).
Economists recognized the power of the component architecture idea long ago. Socially, we know that individuals are good at different things. This division of labor has been the foundation of modern economy. No individual can provide or sustain all that it takes to survive in a complex human society. The way we do it is by distributing expertise amongst different people--farmers, doctors, lawyers, software designers and so on. The idea of individuals finding their niche in the market economy, guided by Adam Smith's hidden hand, is essentially a component concept.
Similarly, people studying the cognitive architecture of the human brain have begun to argue for a modular architecture (Pinker, 1997). Evidence from a variety of perspectives (developmental psychology, evolutionary psychology, neurobiology, and cognitive psychology) indicate that the human brain is more like a "Swiss army knife" (Tooby & Cosmides, 1992) than an all purpose, context independent thinking system. It appears that our brains have hundreds (if not thousands) of expert modules that perform a narrow range of tasks extremely efficiently and accurately--the outputs of one module feeding the inputs of others. The advantages that accrue from this modularity are, once again, economy and expertise. Basically it is more efficient and faster to be an expert at one thing than an expert at many things.
The advantages of using a component framework. Thus, component-based development has two apparent advantages over traditional approaches to software development: economical and functional. Traditionally, a piece of software is often constructed from scratch, independent of past and future developmental efforts which prevents it from benefiting from other existing software and neither does it enrich future software development. Thousands of lines of code have to...
|