Wrapping Learning
Components as SCOs
Thor Anderson
ID2SCORM Conference
March 5th, 2003
Agenda
What the SCO gives us today
Extending what the SCO contains in two directions:
Fine grain representation of the content itself
Gross grained, agreed upon software interfaces
Critical attributes of a Learning Component
2
SCOs contain Assets
Section 2.1.1.1 in SCORM Content Aggregation Model
3
SCOs “wrapped” with interface code
Section 2.1.1.2 SCORM Content Aggregation Model
4
SCOs and Assets can be aggregated
Section 2.1.1.3
SCORM
Content
Aggregation
Model
5
Summary
Assets may have metadata
SCOs may contain Assets and additionally have metadata
and implement the run-time communication interface
SCOs and Assets may be aggregated into a cohesive unit of
instruction
6
SCORM Advantages
Metadata allows uniform description and discovery
Run_Time Environment rules could make content
interoperable and reusable between LMSs
Packaging provides uniform import/export capabilities
Introduction of Sequencing could yield more advanced and
adaptive course structures
7
Possible areas for Improvements
Interoperability and Reuse focused from LMS point of view
What about from a content author‟s point of view?
Where is the instructional design reuse or interoperability?
Run-Time communication bound to particular technologies
Could you realistically use something other than JavaScript in SCOs?
And my key points today…
Assets could be more than “black boxes „o content”
What if the granular content itself were defined in XML?
Interfaces for more than basic technology needs
What if there were specific instructional interfaces that your learning
components could implement?
8
Assets as black boxes
At the core of every Asset is an unknown “thing”
It could be an HTML page with JavaScript and Flash
It could be an image in a variety of formats
It could be a Java applet
It could be a server generated page (ASP, JSP, etc.)
9
Assets as XML
It is possible today to have some assets that are fully
described in XML
This allows for almost unlimited manipulation of the asset for
instructional purposes
10
Example
Asset taken from a Nursing
course on gastro-intestinal
system
Not resizable
Simple image maps show name
when mouse rolls over letter
No ability to alter image without
copying bitmap into graphics
editor and having some skills for
this
Not designed for a particular
instructional goal
11
SVG Example
Same image converted to
Scalable Vector Graphics format
Standard from W3C
All image info captured in XML
Looks the same to me. What is
the big deal?
This graphic is much more flexible
and reusable
I changed the color of the stomach –
with Notepad
Don‟t believe me - demand a
demo!
12
Instructional Uses
Beyond the mere flexibility of vector graphics in XML, SVG
supports the addition of scripting languages
Example mines.svg uses JavaScript
What is the significance to a SCO if the assets themselves
could respond to user events?
If those events were related to some instructional outcome,
wouldn‟t it be nice if the asset could relay those events to the
SCO, which then forwards them to some true learning
management algorithms?
How could such communication take place?
13
Learning Objects?
I guess that could be the answer – if you want it to be.
You see, with current definitions you can label just about
anything you like as a “learning object”.
Go ahead. Try it. Just look around you or on your computer
screen and declare some things as “learning objects”.
Look! This slide is a learning object!
Maybe I should wax a bit scriptural as David Wiley
did yesterday…
14
Acts 17:23-24
“Ye men and women of instructional technology, I
perceive that in all things ye are too superstitious.
For as I passed by, and beheld your devotions, I
found an altar with this inscription, TO THE
UNKNOWN LEARNING OBJECT. This thing
therefore ye ignorantly worship, it declare I unto
you.”
-- read more in the gospel of Educational Technology this July/August
15
Actually, I give up
Sometimes it is easier to come up with a new term than try to
define one that has been in widespread use – just ask David
Merrill ;-)
The learning part is important and can remain, but just as
software engineers moved from reusable objects in source
code to reusable software components, so should our field.
Hence, the term “Learning Component”
16
What is a learning component?
1. Interaction with components should be possible only
through well-defined interfaces – not implementation code
2. Components should be encapsulated to provide separation
from their environment and other components. This
principle is critical to enable reuse.
3. Components must be part of a specified component
architecture and so will conform to a standard such as
COM+, Enterprise JavaBeans, or CORBA. If the
component architecture rules are obeyed, components may
take advantage of “built-in” features and services
4. Components should be designed to allow for customization
and assembly by non-programmers
17
Instructional Interfaces
This is really where such flexible assets could become
exciting
Imagine SCOs representing an instructional context into
which assets can be placed.
If the asset implements an agreed upon interface, the SCO
serves as a sort of instructional template (or shell) designed
to facilitate the learner‟s acquisition of a particular skill or
knowledge.
18
What is an interface?
Merriam Webster: “the place at which independent and
often unrelated systems meet and act on or communicate
with each other”
19
Key point of Interfaces
Key point is that the interface and the implementation are
separate – at least in software. This is not entirely the case
with many physical systems such as Legos, but there is still
a logical separation.
20
Example Instructional Interface
“An interface is not a constituent part of a component, but serves as a
contract between a component and its clients. An interface specifies the
services a client may request from a component; the component must
provide an implementation of these services” (Weinreich and
Sametinger, 2001).
public interface LearningComponent {
void setName(String title);
String getName();
void setDescription(String desc);
String getDescription();
void setFunction(String func);
String getFunction();
List getChildren();
Object getParent();
}
21
What does it mean to implement an
interface?
It means that component developers can choose how a
particular component or program delivers on the “contract”
that the interface represents.
Too technical for instructional technology? If so, the Open
Knowledge Initiative would be on the wrong track.
Besides, if you have SCOs you are already dealing with
having components implement interfaces. In SCORM‟s
case, the primary concern is a JavaScript interface.
It provides a good but technical balance between freedom of
wide-open implementation and rules that would be too
constraining
22
What could Learning Components
do?
Entity, Activity, and Process components could capture XML
encoded data based upon a particular theory (David
Merrill‟s)
Invisible components could encapsulate the instructional
algorithms behind strategies such as Identify, Execute,
Interpret, Classify, Transfer, etc.
The components would adhere to a component architecture
and therefore leverage all of the other components out there
such as GUI, data processing, and other components.
Components would be interoperable by implementing
agreed upon interfaces
23
Example component and context
The only visible
instructional
components here
are the context
component and
the SVG capable
Entity.
Invisible Identify
strategy
component with
customizer is also
there.
24
Extending SCOs both directions
The details of Assets encoded as XML could be known
Assets, SCOs, and their containers could implement
instructionally useful interfaces
The interfaces could be serving as the sort of independent
yet integrated systems or “layers” as per Gibbons ideas
SVG SVG SVG
25
Summary
Interfaces rule – ignore them at your own risk
The ability to create components that implement instructional
interfaces will increase the more we learn and practice from
software engineering
The learning components described here will require real
programming language support – both at design time and
delivery
I don‟t believe SCORM gets in the way of this. Indeed, it still
provides the baseline interoperability you would expect but
may need to be extended to accommodate emerging
instructional software interfaces.
26