U.S. patent application number 13/409006 was filed with the patent office on 2013-04-18 for course skeleton for adaptive learning.
The applicant listed for this patent is Satish Menon, Jayakumar Muthukumarasamy, Partha Saha, Kurtis S. Taylor, James R. Utter. Invention is credited to Satish Menon, Jayakumar Muthukumarasamy, Partha Saha, Kurtis S. Taylor, James R. Utter.
Application Number | 20130095465 13/409006 |
Document ID | / |
Family ID | 48082455 |
Filed Date | 2013-04-18 |
United States Patent
Application |
20130095465 |
Kind Code |
A1 |
Menon; Satish ; et
al. |
April 18, 2013 |
COURSE SKELETON FOR ADAPTIVE LEARNING
Abstract
A method and apparatus for utilizing a course skeleton for
adaptive learning is provided. Based on student profile information
and course goal information, a query is generated to dynamically
determine which learning items should be presented to the student.
The query, which is based on a particular learning goal, may differ
from student to student, and therefore different students may be
presented with different learning items to achieve the same
learning goal. In addition, as new learning items is added to the
learning item repository, the learning items returned by the query
for a particular learning goal may change, even if the query used
for the goal does not.
Inventors: |
Menon; Satish; (Sunnyvale,
CA) ; Muthukumarasamy; Jayakumar; (Dublin, CA)
; Saha; Partha; (Oakland, CA) ; Taylor; Kurtis
S.; (Mesa, AZ) ; Utter; James R.; (Lake
Stevens, WA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Menon; Satish
Muthukumarasamy; Jayakumar
Saha; Partha
Taylor; Kurtis S.
Utter; James R. |
Sunnyvale
Dublin
Oakland
Mesa
Lake Stevens |
CA
CA
CA
AZ
WA |
US
US
US
US
US |
|
|
Family ID: |
48082455 |
Appl. No.: |
13/409006 |
Filed: |
February 29, 2012 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
13271328 |
Oct 12, 2011 |
|
|
|
13409006 |
|
|
|
|
Current U.S.
Class: |
434/362 |
Current CPC
Class: |
G06Q 50/20 20130101;
G09B 7/00 20130101; G09B 7/02 20130101 |
Class at
Publication: |
434/362 |
International
Class: |
G09B 7/00 20060101
G09B007/00 |
Claims
1. A method, comprising: maintaining a learning item repository,
wherein the learning item repository includes both: a) a plurality
of learning items, and b) learning item metadata describing one or
more learning items of said plurality of learning items;
maintaining a learning hierarchy, wherein the learning hierarchy
represents a hierarchy of related learning goals, and each node in
the learning hierarchy is associated with corresponding goal
metadata that describes a learning goal; receiving a first request
for learning items to assist a first user to achieve the learning
goal associated with a first node in the learning hierarchy;
wherein the first node is associated with first goal metadata; in
response to receiving the first request, one or more computing
devices automatically generating a first query, wherein the first
query includes arguments that are based at least in part on the
first goal metadata; one or more computing devices causing the
first query to be executed against the learning item repository to
identify learning items to assist the first user to achieve the
learning goal associated with the first node; one or more computing
devices providing at least one learning item, identified using the
first query, to the first user; and one or more computing devices
receiving assessment information from the first user for a learning
assessment associated with the first node.
2. The method of claim 1, further comprising: receiving, a second
request for learning items to assist a second user to achieve the
learning goal associated with the first node in the learning
hierarchy; in response to receiving the second request, generating
a second query that is identical to the first query and causing the
second query to be executed against the learning item repository;
receiving, from the learning item repository, in response to the
first query, a learning items identifier that identifies a first
learning item without receiving any learning items identifier that
identifies a second learning item; receiving, from the learning
item repository, in response to the second query, a learning items
identifier that identifies the second learning item; wherein said
providing said at least one learning item comprises providing the
first learning item to assist the first user to achieve the
learning goal associated with the first node; and providing the
second learning item to assist the second user to achieve the
learning goal associated with the first node.
3. The method of claim 1, further comprising: maintaining profiles
for a plurality of users, wherein the profile maintained for each
of the plurality of users describes one or more education-related
attributes associated with the corresponding user of the plurality
of users; wherein the first user is a user of the plurality of
users; and wherein the first query includes one or more arguments
that are based at least in part on one or more education-related
attributes described at a profile for the first user.
4. The method of claim 3, further comprising: receiving a second
request for learning items to assist a second user, of the
plurality of users, to achieve the learning goal associated with
the first node in the learning hierarchy; in response to
determining that the second student's profile is similar to the
first student's profile, generating a second query that is
identical to the first query and causing the second query to be
executed against the learning item repository; receiving, from the
learning item repository, in response to the first query, a
learning items identifier that identifies a first learning item;
receiving, from the learning item repository, in response to the
second query, a learning items identifier that identifies a second
learning item that is different from the first learning item;
wherein said providing said at least one learning item comprises
providing the first learning item to assist the first user to
achieve the learning goal associated with the first node; and
providing the second learning item to assist the second user to
achieve the learning goal associated with the first node.
5. The method of claim 3, further comprising: receiving a second
request for learning items to assist a second user, of the
plurality of users, to achieve the learning goal associated with
the first node in the learning hierarchy; in response to receiving
the second request, generating a second query, wherein the second
query includes one or more arguments that are based at least in
part on one or more education-related attributes described at a
profile for the second user; causing the second query to be
executed against the learning item repository; receiving, from the
learning item repository, in response to the first query, a
learning items identifier that identifies a first learning item;
receiving, from the learning item repository, in response to the
second query, a learning items identifier that identifies a second
learning item that is different from the first learning item;
wherein said providing said at least one learning item comprises
providing the first learning item to assist the first user to
achieve the learning goal associated with the first node; and
providing the second learning item to assist the second user to
achieve the learning goal associated with the first node.
6. The method of claim 1, further comprising: performing a semantic
analysis on seed text that is included in the first goal metadata,
wherein the seed text includes information about the learning goal
corresponding to the first node; wherein the first query includes
one or more arguments that are based at least in part on keywords
derived from the semantic analysis.
7. The method of claim 1, further comprising: performing a semantic
analysis on text posted by the first user in one or more discussion
groups that are associated with educational courses; wherein the
first query includes one or more arguments that are based at least
in part on keywords derived from the semantic analysis.
8. The method of claim 3, further comprising: determining that one
or more arguments in the first query do not match learning item
metadata in the learning item repository; generating a report that
identifies a plurality of arguments that do not match learning item
metadata in the learning item repository, wherein the report
identifies the one or more arguments; wherein the arguments are
ranked in the report based, at least in part, on the number of
times that the arguments have been used in queries executed against
the learning item repository.
9. The method of claim 6, further comprising: determining that one
or more arguments in the first query do not match learning item
metadata in the learning item repository; generating a report that
identifies a plurality of arguments that do not match learning item
metadata in the learning item repository, wherein the report
identifies the one or more arguments; wherein the arguments are
ranked in the report based, at least in part, on the number of
times that the arguments have been used in queries executed against
the learning item repository.
10. The method of claim 7, further comprising: determining that one
or more arguments in the first query do not match learning item
metadata in the learning item repository; generating a report that
identifies a plurality of arguments that do not match learning item
metadata in the learning item repository, wherein the report
identifies the one or more arguments; wherein the arguments are
ranked in the report based, at least in part, on the number of
times that the arguments have been used in queries executed against
the learning item repository.
11. The method of claim 1 further comprising: analyzing results
produced by providing the at least one learning item to assist the
first user to achieve the learning goal associated with the first
node; and determining learning items to assist subsequent users to
achieve the learning goal associated with the first node based, at
least in part, on the results.
12. One or more non-transitory storage media storing instructions
which, when executed by one or more processors, cause: maintaining
a learning item repository, wherein the learning item repository
includes both: a) a plurality of learning items, and b) learning
item metadata describing one or more learning items of said
plurality of learning items; maintaining a learning hierarchy,
wherein the learning hierarchy represents a hierarchy of related
learning goals, and each node in the learning hierarchy is
associated with corresponding goal metadata that describes a
learning goal; receiving a first request for learning items to
assist a first user to achieve the learning goal associated with a
first node in the learning hierarchy; wherein the first node is
associated with first goal metadata; in response to receiving the
first request, automatically generating a first query, wherein the
first query includes arguments that are based at least in part on
the first goal metadata; causing the first query to be executed
against the learning item repository to identify learning items to
assist the first user to achieve the learning goal associated with
the first node; providing at least one learning item, identified
using the first query, to the first user; and receiving assessment
information from the first user for a learning assessment
associated with the first node.
13. The one or more non-transitory storage media of claim 12,
wherein the instructions further comprise instructions for:
receiving, a second request for learning items to assist a second
user to achieve the learning goal associated with the first node in
the learning hierarchy; in response to receiving the second
request, generating a second query that is identical to the first
query and causing the second query to be executed against the
learning item repository; receiving, from the learning item
repository, in response to the first query, a learning items
identifier that identifies a first learning item without receiving
any learning items identifier that identifies a second learning
item; receiving, from the learning item repository, in response to
the second query, a learning items identifier that identifies the
second learning item; wherein said providing said at least one
learning item comprises providing the first learning item to assist
the first user to achieve the learning goal associated with the
first node; and providing the second learning item to assist the
second user to achieve the learning goal associated with the first
node.
14. The one or more non-transitory storage media of claim 12,
wherein the instructions further comprise instructions for:
maintaining profiles for a plurality of users, wherein the profile
maintained for each of the plurality of users describes one or more
education-related attributes associated with the corresponding user
of the plurality of users; wherein the first user is a user of the
plurality of users; and wherein the first query includes one or
more arguments that are based at least in part on one or more
education-related attributes described at a profile for the first
user.
15. The one or more non-transitory storage media of claim 14,
wherein the instructions further comprise instructions for:
receiving a second request for learning items to assist a second
user, of the plurality of users, to achieve the learning goal
associated with the first node in the learning hierarchy; in
response to determining that the second student's profile is
similar to the first student's profile, generating a second query
that is identical to the first query and causing the second query
to be executed against the learning item repository; receiving,
from the learning item repository, in response to the first query,
a learning items identifier that identifies a first learning item;
receiving, from the learning item repository, in response to the
second query, a learning items identifier that identifies a second
learning item that is different from the first learning item;
wherein said providing said at least one learning item comprises
providing the first learning item to assist the first user to
achieve the learning goal associated with the first node; and
providing the second learning item to assist the second user to
achieve the learning goal associated with the first node.
16. The one or more non-transitory storage media of claim 14,
wherein the instructions further comprise instructions for:
receiving a second request for learning items to assist a second
user, of the plurality of users, to achieve the learning goal
associated with the first node in the learning hierarchy; in
response to receiving the second request, generating a second
query, wherein the second query includes one or more arguments that
are based at least in part on one or more education-related
attributes described at a profile for the second user; causing the
second query to be executed against the learning item repository;
receiving, from the learning item repository, in response to the
first query, a learning items identifier that identifies a first
learning item; receiving, from the learning item repository, in
response to the second query, a learning items identifier that
identifies a second learning item that is different from the first
learning item; wherein said providing said at least one learning
item comprises providing the first learning item to assist the
first user to achieve the learning goal associated with the first
node; and providing the second learning item to assist the second
user to achieve the learning goal associated with the first
node.
17. The one or more non-transitory storage media of claim 12,
wherein the instructions further comprise instructions for:
performing a semantic analysis on seed text that is included in the
first goal metadata, wherein the seed text includes information
about the learning goal corresponding to the first node; wherein
the first query includes one or more arguments that are based at
least in part on keywords derived from the semantic analysis.
18. The one or more non-transitory storage media of claim 12,
wherein the instructions further comprise instructions for:
performing a semantic analysis on text posted by the first user in
one or more discussion groups that are associated with educational
courses; wherein the first query includes one or more arguments
that are based at least in part on keywords derived from the
semantic analysis.
19. The one or more non-transitory storage media of claim 14,
wherein the instructions further comprise instructions for:
determining that one or more arguments in the first query do not
match learning item metadata in the learning item repository;
generating a report that identifies a plurality of arguments that
do not match learning item metadata in the learning item
repository, wherein the report identifies the one or more
arguments; wherein the arguments are ranked in the report based, at
least in part, on the number of times that the arguments have been
used in queries executed against the learning item repository.
20. The one or more non-transitory storage media of claim 17,
wherein the instructions further comprise instructions for:
determining that one or more arguments in the first query do not
match learning item metadata in the learning item repository;
generating a report that identifies a plurality of arguments that
do not match learning item metadata in the learning item
repository, wherein the report identifies the one or more
arguments; wherein the arguments are ranked in the report based, at
least in part, on the number of times that the arguments have been
used in queries executed against the learning item repository.
21. The one or more non-transitory storage media of claim 18,
wherein the instructions further comprise instructions for:
determining that one or more arguments in the first query do not
match learning item metadata in the learning item repository;
generating a report that identifies a plurality of arguments that
do not match learning item metadata in the learning item
repository, wherein the report identifies the one or more
arguments; wherein the arguments are ranked in the report based, at
least in part, on the number of times that the arguments have been
used in queries executed against the learning item repository.
22. The one or more non-transitory storage media of claim 12
wherein the instructions further comprise instructions for:
analyzing results produced by providing the at least one learning
item to assist the first user to achieve the learning goal
associated with the first node; and determining learning items to
assist subsequent users to achieve the learning goal associated
with the first node based, at least in part, on the results.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a Continuation of Non-Provisional
application Ser. No. 13/271,328 filed Oct. 12, 2011 and is related
to the following applications: (1) application Ser. No. 13/007,166,
filed on Jan. 14, 2011, the entire contents of which is hereby
incorporated by reference as if fully set forth herein; (2)
application Ser. No. 13/007,177, filed on Jan. 14, 2011, the entire
contents of which is hereby incorporated by reference as if fully
set forth herein; (3) application Ser. No. 13/007,147, filed on
Jan. 14, 2011, the entire contents of all of which is hereby
incorporated by reference as if fully set forth herein. The
applicant(s) hereby rescind any disclaimer of claim scope in the
parent application(s) or the prosecution history thereof and advise
the USPTO that the claims in this application may be broader than
any claim in the parent application(s).
FIELD OF THE INVENTION
[0002] The present invention relates to learning management
systems. In particular, the present invention relates to dynamic
course skeletons for adaptive learning.
BACKGROUND
[0003] Intelligent learning systems are systems that attempt to
assist students in achieving specific learning goals. To date,
these systems have mainly used a computerized teaching approach
that minors the approach taken in brick-and-mortar classrooms. Each
student is presented with the same lecture, content, and
assessment, regardless of learning style, intelligence, or
cognitive characteristics.
[0004] Advances in intelligent learning systems have been limited,
and are usually applied to logic-based topics such as mathematics,
where the content that is served to each student is based on a
pre-determined course-specific decision tree that is hard-coded
into the system. If a first student and a second student each fail
the same assessment by missing the same questions, both students
will be presented with the same remedial materials as dictated by
the decision tree.
[0005] Online courses are examples of "containers" that may employ
adaptive learning technology to achieve a specific goal. The
container for each course is designed to include all of the
information required to achieve success within the course. For
example, the content required for achieving the goals of a
particular Mathematics course would be directly associated with the
container of the Mathematics course. The container for each course
also includes the logic that determines which content (in that
finite set of content that is directly associated with the
container) should be delivered to the student. By performing in a
particular way, the student merely traverses down a pre-existing
path through the course's logical hierarchy that is hard-coded into
the course's container.
[0006] Current intelligent learning systems focus on high-level
goals, and each student is directed down the same logical path in
order to determine which content is provided to the student. For
example, an adaptive learning tool may be designed to teach a
student a course on the fundamentals of calculus. The designer of
the tool will assume that the student possesses the foundational
knowledge of mathematics required to begin the course, but since
the tool is unaware of any other attribute of the student, the tool
may provide a certain amount of "review" information as a means of
calibration. All students receive the same information, and
performance on assessments will dictate which learning item is
presented to the student next.
[0007] Current intelligent learning systems "hard-code" these
learning items to the logic used to determine the next step for the
user. For example, a student that completes "Task A" will always be
presented with the video item named "Video.sub.--23.mov" to begin
the next learning section. Students that do not achieve a
predetermined level of success with an assessment or a particular
task will always be presented with the multimedia item
"Remediation.sub.--13.swf" as a means of re-teaching the subject
matter required for that particular task.
[0008] The approaches described in this section are approaches that
could be pursued, but not necessarily approaches that have been
previously conceived or pursued. Therefore, unless otherwise
indicated, it should not be assumed that any of the approaches
described in this section qualify as prior art merely by virtue of
their inclusion in this section.
BRIEF DESCRIPTION OF THE DRAWINGS
[0009] The present invention is illustrated by way of example, and
not by way of limitation, in the figures of the accompanying
drawings and in which like reference numerals refer to similar
elements and in which:
[0010] FIG. 1 is a block diagram illustrating a learning management
platform on which an embodiment may be implemented;
[0011] FIG. 2 is a block diagram illustrating a course skeleton
structure that may be used in an embodiment; and
[0012] FIG. 3 illustrates a computer system upon which an
embodiment may be implemented.
DETAILED DESCRIPTION
[0013] In the following description, for the purposes of
explanation, numerous specific details are set forth in order to
provide a thorough understanding of the present invention. It will
be apparent, however, that the present invention may be practiced
without these specific details. In other instances, well-known
structures and devices are shown in block diagram form in order to
avoid unnecessarily obscuring the present invention.
General Overview
[0014] It is common for students to take courses that provide too
much information that the student already knows. On the other hand,
it is also common for a student to complete a course in a sequence,
only to be left behind in the next course in the sequence because
the next course assumes knowledge that was not sufficiently covered
in the earlier course. Students may also be required to take
certain courses to complete a degree program, even if only a small
portion of the skills learned in those courses pertain to the
student's degree program. One way to ensure that students get the
most out of their educational experiences is to personalize those
educational experiences. By using an adaptive learning engine that
employs the techniques described hereafter, students can learn
through updated learning items that best fit their individual
learning needs.
[0015] A "learning item" may be any type of item that can be used
to assist in the achievement of a learning goal. For example, a
learning item may be content, such as text, video, or an audio
podcast. In addition, a learning item may be a learning activity or
application, such as a flashcard app, a cognitive tutor app, etc.
The techniques described herein are not limited to any particular
types of learning items.
[0016] In an embodiment, a course "skeleton" is associated with a
course of instruction. The course skeleton is made up of a
hierarchy of goals, with each goal being associated with goal
metadata that describes the goal and provides information about the
type of content that may be used to achieve the goal. The course
skeleton is used to provide a more dynamic adaptive learning
experience. The nodes of the course skeleton are associated with
metadata about the corresponding goal. A learning item repository
stores learning items and learning item metadata describing the
learning items. Instead of directly mapping these learning items to
the nodes or goals, the goal metadata is used to dynamically
generate a query that can be executed against the learning item
repository in order to retrieve learning items for the student.
[0017] In an embodiment, learner-specific information is also used
to generate the query that determines which content will be
presented to the student. For example, student profile information
that describes the student's interests, academic history, location
information, or type of device the student is using may be used to
generate the query.
Structural Overview
[0018] FIG. 1 is a block diagram illustrating an adaptive learning
engine, according to an embodiment of the invention. Adaptive
learning engine 100 generally represents a set of one or more
computer programs, and associated resources, configured to manage
educational data and information about students, provide learning
items to students, and use information gathered from analyzing
student interaction with the system to increase the effectiveness
of future learning items. Adaptive learning engine 100 facilitates
the delivery of learning items based on student attributes.
Adaptive learning engine 100 includes logic that facilitates
communication between its various components.
[0019] In the illustrated embodiment, adaptive learning engine 100
includes a processor 190, learning analysis logic 130 and
presentation logic 140. Adaptive learning engine 100 may also
include or be coupled with other components such as a learning
space platform, a learning items manager, a learning tools manager,
a data analysis engine, a knowledge base, a personal cognitive DNA
manager, and a skills hierarchy manager (not shown). Each of these
components shall be described in greater detail hereafter.
[0020] Referring to FIG. 1, an input 112 is received by the
adaptive learning engine 100 at an input/output (IO) interface 110.
IO interface 110 may be a network interface such as an
Ethernet-based interface. Input 112 may include requests from
students such as learning item requests. IO logic 120 is coupled to
IO interface 110. IO logic is configured to parse and distribute
incoming data and prepare output 114 for sending via IO interface
110, according to an embodiment. IO logic 120 may implement one or
more communications protocols. IO logic 120 is coupled to
presentation logic 140, in an embodiment. Presentation logic 140
determines the method of delivery of output 114. For example,
output 114 may include a multimedia file, or it may include only a
link to the multimedia file in an embodiment.
Learning Analysis Logic
[0021] Learning analysis logic 130 generally represents a
decision-making unit that interacts with all other components of
adaptive learning engine 100 and uses information gathered from
these components to provide content that is relevant to each
individual student based on information gathered from other
elements of the adaptive learning engine 100, such as a knowledge
base.
[0022] Unlike conventional "adaptive learning" systems, learning
analysis logic 130 does not merely on traverse a predetermined path
that is based only on the student's degree program or class.
Rather, learning analysis logic 130 takes into consideration
attributes of each student, and dynamically generates queries to be
executed against a database or learning item repository. Queries
generated for the purpose of learning item retrieval may be based
on many factors, which are described hereinafter. The queries may
be in any form that takes these attributes into consideration. In
one embodiment, learning item retrieval queries are formed using a
query language such as Structured Query Language (SQL), and include
the desired attributes or arguments as predicates in the query. For
example, an example query may be as follows:
SELECT*FROM CONTENT WHERE GOAL=`ECO.sub.--340.sub.--2.sub.--5`AND
TYPE=`FLASH_VIDEO`
[0023] While SQL is used in the example above, various other types
of query mechanisms may be used. For example, depending on the
nature of the repository that is used to store the learning items,
learning item retrieval queries may be semantic queries, such as
those that use SPARQL (Simple Protocol and RDF Query Language) and
RDF for representing the data elements and their relationships.
[0024] As students perform activities and take an assessments
associated with recommendations, data associated with each student
is updated to reflect the types of activities that work well for
each student, the strengths and weaknesses of the student, and
other useful education-related attributes of the students. As used
herein, the term "education-related attributes" refers to any
attributes that relate to a student's learning history, goals or
abilities. Education-related attributes may include non-transient
attributes, such as a student's prior classes and grades, and
transient attributes such as a student's current mood. Any
education-related data may be used for generating queries for
content.
[0025] As more data is collected, patterns emerge, and learning
analysis logic 130 can generate queries to retrieve individualized
learning items with a high degree of confidence in the expected
success of each student. For example, it may become clear that a
particular student performs poorly when he tries to learn skills
using only audio content, even though that student has expressed a
preference for audio content. In this case, learning analysis logic
130 may subsequently require content other than audio content to be
delivered to the user, instead of or in addition to audio
content.
The Learning Items Manager
[0026] The learning items manager stores and manages learning
items. Learning items includes any items that may be used to
achieve a goal. Examples of learning items include text, audio
files such as mp3 files, video files such as QuickTime files,
interactive flash movies, or any other type of multimedia
content.
[0027] In an embodiment, learning items manager includes a learning
item repository and a content categorization system for storing and
organizing learning items. The learning item repository stores
content in non-volatile memory, such as a shared hard disk system
or a database system such as database 150. Learning items may be
stored in a database table, such as the learning items table 170.
The learning item categorization system provides content indexing
services, along with an interface for creating and associating
metadata with learning items stored in the learning item
repository.
[0028] Learning items may be associated with metadata that
describes the learning items. This metadata can be compared against
the selection criteria specified in queries generated by learning
analysis logic 130 to return learning items that are appropriate
for helping students to achieve particular goals. For example,
metadata associated with a video may include a title attribute that
includes the text "how to factor polynomials." Other attributes may
include a general category, such as "math" and a content type, such
as "QuickTime video. Metadata may be embedded within the learning
items being described by the metadata, may be in a separate Meta
file such as an XML file that is associated with the learning items
being described, or may be stored in a database with an association
to the learning items being described. In an embodiment, learning
items are "tagged" with metadata describing the learning items,
such as keywords, skills, associated learning objects, the
characteristics of learners (e.g. limited prior knowledge) that may
benefit from the instructional strategies employed by the learning
items (e.g. worked examples), the type of learning items (e.g.
video or text), and statistical information regarding the learning
item usage. For example, the query
SELECT*FROM CONTENT WHERE GOAL=`ECO.sub.--340.sub.--2.sub.--5`AND
TYPE=`FLASH_VIDEO`
will look for learning items that are tagged with the goal
identifier "ECO.sub.--340.sub.--2.sub.--5" and the type identifier
"FLASH_VIDEO." The learning space platform and learning analysis
logic 130 may be authorized to add, remove, or alter tags
associated with learning items via the learning items manager.
[0029] Learning items manager also includes learning item delivery
logic configured to manage requests for learning items that are
stored in the learning item repository. For example, some learning
items may be streamed in order to preserve bandwidth. In some
cases, it makes sense to deliver all required learning items for a
particular course at the same time, such as when the student
expects to be without Internet access for an extended period of
time. Thus, learning items manager may be directed by learning
analysis logic 130 to deliver learning items in a particular way,
depending on attributes of the student. In addition, certain
content formats may not be supported by certain devices. For
example, learning item delivery logic may choose or even change the
format of the learning items being delivered if the device
requesting the learning items does not support a particular format,
such as the FLASH format.
The Knowledge Base
[0030] The knowledge base may be implemented using database 150.
The knowledge base manages persistent data and persistently stores
snapshots of certain transient data. For example, student
categorization information, student study group information,
cognitive DNA relationship information, and persistent student
profile information may all be stored in the knowledge base.
Although this data is persistently stored, the data may change as
required by other elements of the adaptive learning engine 100. For
example, data analysis engine may provide a report to learning
analysis logic 130 that causes learning analysis logic 130 to
indicate to the knowledge base, based on the report, that student
categorization information for a particular student should be
changed. The knowledge base will then alter the persistent data to
reflect the indicated change. Various mechanisms may be used to
implement the knowledge base. For example, data for the knowledge
base may be stored as triples in a triplestore. Instead of or in
addition to using a triplestore, a relational database management
system may be used to facilitate the storage and retrieval of data.
The knowledge base is communicatively coupled to learning analysis
logic 130, and provides learning analysis logic 130 with student
information to assist in creating an individualized learning
recommendation. All data stored in the knowledge base, such as user
data 180, can be used to form queries that are used to retrieve
individualized learning items for students.
The Personal Cognitive Dna Manager
[0031] The personal cognitive DNA manager manages data associated
with students, and may be implemented using database 150. A
collection of data associated with a student is known as personal
cognitive DNA (PDNA), and may be stored in user data 180. The
portions of a PDNA that are stored at the personal cognitive DNA
manager include transient data, while persistent portions of the
PDNA are be stored in the knowledge base in an embodiment. PDNA
data stored in the personal cognitive DNA manager may also include
references to persistent data stored in the knowledge base. The
personal cognitive DNA manager may include a database management
system, and may manage PDNA for all students. In an embodiment,
instances of the personal cognitive DNA manager may reside on the
client computing devices of students, and may be part of a learning
space platform. In this embodiment, PDNA for users of the client
computing device or the associated learning space platform may be
stored in volatile or non-volatile memory. A combination of these
embodiments may also be used, where a portion of the personal
cognitive DNA manager resides on a client while another portion
resides on one or more servers. In an embodiment, the personal
cognitive DNA manager is communicatively coupled to learning
analysis logic 130, and provides learning analysis logic 130 with
transitory student information to assist in creating an
individualized query for retrieving relevant learning items from
the learning items manager. PDNA and all other user-related
information can be used to generate individualized queries for
retrieving learning items. For example, a user's location, local
time, client device type, or client operating system may be
provided to learning analysis logic 130 to assist in determining
what type of learning items are appropriate for the environment and
device. In an embodiment, the personal cognitive DNA manager and
the knowledge base may be combined.
Learning Goal Metadata
[0032] Learning goal metadata can be associated with a goal, and is
used to describe the corresponding goal and provide information
related to the corresponding goal. A goal generally represents an
ability, skill, or knowledge that a student is meant to acquire.
For example, a skill may represent the ability to perform addition
of single-digit numbers, form a complete sentence using a
particular language, or type a certain number of words-per-minute.
There is no limit to the complexity or simplicity of goals that may
be associated with a course skeleton and described in goal
metadata. As shall be described in greater detail hereafter, goal
metadata may include, by way of example and not by way of
limitation, assessments, remediation data, skills hierarchy data,
and other data describing the goal.
[0033] Content may also be included in goal metadata. In an
embodiment, content that is known to teach or facilitate the
achievement of a particular goal is included in goal metadata. In
contrast to less dynamic adaptive learning systems, the content
that is directly associated with the goal is not necessarily
delivered to students. Instead, this content may simply be
semantically analyzed to determine keywords to use in queries that
are executed against a learning items manager or repository. For
example, a well-known essay describing a particular type of poem
may be associated with the goal of teach about that type of poem.
Rather than present the essay to students that need to learn about
that type of poem, keywords can be extracted from the essay and
used as selection criteria to find other learning items to present
to the student to teach about that type of poem. By separating the
learning items selection process from the course skeleton, updated
learning items can be selected for a user, and course developers
are not required to "hard-code" the latest learning items to each
individual goal.
Course Skeleton
[0034] Recommendations generated by learning analysis logic 130 are
based in part on a course skeleton in an embodiment. FIG. 2 is a
block diagram illustrating a course skeleton structure 200 that may
be used in an embodiment. Course skeleton 200 includes goals
201-210. In an embodiment, data defining a course skeleton is
stored in the course skeleton data table 160 in database 150.
Course skeleton data may be stored in any format that preserves the
hierarchical nature of the course skeleton. For example, a course
skeleton may be stored in a relational database system and/or in
XML format. For an example course skeleton in XML format, see the
code listing submitted concurrently herewith.
[0035] A course skeleton can be created in a variety of ways, and
the techniques described herein are not limited to any particular
way of creating a course skeleton. For example, course skeletons
can be created manually, where Subject Matter Experts (SME) and
Instructional designers (ID) interact using a collaborative online
application. Starting from a set of high level objectives and
required material in a course, SMEs and IDs can engage in Socratic
dialogue, or use a question template to break down the objectives
into finer grained objectives. Alternatively, course skeletons can
be created using an automated process where Natural Language
Processing (NLP) is used to process the required reading material
to discover finer grained objectives. Course skeletons can also be
created using a mixed process, where the SME and ID can use some
parts of the automated process to validate and quality control
their work, or even use it to get suggestions.
[0036] A course skeleton may represent a group of goals for a
portion of a course, an entire course, a field of study, a
certificate program, a degree program, or an individual competency
map that represents the skills acquired by a student, or any other
education related structure. Course skeletons may include goal
metadata that describes a wide variety of goals and various
learning theories, content types, and keywords used to find
learning items to facilitate the achievement of those goals.
[0037] Links between goals in the hierarchy represent the
relationship between those goals. For example, a link between two
learning goals may mean that the subject matter covered in one of
the learning goals requires the achievement of the other goal. A
different link may indicate that one learning goal is a
prerequisite of the other.
[0038] Basic goals need to be attained in order to begin achieving
more advanced goals. According to course skeleton 200 for example,
the goal associated with node 205 must be acquired before
attempting to achieve the goal associated with node 203. In this
way, the course skeleton is hierarchical. However, a
non-hierarchical approach may be used in an embodiment. For
example, a non-hierarchical directed-graph approach may be used in
an embodiment that is based on a different learning model.
The Course Skeleton Manager
[0039] The course skeleton manager manages goal hierarchy
information that describes the relationships between goals. For
example, a student may be required to learn how to add and subtract
before he learns how to multiply and divide. A complete course
skeleton may be made up of interconnected goals that represent all
of the goals required to complete a traditional educational course.
The nodes in the hierarchy correspond to goals and goal metadata.
Since a single node may be considered a prerequisite for many other
nodes, and many nodes may be prerequisites for a single node, the
hierarchy may be multidimensional.
[0040] The course skeleton manager manages the relationships
between nodes that represent learning goals. For example, a
relational database may be used to keep track of the node
dependency information. The course skeleton manager stores goal
metadata data that describes skills, remediation information,
assessment information, hierarchy association information, and
other metadata associated with learning goals. The course skeleton
manager interfaces with learning analysis logic 130 and provides
learning analysis logic 130 with course skeleton data to assist
learning analysis logic 130 in dynamically generating learning item
request queries that are specific to each goal.
Learning Theories, Models, and Strategies
[0041] Learning theories address how people learn by providing a
paradigm through which to view a learning objective. Although
theories are abundant, three well-understood theories are
behaviorism, constructivism, and cognitivism. Behaviorism is a view
that is based on the assumption that people learn based on
stimulation. Positive or negative reinforcement shapes the behavior
of the student. Constructivism is a view that assumes that the
student learns as an experience, and that the learner actually
constructs their own representations of reality. Cognitivism is a
view that assumes that people learn as they mentally process
information in a manner that coincides with their cognitive
architecture, and do not merely react to stimulation.
[0042] Learning models are created based on learning theories, and
are meant to operationalize one or more learning theories.
Different instructional strategies may be used, depending on the
model to be implemented. Instructional strategies might vary
content sequencing, instructional technique (direct, indirect),
type of content presentation (lecture, case study, group
discussion, etc.), level of collaboration (individual, pairs, small
group), amount of practice, type of feedback (peer, instructor) and
so forth. Learning items and tools that facilitate the delivery of
learning items can be used to implement instructional strategies.
Examples of learning items include text, video, audio, and games.
Examples of tools include video players, browser plug-ins, e-book
readers, shared whiteboard systems, and chat systems. Many other
examples of learning items and tools exist.
[0043] The theories and models together have been created to
classify, adapt and guide the process of educating a student,
taking into consideration the characteristics of the student that
are pertinent for learning. To date, learning models have been
implemented in application "silos" where each application
implemented a specific model (e.g. intelligent tutors), catering to
very specific topics that suited the model's flat hierarchy based
algorithms, typically for logical subjects such as mathematics.
These types of applications have limited use in broad-based
education, such as a 4-year degree program or inter-disciplinary
subjects such as Economics, and Marketing.
Personal Cognitive Dna
[0044] In an embodiment, learning models and theories may be
operationalized using each student's PDNA to generate learning item
request queries for students, which are executed against a learning
items manager or repository. As the information associated with a
particular student changes, the queries generated on behalf of that
student will change to reflect the latest understanding of that
student's learning requirements, preferences, and goals.
[0045] Although PDNA is referred to herein as "personal cognitive
DNA," this label does not indicate that PDNA data collection and
usage is limited to embodiments that are based upon cognitive
models. PDNA data includes information about a student's cognitive
strengths and weaknesses (as well as preferences) that are provided
explicitly by the student or inferred by the system as the student
interacts with the system and the outcomes are measured.
[0046] PDNA may be used in any embodiment, independent of any
particular learning model. PDNA data is a collection of data
associated with a student. Transient profile data may be stored in
the personal cognitive DNA manager, while persistent profile data
may be stored in the knowledge base. PDNA data stored in the
personal cognitive DNA manager may include references to persistent
data directly or indirectly associated with the student that is
stored in the knowledge base.
[0047] In order to provide the right experiences to the student, in
addition to the proper tools and models, the system collects and
maintains a dynamically updating rich data layer to support
predictive education models in an embodiment. A rich data layer
generally refers to information that is gathered and linked to
create intelligence that may be used to inform learning analysis
logic 130, which uses this information to generate learning item
request queries. In one embodiment, the rich data layer is
dynamically updating in that the data being collected changes over
time, and data that does not conform to the changes becomes
incorrect. For example, as a student achieves a high degree of
proficiency with a particular skill, data that suggests that the
student needs to become proficient with the skill becomes outdated
and incorrect. Thus, the dynamic data layer must keep up with the
current information available for each student.
[0048] Each student using adaptive learning engine 100 is
associated with PDNA for that student. When a student is new to the
system, the PDNA for that student may contain minimal information,
such as demographic information, a student's declared major,
self-proclaimed learning preferences, and imported transcript data
such as grades and coursework done at other institutions. However,
as the student begins using the adaptive learning engine 100, vast
amounts of data may be collected and analyzed by the data analysis
engine, resulting in new PDNA information that describes how the
student learns, what level the student has achieved in a particular
course, whether the student understands a particular concept or
possesses a particular skill, the pace at which the student learns,
or even the time of day the student is most likely to correctly
answer a question.
[0049] Many of these student attributes change over time, but may
still be considered persistent based on the frequency of change.
For example, a student may initially have low reading comprehension
ability and learn material more efficiently when listening to an
audio recording, but may later learn more efficiently by reading
text-based material. Other student attributes may be more transient
in nature. For example, the PDNA may include data that identifies
the student's current location, what client computing device they
are using (e.g. iPhone, laptop, or netbook), what operating system
they are using, whether or not their web browser supports the Flash
plug-in, or whether the student sets his status as "tired."
[0050] It may be the case that a particular student performs
differently depending on environmental factors, while another
student may be capable of learning regardless of the environment.
For example, one student may be able to study on a commuter train
while another may not. One student may be capable of learning via
an audio program while another requires text information or video.
In addition, certain tasks may be reserved for particular times or
places in order to calibrate the system. For example, the system
may be configured to only offer assessments when a student's
transient PDNA data shows that the time in the student's current
time zone is between certain daylight hours.
[0051] Metrics may be assigned to particular attributes in each
student's PDNA. For example, metrics may describe expected or
historical success with different learning characteristics. These
metrics may help learning analysis logic 130 determine whether the
student is successful when participating in collaborative learning
exercises, or whether the student would benefit more from
self-study. A student may have a metric of "7" for the attribute
"performs well with individual work" and a metric of "2" for the
"performs well with collaborative work" attribute. Higher scores
are not necessarily the only factor used in determining the
learning strategy for the student, however. For example, the
learning track that the student is on may actually require that the
student develop collaboration skills Therefore, the learning
analysis logic 130 may generate queries that request learning items
for the student that will bolster his ability to learn
collaboratively. In other words, the system will provide learning
items that teach the student the underlying skills required to
allow the student to become successful at collaborative work.
[0052] PDNA for a particular student may be analyzed and compared
to PDNA of other students in order to generate more accurate
learning item request queries. This feature is especially useful
when limited information is available about a student, but enough
is known about the student to associate the student with a
particular group of students for which more information is
available. For example, learning analysis logic 130 may analyze the
PDNA information for all students in the system, over time, to
predict various things, including: what method of learning is best
for each student, which track will yield the highest chance of
success for a given student in a particular program, which programs
the student would be successful in, which courses the student may
be expected to struggle with, and even which career would best suit
the student.
Dna Fingerprints
[0053] An analysis of hundreds, thousands, or even larger numbers
PDNA data sets yields statistically valid cognitive DNA
"fingerprints" that may be used for generating learning item
request queries in an embodiment. A DNA fingerprint is based on
aggregate PDNA data. Generally, a DNA fingerprint is made by
selecting a set of PDNA data having one or more PDNA attributes in
common and generating a single profile that is representative of
the entire set.
[0054] For example, a DNA fingerprint may be generated for students
that have recently completed a learning object that teaches the
calculus skill of taking the derivative of a second degree
polynomial. The recency of the completion of the learning object is
determined based on the time that the data was stored, so snapshots
that were taken at checkpoints occurring immediately after students
completed the learning object will qualify for inclusion in the set
of PDNA data considered for use in the creation of the DNA
fingerprint.
[0055] Each attribute in the PDNA data considered in the creation
of the DNA fingerprint may be aggregated, averaged, or otherwise
considered, resulting in a fingerprint of that attribute. For
example, if the average value of the attribute "abstract learning
ability" is "80" in the PDNA data in the set, then the DNA
fingerprint may inherit this value for the same attribute. Any
method of considering or combining PDNA data to generate DNA
fingerprint data may be used. For example, the lowest value, the
median value, or a sum of the values may be used as the fingerprint
value for a particular attribute. Some attributes, especially those
with very little correlation to the common PDNA attribute, may not
be assigned a DNA fingerprint value, or may be assigned a NULL
value, indicating that conclusions about that attribute are
statistically invalid for that set of PDNA. Once each attribute has
been considered for the set, then the resulting values for each
attribute are stored in one or more records as a DNA fingerprint
for that set of PDNA data.
Assessments
[0056] In one embodiment, assessments designed to determine whether
a student has achieved a goal are associated with the corresponding
learning metadata for that goal. A student uses assessments to
demonstrate the skills and knowledge associated with the learning
goal. More than one assessment may be included in the learning
metadata for a particular goal. Learners may be required to
successfully complete all, or a subset, of the assessments in order
to receive an advancement recommendation from learning analysis
logic 130. An advancement recommendation is essentially a
determination that a student is ready to move on to a different
goal because a perquisite goal has been achieved by the
student.
[0057] Performance on specific assessments may be analyzed to
determine the level, amount or type of learning items a student
needs next. For example, a student that performs poorly on an
assessment may require remedial learning items that cover a general
overview of the subject. Learning analysis logic 130 may form a
learning item request query, based on this determination, which
includes the predicate: LEVEL="GENERAL". The execution of this
query against the learning item management system will result in
the delivery of learning items that have been tagged as the
"general" level.
Selecting Learning Items Using Dynamically Generated Queries
[0058] In an embodiment, the learning item repository includes
learning items, such as multimedia, audio, text, and video files.
In addition, the learning item repository includes learning item
metadata that describes the learning items. For example, the
learning item metadata may be stored in a database with a
relational link to the learning items described by the metadata. A
logical hierarchy such as course skeleton 200 is stored in the
course skeleton data table 160 in database 150. The course skeleton
is representative of a course of instruction, and each node in the
hierarchy represents a learning goal. Corresponding goal metadata
that describes each learning goal is associated with each node in
the course skeleton. A first user that is working on a goal
associated with a particular node in the course skeleton makes a
request for learning items to adaptive learning engine 100.
Learning analysis logic 130 generates a query to be executed
against the learning item repository using goal metadata associated
with the learning goal that the student is attempting to achieve. A
learning item or a reference to a learning item from learning items
table 170 is returned, and presentation logic 140 presents the
learning item to the student.
[0059] A second user requests learning items from an adaptive
learning engine in an embodiment. The second user is attempting to
achieve the same goal as the first user, and therefore an identical
query is generated for the second user. However, when the query is
executed for the second user, a learning item is returned that is
different than the learning item that was returned for the first
user. In an embodiment, additional learning items are added to the
learning item repository between the execution of the query for the
first user and the execution of the query for the second user.
These additional learning items are determined to be more relevant
to the query, and therefore the updated learning items are
delivered to the second user.
[0060] In an embodiment, profiles such as PDNA profiles are
maintained for users. Queries are generated using arguments (such
as predicates) that are based on education-related attributes that
are associated with the users. For example, a query is generated to
request video learning items that last no longer than 20 minutes
for a user that has a low attention span attribute stored in his
PDNA profile. In an embodiment, learning analysis logic determines
that a first student has a profile that is similar to the profile
of a second student, and therefore generates the same query for
both students. However, other factors may cause the students to
receive different learning items, as discussed above.
[0061] In an embodiment, goal metadata is semantically analyzed to
determine keywords that should be used in a query to request
learning items. In another embodiment, a semantic analysis may be
performed on user generated data such as forum postings in order to
determine topics of interest to the user. One or more keywords
associated with the topics of interest are then used to generate a
learning item request query.
[0062] In an embodiment, one or more arguments used in a query are
identified by the learning items manager as failing to match
learning items in the learning item repository. Learning items
manager generates a report that identifies the failing arguments.
These arguments correspond to attributes that would possibly
further enrich the learning experience of one or more users.
Therefore, learning items having these attributes may be desirable.
The report ranks these attributes from the most to least desirable
in an embodiment. For example, the attributes requested most
frequently or most recently may be listed at the top of the report,
while unpopular attributes are listed at the bottom.
Hardware Overview
[0063] According to one embodiment, the techniques described herein
are implemented by one or more special-purpose computing devices.
The special-purpose computing devices may be hard-wired to perform
the techniques, or may include digital electronic devices such as
one or more application-specific integrated circuits (ASICs) or
field programmable gate arrays (FPGAs) that are persistently
programmed to perform the techniques, or may include one or more
general purpose hardware processors programmed to perform the
techniques pursuant to program instructions in firmware, memory,
other storage, or a combination. Such special-purpose computing
devices may also combine custom hard-wired logic, ASICs, or FPGAs
with custom programming to accomplish the techniques. The
special-purpose computing devices may be desktop computer systems,
portable computer systems, handheld devices, networking devices or
any other device that incorporates hard-wired and/or program logic
to implement the techniques.
[0064] For example, FIG. 3 is a block diagram that illustrates a
computer system 300 upon which an embodiment of the invention may
be implemented. Computer system 300 includes a bus 302 or other
communication mechanism for communicating information, and a
hardware processor 304 coupled with bus 302 for processing
information. Hardware processor 304 may be, for example, a general
purpose microprocessor.
[0065] Computer system 300 also includes a main memory 306, such as
a random access memory (RAM) or other dynamic storage device,
coupled to bus 302 for storing information and instructions to be
executed by processor 304. Main memory 306 also may be used for
storing temporary variables or other intermediate information
during execution of instructions to be executed by processor 304.
Such instructions, when stored in non-transitory storage media
accessible to processor 304, render computer system 300 into a
special-purpose machine that is customized to perform the
operations specified in the instructions.
[0066] Computer system 300 further includes a read only memory
(ROM) 308 or other static storage device coupled to bus 302 for
storing static information and instructions for processor 304. A
storage device 310, such as a magnetic disk or optical disk, is
provided and coupled to bus 302 for storing information and
instructions.
[0067] Computer system 300 may be coupled via bus 302 to a display
312, such as a cathode ray tube (CRT), for displaying information
to a computer user. An input device 314, including alphanumeric and
other keys, is coupled to bus 302 for communicating information and
command selections to processor 304. Another type of user input
device is cursor control 316, such as a mouse, a trackball, or
cursor direction keys for communicating direction information and
command selections to processor 304 and for controlling cursor
movement on display 312. This input device typically has two
degrees of freedom in two axes, a first axis (e.g., x) and a second
axis (e.g., y), that allows the device to specify positions in a
plane.
[0068] Computer system 300 may implement the techniques described
herein using customized hard-wired logic, one or more ASICs or
FPGAs, firmware and/or program logic which in combination with the
computer system causes or programs computer system 300 to be a
special-purpose machine. According to one embodiment, the
techniques herein are performed by computer system 300 in response
to processor 304 executing one or more sequences of one or more
instructions contained in main memory 306. Such instructions may be
read into main memory 306 from another storage medium, such as
storage device 310. Execution of the sequences of instructions
contained in main memory 306 causes processor 304 to perform the
process steps described herein. In alternative embodiments,
hard-wired circuitry may be used in place of or in combination with
software instructions.
[0069] The term "storage media" as used herein refers to any
non-transitory media that store data and/or instructions that cause
a machine to operation in a specific fashion. Such storage media
may comprise non-volatile media and/or volatile media. Non-volatile
media includes, for example, optical or magnetic disks, such as
storage device 310. Volatile media includes dynamic memory, such as
main memory 306. Common forms of storage media include, for
example, a floppy disk, a flexible disk, hard disk, solid state
drive, magnetic tape, or any other magnetic data storage medium, a
CD-ROM, any other optical data storage medium, any physical medium
with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM,
NVRAM, any other memory chip or cartridge.
[0070] Storage media is distinct from but may be used in
conjunction with transmission media. Transmission media
participates in transferring information between storage media. For
example, transmission media includes coaxial cables, copper wire
and fiber optics, including the wires that comprise bus 302.
Transmission media can also take the form of acoustic or light
waves, such as those generated during radio-wave and infra-red data
communications.
[0071] Various forms of media may be involved in carrying one or
more sequences of one or more instructions to processor 304 for
execution. For example, the instructions may initially be carried
on a magnetic disk or solid state drive of a remote computer. The
remote computer can load the instructions into its dynamic memory
and send the instructions over a telephone line using a modem. A
modem local to computer system 300 can receive the data on the
telephone line and use an infra-red transmitter to convert the data
to an infra-red signal. An infra-red detector can receive the data
carried in the infra-red signal and appropriate circuitry can place
the data on bus 302. Bus 302 carries the data to main memory 306,
from which processor 304 retrieves and executes the instructions.
The instructions received by main memory 306 may optionally be
stored on storage device 310 either before or after execution by
processor 304.
[0072] Computer system 300 also includes a communication interface
318 coupled to bus 302. Communication interface 318 provides a
two-way data communication coupling to a network link 320 that is
connected to a local network 322. For example, communication
interface 318 may be an integrated services digital network (ISDN)
card, cable modem, satellite modem, or a modem to provide a data
communication connection to a corresponding type of telephone line.
As another example, communication interface 318 may be a local area
network (LAN) card to provide a data communication connection to a
compatible LAN. Wireless links may also be implemented. In any such
implementation, communication interface 318 sends and receives
electrical, electromagnetic or optical signals that carry digital
data streams representing various types of information.
[0073] Network link 320 typically provides data communication
through one or more networks to other data devices. For example,
network link 320 may provide a connection through local network 322
to a host computer 324 or to data equipment operated by an Internet
Service Provider (ISP) 326. ISP 326 in turn provides data
communication services through the world wide packet data
communication network now commonly referred to as the "Internet"
328. Local network 322 and Internet 328 both use electrical,
electromagnetic or optical signals that carry digital data streams.
The signals through the various networks and the signals on network
link 320 and through communication interface 318, which carry the
digital data to and from computer system 300, are example forms of
transmission media.
[0074] Computer system 300 can send messages and receive data,
including program code, through the network(s), network link 320
and communication interface 318. In the Internet example, a server
330 might transmit a requested code for an application program
through Internet 328, ISP 326, local network 322 and communication
interface 318.
[0075] The received code may be executed by processor 304 as it is
received, and/or stored in storage device 310, or other
non-volatile storage for later execution.
[0076] In the foregoing specification, embodiments of the invention
have been described with reference to numerous specific details
that may vary from implementation to implementation. The
specification and drawings are, accordingly, to be regarded in an
illustrative rather than a restrictive sense. The sole and
exclusive indicator of the scope of the invention, and what is
intended by the applicants to be the scope of the invention, is the
literal and equivalent scope of the set of claims that issue from
this application, in the specific form in which such claims issue,
including any subsequent correction.
* * * * *