[ Back ]
Courseware Engineering : some key concepts
It is a relatively new discipline adapting and applying the principles of software engineering to develop courseware by different models such as Prototyping.
Software engineering is the use of rigorous software development methods, based on sound mathematical and engineering principles. It is a systematic approach to the development, operation, maintenance and retirement of software.
Courseware may be defined as any form of computer-based, web-based learning material or computer-aided learning system. It can be of different scopes and dimensions:
a. Complex, large computer-based learning systems created by multidisciplinary teams;
b. "Desktop" or web courseware produced by teachers or trainers for their own use in lessons;
c. Produced by students or learners as a product or by-product of their learning activity (e.g. student feedback which is used to re-structure the course optimally).
Courseware engineering seeks to make courseware development equally rigorous. There are phases of courseware development and development models. It also deals with courseware re-use, maintenance and evolution.
There are several development models :
My choice
Reflecting on the above models, I find that integrating prototyping with modular model may be a feasible approach for me, particularly when I work as "one man band". I break the program into modules, and construct a prototype of a module, then test and evaluate it, re-model it and test again until it works. I may even switch to other modules when I desire something 'fresh' or get stuck at some point, and want to leave it for the moment. This is also the approach I use to build this web site.
There seems to be general agreement that there are four possible roles for a prototype to play: explanatory, exploratory, experimental and evolutionary.
Explanatory prototypes are used to explain, demonstrate or inform. They could be used, for example, to demonstrate to a client what sort of courseware you intend to develop.
Exploratory prototypes are used to determine the nature of the problem, and to clarify the requirements and goals of the courseware.
Experimental prototypes are used to evaluate proposed development solutions, in order to find an optimal one.
Evolutionary prototypes are used to refine your development solution. They can be a good way of dealing with evolving requirements.
The above should not really be thought of as types of prototype, but more as general areas where prototypes can provide assistance.
In my opinion, a prototype may cover or play the different 'areas' or roles that people suggest. Sometimes it is difficult to make a distinctive type of prototype. While the prototype 'explores', it may also 'explains' something. While users 'experience' with it and give feedback, 'evolvement' may occur.
In one sense, exploratory and explanatory prototypes are more suitable for initial or earlier stages of the development cycle as one tries to show to target users what the goals are, how user requirements will be met, how the general interface looks like.... etc.
Then experimental prototypes may be more feasible for the later stage, say, the system is half way or near completion. Some modification can be done should misconception arises. Or the 'core' part of the system is available for testing and validation to see if the flow is right or there are bugs. Or to see there are better ways to do the job, to achieve an optimal performance.. etc.
The evolutionary type portrays enhancement to the system. It may focus on particular modules only which require changes or improvement to meet changing user requirements or platforms. Its scale is smaller unless there are big structural changes (but then the whole system may need to be done from ground up).
@TK Chung
[ Back ]