![]() |
1EdTech Simple Sequencing Best Practice and Implementation Guide Version 1.0 Final Specification |
Copyright © 2003 1EdTech Consortium, Inc. All Rights Reserved.
The 1EdTech Logo is a trademark of 1EdTech Consortium, Inc.
Document Name: 1EdTech Simple Sequencing Best Practice and Implementation Guide
Revision: 03 March 2003
Table of Contents
1. Introduction
1.1 Overview
1.2 Scope and Context
1.3 Structure of this Document
1.4 Nomenclature
1.5 References
2. Relationship to Other Specifications
2.1 1EdTech Specifications
2.1.1 1EdTech Content Packaging
2.1.2 1EdTech Question and Test Interoperability
2.1.3 1EdTech Reusable Definition of Competency or Educational Objectives
2.1.4 1EdTech Learning Design
2.2 Related Specifications
2.2.1 ADL SCORM
2.3 1EdTech Specification Development Process
3. Overview of the Simple Sequencing Model
3.1 Conceptual Model
3.1.1 Scope
3.1.2 Learning Activity
3.1.3 Activity Tree
3.1.4 Activity Resources
3.1.5 Activity Clusters
3.1.6 Navigation Control Modes
3.1.7 Rule-Based Sequencing - Conditional Rules
4. Basic Examples
4.1 Example of Sequencing Element
4.2 Example of Sequencing Rules
4.3 Example of Rollup Rules
4.4 Example of Limit Conditions
4.5 Example of Learning Objectives
4.6 Example of Auxiliary Resources
5. Advanced Examples
5.1 Photoshop - Remediation
5.2 Photoshop - Data Mapping
6. Interaction with Content Packaging
6.1 Content Aggregation
6.2 Activity Tree
6.3 Example of Embedded Sequencing Information
7. Runtime Implementation
7.1 The Sequencing Loop
7.1.1 Navigation Behavior
7.1.2 Exit Behavior
7.1.3 Rollup Rules
7.1.4 Sequencing Behavior
7.1.5 Delivery Behavior
8. Best Practice Recommendations
8.1 Status Information Model
8.2 Behavior Model
8.3 Data Types, Multiplicities, and Obligations
8.4 Binding of Simple Sequencing Information
8.5 Data Collection and Updating Best Practices
8.5.1 Data Updates
8.6 Rule Evaluation Best Practices
8.6.1 Order of Evaluation
8.6.2 Optimizations
8.7 Activity Tree Traversal
8.8 Handling of Tracking Data Best Practices
8.9 Numeric Tracking Data Best Practices
Appendix A - Glossary of Elements and Attributes
Appendix B - List of Example Files
Appendix C - SCORM Application Profiling of Simple Sequencing
About this Document
List of Contributors
Revision History
Index
1. Introduction
1.1 Overview
The 1EdTech Simple Sequencing Specification provides a means to represent information needed to sequence learning activities in a variety of ways. This Best Practice and Implementation Guide provides examples, clarifying explanations, implementation suggestions, and other information which may be used to develop systems which deliver sequenced content based on the Simple Sequencing Information Model [SS 03a]. Since this is the first version of this document, the practices included here represent early experience and will likely improve with future versions.
This is the first version of this specification and there is no previous history of this document, other than the drafts which preceded it. The 1EdTech Simple Sequencing Specification stands on its own and may be used to describe sequencing information which is embedded in an 1EdTech Content Packaging manifest. Alternatively, this information may be included in its own file.
1.2 Scope and Context
This document is the first version of the 1EdTech Simple Sequencing Best Practice and Implementation Guide. As such it should be used in conjunction with:
- 1EdTech Simple Sequencing Information and Behavior Model v1.0 [SS 03a];
- 1EdTech Simple Sequencing XML Binding v1.0 [SS 03b].
1.3 Structure of this Document
The structure of this document is:
1.4 Nomenclature
The following abbreviations and acronyms are used in this document:
1.5 References
The following document references are identified:
2. Relationship to Other Specifications
2.1 1EdTech Specifications
Version 1.0 of the 1EdTech Simple Sequencing Specification is made up of three documents:
- 1EdTech Simple Sequencing Information and Behavior Model - Version 1.0. This document describes the data structures that are used to provide interoperability between learning management systems which sequence learning activities;
- 1EdTech Simple Sequencing XML Binding - Version 1.0. This document describes how to encode the sequencing objects in XML and provides the corresponding XML schema;
- 1EdTech Simple Sequencing Best Practice and Implementation Guide - Version 1.0. This document (the one you are reading now) provides an overview and describes how the 1EdTech Simple Sequencing Information Model and XML Binding can be applied to specific types of interoperability scenarios.
The 1EdTech Simple Sequencing Specification is related to other 1EdTech specifications, both complete and in-progress. This specification is intended to be consistent with these other initiatives wherever possible, in order to reduce redundancy and confusion between specifications. The related specifications are:
- 1EdTech Content Package Specification - the 1EdTech Simple Sequencing Specification was developed to allow sequencing descriptions to be embedded within a 1EdTech Content Packaging manifest file using the XML namespace extension set aside for 1EdTech Simple Sequencing [CP, 01a], [CP 01b], [CP, 01c].
- 1EdTech Question and Test Interoperability Specification - the 1EdTech QTI Specification defines the structures used to support the exchange of question and test data [QTI, 02a], [QTI, 02b], [QTI, 02c].
- 1EdTech Reusable Definition of Competency or Educational Objective Specification - the 1EdTech RDCEO Specification defines structures which allow competency and educational objectives to be defined in a simple and interoperable manner [RDCEO, 02a], [RDCEO, 02b], [RDCEO, 02c].
- 1EdTech Learning Design Specification - the Learning Design Specification provides information about learning resources, learning roles, and high level sequencing [LD, 03a], [LD, 03b], [LD, 03c].
2.1.1 1EdTech Content Packaging
The 1EdTech Simple Sequencing binding defines a unique namespace for sequencing elements in such a way as to permit these elements to be embedded within an 1EdTech Content Packaging manifest file. Elements in the Simple Sequencing namespace can be considered as extending the functionality of Content Packaging to included additional sequencing information. Simple Sequencing elements are intended to be included in the <organization> element of Content Packaging, which contains items that may be recursively included to create hierarchical trees of items. This tree corresponds to the activity tree that drives sequencing.
2.1.2 1EdTech Question and Test Interoperability
Several potential areas of harmonization with QTI have been identified during the development of Simple Sequencing. These include:
- randomization, selection, and ordering
- assessments as learning activities
- using assessment to affect sequencing behavior
Simple Sequencing defines randomization of activities in a manner similar to that of QTI. Both the selection of activities from a set and/or random ordering of activities are supported. Simple sequencing does not support the filtering capability defined in QTI 1.2.
Learning activities are defined by resources associated with the leaf nodes of the Simple Sequencing activity tree or by aggregations of these nodes. Simple Sequencing does not place any restrictions on what can be sequenced in such a tree. An assessment defined by QTI could be one such activity. It is up to the learning management system (LMS) to detect assessments defined by QTI and deliver them in an appropriate manner.
QTI defines a means to associate competency, skill, mastery, or learning objectives with a question or set of questions. Simple Sequencing, in turn, defines an objective identifier and associated rules for testing mastery. More work is needed to determine how information flows between QTI and sequencing, but the mastery objective reference ID number should provide the basic link to make this happen.
2.1.3 1EdTech Reusable Definition of Competency or Educational Objectives
The 1EdTech RDCEO Specification defines a means to create and identify competency (skill, mastery, objective, etc.) objects. Among the required pieces of information for an RDCEO object definition is an identifier string which could serve as an objective reference ID number.
2.1.4 1EdTech Learning Design
The 1EdTech Learning Design Specification defines a learning activity and the various roles people take on in the learning process. It includes three levels which define resources, added conditions and properties, and finally, notification. It is intended to support a diverse set of learning styles and approaches.
The conditions and properties capability supported by Level 2 Learning Design includes the ability to sequence learning activities. This can be viewed as an alternative approach to Simple Sequencing which includes provisions for learning styles not addressed by this specification. Additional work will be required to determine how these sequencing styles might interact.
2.2 Related Specifications
2.2.1 ADL SCORM
The ADL Sharable Content Object Reference Model (SCORM)] describes a Web-based learning content aggregation model and runtime environment for learning objects. The current version of the SCORM (v1.2) is based on the 1EdTech Content Packaging Specification, 1EdTech Meta-Data Specification, an AICC data model, and a communications interface developed in conjunction with the IEEE LTSC. Simple Sequencing was developed to enhance the sequencing capabilities in SCORM and is expected to be released as SCORM v1.3. Simple Sequencing is, however, a general purpose sequencing method and may be incorporated in other applications or environments.
2.3 1EdTech Specification Development Process
The development lifecycle for an 1EdTech specification has been established as:
- Month 0 - setup of the team including identification of the team leads (for Simple Sequencing, this was Ron Ball, ADL Co-labs and Brandt Dargue, Boeing Corporation; later Brendon Towle, Thomson NETg, replaced Ron Ball), editors (for Simple Sequencing this was initially Ron Ball; Angelo Panar, ADL Co-labs; Claude Ostyn, Click2Learn; and Mark Norton, 1EdTech Consortium, Inc.), and key collaborating groups and organizations. Team and scope/requirements development;
- Month 1 - Initial internal team documents developed;
- Months 2 & 3 - Base document development and vote. Approval of the Base Documents by the Technical Board;
- Months 4 & 5 - Document improvement. Open issues are identified and solutions developed. Companies are encouraged to develop code against the base documents. Further document improvement and feedback from organizations involved in implementations;
- Month 6 - Completion of the Public Draft Specification and approval by the 1EdTech Technical Board;
- Months 7 & 8 - Accept feedback from organizations working to the Public Draft Specification. Resolve any issues raised;
- Month 9 - Completion of the Final Specification and approval by the 1EdTech Technical Board. This is the combination of the Public Draft Specification plus resolutions due to experience gained in working with it.
The term 'Base Document' is used for draft specifications that have reached a relatively high level of stability based on input from the team and the Technical Board. Base documents represent the stage in the specification process of final development and refinement. It is base documents that are presented in their final forms to the 1EdTech Technical Board for vote. If approved, the document becomes a 'Public Draft Specification' and is listed as such on the 1EdTech Public Website. If not approved, the team works through whatever adjustments and recommendations the Technical Board provides, and then resubmits the document. After three months the Public Draft Specification should be adopted as a 'Final Specification'.
After a Final Specification is released, the team develops the next scope document and seeks a charter for subsequent work. New requirements and features dropped from the previous specification constitute the scope of the next effort.
3. Overview of the Simple Sequencing Model
The Simple Sequencing model is intended to provide base level support for sequencing learning activities. It is purposely neutral with regard to models of pedagogy and the use of instructional strategies, but it describes only fairly simple behaviors in order to limit the specification and especially conformance verification to a manageable scope.
3.1 Conceptual Model
Sequencing occurs within a conceptual runtime environment which translates navigation events into navigation requests to the sequencing engine. Results of sequencing are then used to modify or create the user interface which the learner sees. This model is intended to give enough background to an implementer to understand how the Simple Sequencing Specification can fit into a complete delivery environment. The examples and practices given here are for illustration purposes only and represent only one way to realize the Simple Sequencing Model in an actual implementation.
3.1.1 Scope

The Simple Sequencing Specification addresses a small but productive segment of the entire problem space for learning content sequencing. The 1EdTech Simple Sequencing Specification relies on the concept of learning activities. A learning activity may be loosely described as an instructional event or events embedded in a content resource, or as an aggregation of activities that eventually resolve to discreet content resources with their contained instructional events.
3.1.2 Learning Activity
A Learning Activity is a pedagogically neutral unit of instruction, knowledge, assessment, etc. It can have sub-activities and may be nested to an arbitrarily deep level. Each activity may have a tracking status associated for each learner that is assigned to experience the activity. Activities can be attempted any number of times, or the number can be specified. They can be suspended, abandoned, exited normally, etc. All activities are performed within the context of a parent activity.
3.1.3 Activity Tree
The activities managed through Simple Sequencing are arranged as an activity tree (see Figure 3.2). LMS sequencing behavior is described in terms of traversing the nodes of the tree to determine which activity to deliver to the learner. Each node in this tree is an activity.
The tree is not necessarily balanced and its branches are not necessarily of equal length. There is an implicit containment hierarchy in the tree. For example, activity AB is said to be part of activity A. Activity ABCA is part of activity ABC which is part of activity AB. You can assign any conceptual label you want to those activities. For example, one could say that A is a course, AA a lesson, and AAA a step in that lesson. Another implementer may define A as a curriculum, AA as an assigned task, and AAA as a lesson.

The Simple Sequencing Specification defines the canonical traversal of the activity tree as pre-order traversal. Using the example in Figure 3.2, this means that, starting from A, the traversal would go to AA, then AAA, then AAB, then AAC, then AB, then ABA, etc. Note that the reverse pre-order traversal is not just a mirror image of the forward pre-order traversal. Using the example in Figure 3.2 again, the precedent of AC is ABCA, not AB.
The default traversal path can be modified through the association of sequencing rules created by a learning designer. Traversal is triggered by a sequencing request, which in turn is triggered by the learner through navigational events or by the delivery system itself. Sequencing rules are evaluated at runtime and can be conditional based on tracking status. Activities are always delivered one at a time and may have auxiliary resources associated with them.
Note: The activity tree can be represented as an <organization> element in the 1EdTech Content Packaging Specification. The top level activity is the <organization> itself, and each node in the tree is an <item> in the <organization>. However, the Simple Sequencing Specification itself makes no assumptions about packaging of the learning content. The same Simple Sequencing behaviors and rules defined in this specification could be used for content that is assembled and managed dynamically by an intelligent tutoring system, for example.
3.1.4 Activity Resources
A content resource may be associated with any node in the activity tree that is a leaf node. What this means is that the delivery of an activity involves the delivery of the content resource. The Simple Sequencing Specification assumes that some content resources may be able to communicate results, and others not. For example, a resource may be a "dumb" document or HTML page, or it may be a SCO as defined in SCORM. Simple Sequencing assumes that some results that map to the status data model defined in the specification; however, it does not define how to communicate the data. There can be different ways to do this, all of which would work with Simple Sequencing. Therefore, how a content resource can communicate results must be defined elsewhere.
If no content resource is associated with a leaf node, Simple Sequencing does not specify any particular behavior. This is an example of an undefined behavior, which is outside the scope of the Simple Sequencing Specification.
3.1.5 Activity Clusters
Simple Sequencing rules are associated with clusters of activity nodes. In Simple Sequencing, the term cluster refers to a single node and its immediate children. The scope of a particular rule never extends beyond the cluster. For example, many rules govern how to handle the sub-activities in a cluster, or rollup the result of the sub-activities in a cluster. Those rules are associated with the parent node in the cluster. Other rules are associated with a specific activity and do not affect its children.

3.1.6 Navigation Control Modes
Unless otherwise specified, a learner is allowed to choose any sub-activity in a cluster, but a guided flow through the cluster can also be specified. Flowing through a cluster as a learner continues from activity to activity delivers each of the sub-activities in the cluster, one after the other, as shown in Figure 3.4. The rule that governs whether such guided flow is enabled is associated with the parent node in the cluster. If the sub-activities are leaf nodes with an associated content resource, the flow of sequencing will deliver each of these content resources, one after the other.

The basic control modes that govern this behavior are choice and flow, each of which can be enabled or disabled. If choice is disabled, the user is not allowed to choose but must follow the defined flow. If flow is enabled, the user is guided through the activities according to the structure of the tree. Both can be enabled at the same time, in which case the user can choose any activity, but can also be guided. However, both cannot be disabled at the same time.
The same control modes can be specified for all the clusters in an activity tree, or they can be different for different clusters. For example, the learner may be guided by flow through a sequence of exercises within which she is free to choose different practice items.
3.1.7 Rule-Based Sequencing - Conditional Rules
Complex navigation behaviors may be achieved by assigning rules to different nodes at different levels of nesting. Figure 3.5 shows how the traversal of the tree as the user continues from activity to activity when flow is enabled can be affected by rules. In this example, specific nodes have a rule that specifies that they should be skipped under certain conditions. Each cluster is given a rule called "control mode" that enables flowing through its children, and specific nodes are given a conditional rule that states that it should be skipped.

Many of the conditional rules defined in Simple Sequencing are based on data collected by tracking the results of activities. When an activity contains sub-activities, in other words when it is the parent node in an activity cluster, the results of the sub-activities are rolled up into summary results for the cluster. This is not always desirable. For example, whether a learner succeeded in a free practice should not affect the result of a course. Rollups can be controlled in two ways. One way is by the assignment of rollup rules to a cluster, as shown in Figure 3.6. The other way is by "tagging" a particular sub-activity to specify it should not be included in rollups.

4. Basic Examples
The 1EdTech Simple Sequencing Specification defines a set of elements that describe how activities organized in an activity tree should be presented to the user. This presentation, or sequencing is defined by normative behaviors closely associated with these elements. These behaviors must be properly implemented to ensure a consistent user experience from system to system.
Any packaged collection of learning activities may contain sequencing descriptions defined by the Simple Sequencing Specification. This description is comprised of elements defined in the Simple Sequencing Information Model that are expected to be used in a manner described by the Simple Sequencing Information and Behavior Model.
The 1EdTech Content Packaging Specification describes one way to package collections of learning activities using a file called a manifest. Simple Sequencing elements may be included in this manifest in an <organization> element. If a <sequencing> element is present in the manifest, it indicates that a sequencing process will be required to deliver these activities in a consistent manner. Although the presences of a <sequencing> element indicates that sequencing information is present, parsing the manifest every time to determine this could be inefficient. One approach to making it easier to determine if sequencing is needed would be to add meta-data to the top level of the manifest. A vocabulary extension such as follows could be used:
<technical> <requirement> <type> <source>1EdTech</source> <value>1EdTech Sequencing 1.0</value> <type> </requirement> </technical>
Note that a Content Package may have multiple <organization> sections in an <organizations>. These may contain separate or alternative sequencing descriptions. For example, one organization may contain a set of 'dumb' content to presented in the default order, while another organization may allow richer interaction by including sequencing data.
The following diagrams show the various sequencing elements and how they are assembled into groups of elements that describe how activities should be sequenced.
4.1 Example of Sequencing Element

Sequencing information consists of an identifier and sequencing reference, plus additional information. The control mode specifies how sequencing will proceed for this node: flow, auto advance, or choice. Sequencing rules provide details of the rules to be used for sequencing behavior. Limit conditions allow limits to be placed on the number attempts, etc. Auxiliary resources provide a means to link in other resources such as glossaries, help text, Interactive Electronic Technical Manuals (IETMs), etc. Rollup rules control how information in sub-activities are rolled up into higher level nodes in the activity tree. Objectives are a list of learning objectives associated with this node. Randomization controls define how selection and randomization of activities are to be done. Finally, the delivery controls are used when the activity is delivered.

Here is a basic example of how sequencing information can be merged into an 1EdTech Content Package manifest:
<?xml version = "1.0" encoding = "UTF-8"?> <manifest xmlns = "http://www.imsglobal.org/xsd/imscp_v1p1" xmlns:imsss = "http://www.imsglobal.org/xsd/imsss" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "http://www.imsglobal.org/xsd/imsss Schemas/imsss_v1p0.xsd http://www.imsglobal.org/xsd/imscp_v1p1 Schemas/imscp_v1p1p3.xsd" identifier = "BBT_TLCExamplePostTest"> <!-- This manifest contains a solution to the following ID Problem: * Deliver content, then post-test * If student doesn't pass the post-test, deliver remediation, then repeat the content and post-test --> <organizations> <organization identifier = "Organization"> <item identifier = "Unit"> <item identifier = "Content"/> <item identifier = "Posttest"> <imsss:sequencing> <imsss:objectives> <imsss:primaryObjective objectiveID = "posttest1" satisfiedByMeasure = "true"> <imsss:mapInfo targetObjectiveID = "content1" readSatisfiedStatus = "true"/> </imsss:primaryObjective> </imsss:objectives> </imsss:sequencing> </item> <item identifier = "Remediation"> <imsss:sequencing> <imsss:sequencingRules> <imsss:preConditionRule> <imsss:ruleConditions> <imsss:ruleCondition condition = "satisfied"/> </imsss:ruleConditions> <imsss:ruleAction action = "skip"/> </imsss:preConditionRule> </imsss:sequencingRules> <imsss:objectives> <imsss:primaryObjective objectiveID = "remediation1"> <imsss:mapInfo targetObjectiveID = "content1" readSatisfiedStatus = "true"/> </imsss:primaryObjective> </imsss:objectives> </imsss:sequencing> </item> <imsss:sequencing> <imsss:controlMode choice = "false" flow = "true" forwardOnly = "true"/> <imsss:sequencingRules> <imsss:postConditionRule> <imsss:ruleConditions> <imsss:ruleCondition condition = "satisfied" operator = "not"/> </imsss:ruleConditions> <imsss:ruleAction action = "retry"/> </imsss:postConditionRule> </imsss:sequencingRules> <imsss:objectives> <imsss:primaryObjective objectiveID = "unit1"> <imsss:mapInfo targetObjectiveID="content1" readSatisfiedStatus= "true"/> </imsss:primaryObjective> </imsss:objectives> </imsss:sequencing> </item> </organization> </organizations> <resources/> </manifest>
4.2 Example of Sequencing Rules
Sequencing rules are defined by the type of condition present in the rule. Preconditions are actions that control sequencing decisions and delivery of a specific activity. Rules that include such actions are used to determine if the activity will be delivered. Exit conditions include actions that terminate an activity. Rules that include such actions are applied when a descendent of an activity exits. Post conditions are actions that control sequencing flow by issuing sequencing requests. Rules that include such actions are applied when an activity exits.

This is an example of how pre-condition rules can be used to deliver material passed on a pre-test:
<?xml version = "1.0" encoding = "UTF-8"?> <manifest xmlns = "http://www.imsglobal.org/xsd/imscp_v1p1" xmlns:imsss = "http://www.imsglobal.org/xsd/imsss" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "http://www.imsglobal.org/xsd/imsss Schemas/imsss_v1p0.xsd http://www.imsglobal.org/xsd/imscp_v1p1 Schemas/imscp_v1p1p3.xsd" identifier = "BBT_TLCExamplePostTest"> <!-- This manifest contains a solution to the following ID Problem: * Require pretest before content * Deliver material based on score in pretest * N < 25% => Remediation then General * 25% < N < 75% => General only * 75% < N < 90% => General then Advanced * N > 90% => Advanced only * Allow student to choose any material, regardless of score --> <organizations> <organization identifier = "Organization"> <item identifier = "Course"> <item identifier = "Pretest"> <imsss:sequencing> <imsss:sequencingRules> <imsss:preConditionRule> <imsss:ruleConditions> <imsss:ruleCondition condition = "attempted" operator = "not"/> </imsss:ruleConditions> <imsss:ruleAction action = "stopForwardTraversal"/> </imsss:preConditionRule> </imsss:sequencingRules> <imsss:objectives objectiveID = "pretest1"> <imsss:primaryObjective> <imsss:mapInfo targetObjectiveID = "content1" writeSatisfiedStatus = "true"/> </imsss:primaryObjective> </imsss:objectives> </imsss:sequencing> </item> <item identifier = "Content" isvisible = "false"> <item identifier = "Remediation"> <imsss:sequencing> <imsss:sequencingRules> <imsss:preConditionRule> <imsss:ruleConditions> <imsss:ruleCondition condition = "objectiveMeasureGreaterThan" referencedObjective = "remediation1" measureThreshold = "0.25"/> </imsss:ruleConditions> <imsss:ruleAction action = "skip"/> </imsss:preConditionRule> </imsss:sequencingRules> <imsss:objectives> <imsss:primaryObjective objectiveID = "remediation1"> <imsss:mapInfo targetObjectiveID = "content1" readSatisfiedStatus = "true"/> </imsss:primaryObjective> </imsss:objectives> </imsss:sequencing> </item> <item identifier = "General"> <imsss:sequencing> <imsss:sequencingRules> <imsss:preConditionRule> <imsss:ruleConditions> <imsss:ruleCondition condition = "objectiveMeasureGreaterThan" referencedObjective = "general1" measureThreshold = "0.90"/> </imsss:ruleConditions> <imsss:ruleAction action = "skip"/> </imsss:preConditionRule> </imsss:sequencingRules> <imsss:objectives> <imsss:primaryObjective objectiveID = "general1"> <imsss:mapInfo targetObjectiveID = "content1" readSatisfiedStatus = "true"/> </imsss:primaryObjective> </imsss:objectives> </imsss:sequencing> </item> <item identifier = "Advanced"> <imsss:sequencing> <imsss:sequencingRules> <imsss:preConditionRule> <imsss:ruleConditions> <imsss:ruleCondition condition = "objectiveMeasureLessThan" referencedObjective = "advanced1" measureThreshold = "0.75"/> </imsss:ruleConditions> <imsss:ruleAction action = "skip"/> </imsss:preConditionRule> </imsss:sequencingRules> <imsss:objectives> <imsss:primaryObjective objectiveID = "advanced1"> <imsss:mapInfo targetObjectiveID = "content1" readSatisfiedStatus = "true"/> </imsss:primaryObjective> </imsss:objectives> </imsss:sequencing> </item> <imsss:sequencing> <imsss:controlMode choice = "true" flow="true" forwardOnly = "false"/> </imsss:sequencing> </item> <imsss:sequencing> <imsss:controlMode choice = "false" flow = "true" forwardOnly = "true"/> </imsss:sequencing> </item> </organization> </organizations> <resources/> </manifest>
4.3 Example of Rollup Rules
Multiple rollup rules can be associated with a cluster or activity. The child activity set defines when the rule is triggered based on the rollup conditions of its children. These include all, any, none, at least count, and at least percent. Rollup conditions include satisfied, objective status known, objective measure known, etc. Finally, a number of rollup actions are defined including: satisfied, not satisfied, and completed.
Here is an example of rollup rules, presented as sequencing information outside of a manifest:
<?xml version = "1.0" encoding = "UTF-8"?> <!--Generated by Turbo XML 2.3.1.100. Conforms to w3c http://www.w3.org/2001/XMLSchema--> <xs:schema xmlns = "http://www.imsglobal.org/xsd/imsss" targetNamespace = "http://www.imsglobal.org/xsd/imsss" xmlns:xs = "http://www.w3.org/2001/XMLSchema" elementFormDefault = "qualified" attributeFormDefault = "unqualified"> <xs:include schemaLocation = "imsss_v1p0util.xsd"/> <xs:complexType name = "rollupRuleType"> <xs:sequence> <xs:element name = "rollupCondition" maxOccurs = "unbounded" block = "#all"> <xs:complexType> <xs:attribute name = "operator" default = "noOp" type = "conditionOperatorType"/> <xs:attribute name = "condition" use = "required" type = "rollupRuleConditionType"/> </xs:complexType> </xs:element> <xs:element name = "rollupAction" block = "#all"> <xs:complexType> <xs:attribute name = "action" use = "required" type = "rollupActionType"/> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name = "childActivitySet" default = "all" type = "childActivityType"/> <xs:attribute name = "minimumCount" default = "0" type = "xs:integer"/> <xs:attribute name = "minimumPercent" default = "0" type = "percentType"/> <xs:attribute name = "conditionCombination" default = "any" type = "conditionCombinationType"/> </xs:complexType> <xs:complexType name = "rollupRulesType"> <xs:sequence> <xs:element name = "rollupRule" type = "rollupRuleType" minOccurs = "0" maxOccurs = "unbounded" block = "#all"/> </xs:sequence> <xs:attribute name = "rollupObjectiveSatisfied" default = "true" type = "xs:boolean"/> <xs:attribute name = "rollupProgressCompletion" default = "true" type = "xs:boolean"/> <xs:attribute name = "objectiveMeasureWeight" default = "1.0000" type = "weightType"/> </xs:complexType> </xs:schema>
4.4 Example of Limit Conditions
Limit conditions impose constraints on access to activities based on time of day, time spent on the activity, and number of attempts. Attempt limits prevent an activity from being accessed more than a given number of times. Absolute Duration limits access to a time duration based on the start and end time points. Experienced Duration limits access to the amount of time that the learner views an activity. Begin time limit indicates that an activity cannot be started before the time specified and end time limit indicates that it must be completed by the time point specified.
Some example of limit condition rules:
<?xml version = "1.0" encoding = "UTF-8"?> <!--Generated by Turbo XML 2.3.1.100. Conforms to w3c http://www.w3.org/2001/XMLSchema--> <xs:schema xmlns = "http://www.imsglobal.org/xsd/imsss" targetNamespace = "http://www.imsglobal.org/xsd/imsss" xmlns:xs = "http://www.w3.org/2001/XMLSchema" elementFormDefault = "qualified" attributeFormDefault = "unqualified"> <xs:complexType name = "limitConditionsType"> <xs:attribute name = "attemptLimit" type = "xs:nonNegativeInteger"> <xs:annotation> <xs:documentation>Limit Condition Attempt Limit</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name = "attemptAbsoluteDurationLimit" type = "xs:duration" > <xs:annotation> <xs:documentation>Limit Condition Activity Attempt Absolute Duration Limit. Typed as xs:duration: see http://www.w3.org/TR/xmlschema-2/#duration</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name = "attemptExperiencedDurationLimit" type = "xs:duration"> <xs:annotation> <xs:documentation>Limit Condition Activity Attempt Experienced Duration Limit. Typed as xs:duration: see http://www.w3.org/TR/xmlschema-2/#duration</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name = "activityAbsoluteDurationLimit" type = "xs:duration"> <xs:annotation> <xs:documentation>Limit Condition Activity Absolute Duration Limit. Typed as xs:duration: see http://www.w3.org/TR/xmlschema-2/#duration</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name = "activityExperiencedDurationLimit" type = "xs:duration" > <xs:annotation> <xs:documentation>Limit Condition Activity Experienced Duration Limit. Typed as xs:duration: see http://www.w3.org/TR/xmlschema-2/#duration</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name = "beginTimeLimit" type = "xs:dateTime"> <xs:annotation> <xs:documentation>Limit Condition Begin Time Limit</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name = "endTimeLimit" type = "xs:dateTime"> <xs:annotation> <xs:documentation>Limit Condition End Time Limit</xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> </xs:schema>
4.5 Example of Learning Objectives
Each activity can have one or more educational objectives associated with it. The first objective in the list of objectives is considered to be the primary objective. Additional objectives may be included also. Each objective has a flag to indicate that some measure of completion has been satisfied along with an objective ID string which can be used to tie such measurements to a competency or objective management system (not included in this specification). The objective may contain a minimum normalized measure score, which is the number used to determine if completion is met. Finally, mapping information can be used to indicate how the measure is mapped onto an unspecified data model. If multiple objectives are present, then each instance must contain an objective ID.
An example of the use of objectives:
<?xml version = "1.0" encoding = "UTF-8"?> <!--Generated by Turbo XML 2.3.1.100. Conforms to w3c http://www.w3.org/2001/XMLSchema--> <xs:schema xmlns = "http://www.imsglobal.org/xsd/imsss" targetNamespace = "http://www.imsglobal.org/xsd/imsss" xmlns:xs = "http://www.w3.org/2001/XMLSchema" elementFormDefault = "qualified" attributeFormDefault = "unqualified"> <xs:include schemaLocation = "imsss_v1p0util.xsd"/> <xs:complexType name = "objectiveType"> <xs:sequence> <xs:element name = "minNormalizedMeasure" type = "measureType" default = "1.00000" minOccurs = "0" block = "#all"/> <xs:element name = "mapInfo" type = "objectiveMappingType" minOccurs = "0" block = "#all"/> </xs:sequence> <xs:attribute name = "satisfiedByMeasure" default = "false" type = "xs:boolean"/> </xs:complexType> <xs:complexType name = "objectivesType"> <xs:annotation> <xs:documentation>The specification states: "Each activity must have one and only one objective that contributes to rollup". The following type describes an unbounded set of elements all named "objective" that do not contribute to rollup, and one element called "primaryObjective" that contributes to rollup.</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name = "primaryObjective" block = "#all"> <xs:annotation> <xs:documentation>Contributes to rollup of the activity. </xs:documentation> </xs:annotation> <xs:complexType> <xs:complexContent> <xs:extension base = "objectiveType"> <xs:attribute name = "objectiveID" type = "xs:string"/> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name = "objective" minOccurs = "0" maxOccurs = "unbounded" block = "#all"> <xs:annotation> <xs:documentation>Does not contribute to the rollup of the activity.</xs:documentation> </xs:annotation> <xs:complexType> <xs:complexContent> <xs:extension base = "objectiveType"> <xs:attribute name = "objectiveID" use = "required" type = "xs:string"/> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name = "objectiveMappingType"> <xs:annotation> <xs:documentation>The type that describes an individual objective mapping. Mapping one local objective GUID to one global objective GUID</xs:documentation> </xs:annotation> <xs:attribute name = "targetObjectiveID" use = "required" type = "xs:string"/> <xs:attribute name = "readSatisfiedStatus" default = "true" type = "xs:boolean"/> <xs:attribute name = "readNormalizedMeasure" default = "true" type = "xs:boolean"/> <xs:attribute name = "writeSatisfiedStatus" default = "false" type = "xs:boolean"/> <xs:attribute name = "writeNormalizedMeasure" default = "false" type = "xs:boolean"/> </xs:complexType> </xs:schema>
4.6 Example of Auxiliary Resources
Auxiliary resources may be associated with an activity node. These resources allow additional material to be associated with an activity beyond the main content objects. This in turn allows glossary entries, help text, interactive manual pages, etc. to be defined and associated with an activity.
Example of auxiliary resources in use:
<?xml version="1.0" encoding="UTF-8"?> <!--Generated by Turbo XML 2.3.1.100. Conforms to w3c http://www.w3.org/2001/XMLSchema--> <xs:schema targetNamespace="http://www.imsglobal.org/xsd/imsss" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.imsglobal.org/xsd/imsss" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:include schemaLocation="imsss_v1p0util.xsd"/> <xs:complexType name="auxiliaryResourceType"> <xs:attribute name="auxiliaryResourceID" type="xs:string" use="required"/> <xs:attribute name="purpose" type="xs:string" use="required"/> </xs:complexType> <xs:complexType name="auxiliaryResourcesType"> <xs:sequence> <xs:element name="auxiliaryResource" minOccurs="0" maxOccurs="unbounded" type="auxiliaryResourceType" block = "#all"/> </xs:sequence> </xs:complexType> </xs:schema>
5. Advanced Examples
The following examples illustrate two more advanced examples of sequencing showing remediation and datamapping. Each is based on a set of modules that teach a short course on Photoshop.
Diagram Symbols
Each example is accompanied by a diagram which shows the course structure in a visual format. The small circles represent sequencing or rollup rules. They are color-coded and associated with the activities they apply to. The large (green) circles represent the order in which the associated activity is sequencing during flow (start, continue, or previous) sequencing requests. The blue ovals represent the objective associated with the activity. An implicit objective mapping is not represented in the diagrams - all objectives (blue ovals) exist both locally and globally (with the same name); pretests write local to global objectives, lessons only read, and posttests both read and write.
The outer bold box in each diagram represents the 'root' activity. Nested boxes represent clusters.
The example Photoshop course consists of several content pieces: an introduction, five modules that contain some number of lessons, and an assessment for each module that consists of five questions. These pieces are reused to illustrate various learning strategies by organizing the pieces in different ways and by applying sequencing rules to the resultant content aggregation.
5.1 Photoshop - Remediation
Choice is not allowed anywhere in the content aggregation. The learner is directed from the introduction to each lesson of the five modules in order. The learner decides when to progress through the content and in what direction by signaling continue and previous events. After all of the modules are experienced, the learner is presented an assessment that consists of all twenty-five questions divided into five, five question parts. The learner 'satisfies' one part of the assessment if they get 80% of the questions correct; 'satisfying' a part of the assessment also 'satisfies' the associated module's objective. After the assessment, the learner is directed through any modules, in order, whose associated objective has not been 'satisfied'; 'satisfied' modules are skipped. The learner decides when to progress through the content and in what direction, by signaling continue and previous events. After the required modules are experienced, the learner is presented a post-test that consists of all twenty-five questions divided into five, five question parts. The learner is only presented post-test parts that correspond to module objectives that where not 'satisfied' in the first assessment; 'satisfied' modules are skipped. The learner 'satisfies' one part of the assessment if they get 80% of the questions correct; 'satisfying' a part of the assessment also 'satisfies' the associated module's objective. The content aggregation exits after the leaner has experienced or skipped each piece of content at least once.

The following XML example shows how sequencing rules can be used to implement remediation. Careful note should be made of how objectives are used by the rules to determine which activity is made available to the learner.
<?xml version="1.0" standalone="no" ?> <manifest identifier="photo-MANIFEST-remediation" version="1.2" xmlns="http://www.imsglobal.org/xsd/imscp_v1p1" xmlns:adlcp="http://www.adlnet.org/xsd/adlcp_v1p3" xmlns:imsss = "http://www.imsglobal.org/xsd/imsss" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.imsglobal.org/xsd/imscp_v1p1 imscp_v1p1p3.xsd http://www.imsglobal.org/xsd/imsmd_v1p2 imsmd_v1p2p2.xsd http://www.adlnet.org/xsd/adlcp_v1p3 adlcp_rootv1p3.xsd http://www.imsglobal.org/xsd/imsss imsss_v1p0.xsd" > <metadata> <schema>1EdTech Content</schema> <schemaversion>1.2</schemaversion> <lom xmlns="http://www.imsglobal.org/xsd/imsmd_v1p2" > <general> <title> <langstring xml:lang="en-US">Photoshop Tutorial</langstring> </title> <description> <langstring xml:lang="en-US">This tutorial provides you with an overview of the basic skills of Photoshop.</langstring> </description> <keyword> <langstring xml:lang="en-US">Blending Images, Enhancing Images, Special Effects, Basic Skills.</langstring> </keyword> </general> </lom> </metadata> <organizations default="TOC1"> <organization identifier="TOC1"> <title>Photoshop Tutorial</title> <item identifier="INTRO" identifierref="RESOURCE30"> <title>Photoshop Introduction</title> <imsss:sequencing> <imsss:rollupRules rollupObjectiveSatisfied="false"/> </imsss:sequencing> </item> <item identifier="MODULE1"> <item identifier="ITEM1" identifierref="RESOURCE1"> <title>Photoshop Lesson 1</title> </item> <item identifier="ITEM12" identifierref="RESOURCE12"> <title>Photoshop Toolbox Lesson 2</title> </item> <item identifier="ITEM17" identifierref="RESOURCE17"> <title>Photoshop Palettes Lesson 3</title> </item> <item identifier="ITEM18" identifierref="RESOURCE18"> <title>Photoshop Layers Lesson 4</title> </item> <item identifier="ITEM19" identifierref="RESOURCE19"> <title>Photoshop File Types Lesson 5</title> </item> <item identifier="ITEM20" identifierref="RESOURCE20"> <title>Photoshop Resolution Lesson 6</title> </item> <imsss:sequencing> <imsss:controlMode choice="false" flow="true"/> <imsss:rollupRules rollupObjectiveSatisfied="false"/> </imsss:sequencing> </item> <item identifier="MODULE2"> <item identifier="ITEM21" identifierref="RESOURCE21"> <title>Photoshop Color Balance Lesson 7</title> </item> <item identifier="ITEM22" identifierref="RESOURCE22"> <title>Photoshop Brightness and Contrast Lesson 8</title> </item> <item identifier="ITEM23" identifierref="RESOURCE23"> <title>Photoshop Hue and Saturation Lesson 9</title> </item> <item identifier="ITEM2" identifierref="RESOURCE2"> <title>Photoshop Cropping Lesson 10</title> </item> <item identifier="ITEM3" identifierref="RESOURCE3"> <title>Photoshop Cloning Stamp Lesson 11</title> </item> <item identifier="ITEM4" identifierref="RESOURCE4"> <title>Photoshop Blurring, Sharpening and Smudging Lesson 12</title> </item> <item identifier="ITEM5" identifierref="RESOURCE5"> <title>Photoshop Burn, Dodge and Sponge Tools Lesson 13</title> </item> <imsss:sequencing> <imsss:controlMode choice="false" flow="true"/> <imsss:rollupRules rollupObjectiveSatisfied="false"/> </imsss:sequencing> </item> <item identifier="MODULE3"> <item identifier="ITEM6" identifierref="RESOURCE6"> <title>Photoshop Selection Tools Lesson 14</title> </item> <item identifier="ITEM7" identifierref="RESOURCE7"> <title>Photoshop Transforming Lesson 15</title> </item> <imsss:sequencing> <imsss:controlMode choice="false" flow="true"/> <imsss:rollupRules rollupObjectiveSatisfied="false"/> </imsss:sequencing> </item> <item identifier="MODULE4"> <item identifier="ITEM8" identifierref="RESOURCE8"> <title>Photoshop Filters Lesson 16</title> </item> <item identifier="ITEM9" identifierref="RESOURCE9"> <title>Photoshop Effects Lesson 17</title> </item> <item identifier="ITEM10" identifierref="RESOURCE10"> <title>Photoshop Opacity Lesson 18</title> </item> <imsss:sequencing> <imsss:controlMode choice="false" flow="true"/> <imsss:rollupRules rollupObjectiveSatisfied="false"/> </imsss:sequencing> </item> <item identifier="MODULE5"> <item identifier="ITEM11" identifierref="RESOURCE11"> <title>Photoshop Color Picker Lesson 19</title> </item> <item identifier="ITEM13" identifierref="RESOURCE13"> <title>Photoshop Type Tool Lesson 20</title> </item> <item identifier="ITEM14" identifierref="RESOURCE14"> <title>Photoshop Paint Tools Lesson 21</title> </item> <item identifier="ITEM15" identifierref="RESOURCE15"> <title>Photoshop Vector Tools Lesson 22</title> </item> <item identifier="ITEM16" identifierref="RESOURCE16"> <title>Photoshop Gradients Lesson 23</title> </item> <imsss:sequencing> <imsss:controlMode choice="false" flow="true"/> <imsss:rollupRules rollupObjectiveSatisfied="false"/> </imsss:sequencing> </item> <item identifier="FIRSTEXAM"> <item identifier="FIRSTEXAM_PART1"> <item identifier="ITEM40" identifierref="QUESTION1"/> <item identifier="ITEM41" identifierref="QUESTION2"/> <item identifier="ITEM42" identifierref="QUESTION3"/> <item identifier="ITEM43" identifierref="QUESTION4"/> <item identifier="ITEM44" identifierref="QUESTION5"/> <imsss:sequencing> <imsss:controlMode choice="false" flow="true" forwardOnly="true"/> <imsss:rollupRules > <imsss:rollupRule childActivitySet="all"> <imsss:rollupConditions> <imsss:rollupCondition condition="attempted"/> </imsss:rollupConditions> <imsss:rollupAction action="completed"/> </imsss:rollupRule> </imsss:rollupRules> <imsss:objectives> <imsss:primaryObjective satisfiedByMeasure="true"> <imsss:minNormalizedMeasure>0.8</imsss:minNormalizedMeasure> <imsss:mapInfo targetObjectiveID="obj_module_1" readSatisfiedStatus="false" writeSatisfiedStatus="true" /> </imsss:primaryObjective> </imsss:objectives> </imsss:sequencing> </item> <item identifier="FIRSTEXAM_PART2"> <item identifier="ITEM45" identifierref="QUESTION6"/> <item identifier="ITEM46" identifierref="QUESTION7"/> <item identifier="ITEM47" identifierref="QUESTION8"/> <item identifier="ITEM48" identifierref="QUESTION9"/> <item identifier="ITEM49" identifierref="QUESTION10"/> <imsss:sequencing> <imsss:controlMode choice="false" flow="true" forwardOnly="true"/> <imsss:rollupRules > <imsss:rollupRule childActivitySet="all"> <imsss:rollupConditions> <imsss:rollupCondition condition="attempted"/> </imsss:rollupConditions> <imsss:rollupAction action="completed"/> </imsss:rollupRule> </imsss:rollupRules> <imsss:objectives> <imsss:primaryObjective satisfiedByMeasure="true"> <imsss:minNormalizedMeasure>0.8</imsss:minNormalizedMeasure> <imsss:mapInfo targetObjectiveID="obj_module_2" readSatisfiedStatus="false" writeSatisfiedStatus="true" /> </imsss:primaryObjective> </imsss:objectives> </imsss:sequencing> </item> <item identifier="FIRSTEXAM_PART3"> <item identifier="ITEM50" identifierref="QUESTION11"/> <item identifier="ITEM51" identifierref="QUESTION12"/> <item identifier="ITEM52" identifierref="QUESTION13"/> <item identifier="ITEM53" identifierref="QUESTION14"/> <item identifier="ITEM54" identifierref="QUESTION15"/> <imsss:sequencing> <imsss:controlMode choice="false" flow="true" forwardOnly="true"/> <imsss:rollupRules > <imsss:rollupRule childActivitySet="all"> <imsss:rollupConditions> <imsss:rollupCondition condition="attempted"/> </imsss:rollupConditions> <imsss:rollupAction action="completed"/> </imsss:rollupRule> </imsss:rollupRules> <imsss:objectives> <imsss:primaryObjective satisfiedByMeasure="true"> <imsss:minNormalizedMeasure>0.8</imsss:minNormalizedMeasure> <imsss:mapInfo targetObjectiveID="obj_module_3" readSatisfiedStatus="false" writeSatisfiedStatus="true" /> </imsss:primaryObjective> </imsss:objectives> </imsss:sequencing> </item> <item identifier="FIRSTEXAM_PART4"> <item identifier="ITEM55" identifierref="QUESTION16"/> <item identifier="ITEM56" identifierref="QUESTION17"/> <item identifier="ITEM57" identifierref="QUESTION18"/> <item identifier="ITEM58" identifierref="QUESTION19"/> <item identifier="ITEM59" identifierref="QUESTION20"/> <imsss:sequencing> <imsss:controlMode choice="false" flow="true" forwardOnly="true"/> <imsss:rollupRules > <imsss:rollupRule childActivitySet="all"> <imsss:rollupConditions> <imsss:rollupCondition condition="attempted"/> </imsss:rollupConditions> <imsss:rollupAction action="completed"/> </imsss:rollupRule> </imsss:rollupRules> <imsss:objectives> <imsss:primaryObjective satisfiedByMeasure="true"> <imsss:minNormalizedMeasure>0.8</imsss:minNormalizedMeasure> <imsss:mapInfo targetObjectiveID="obj_module_4" readSatisfiedStatus="false" writeSatisfiedStatus="true" /> </imsss:primaryObjective> </imsss:objectives> </imsss:sequencing> </item> <item identifier="FIRSTEXAM_PART5"> <item identifier="ITEM60" identifierref="QUESTION21"/> <item identifier="ITEM61" identifierref="QUESTION22"/> <item identifier="ITEM62" identifierref="QUESTION23"/> <item identifier="ITEM63" identifierref="QUESTION24"/> <item identifier="ITEM64" identifierref="QUESTION25"/> <imsss:sequencing> <imsss:controlMode choice="false" flow="true" forwardOnly="true"/> <imsss:rollupRules > <imsss:rollupRule childActivitySet="all"> <imsss:rollupConditions> <imsss:rollupCondition condition="attempted"/> </imsss:rollupConditions> <imsss:rollupAction action="completed"/> </imsss:rollupRule> </imsss:rollupRules> <imsss:objectives> <imsss:primaryObjective satisfiedByMeasure="true"> <imsss:minNormalizedMeasure>0.8</imsss:minNormalizedMeasure> <imsss:mapInfo targetObjectiveID="obj_module_5" readSatisfiedStatus="false" writeSatisfiedStatus="true" /> </imsss:primaryObjective> </imsss:objectives> </imsss:sequencing> </item> <imsss:sequencing> <imsss:controlMode choice="false" flow="true" forwardOnly="true"/> </imsss:sequencing> </item> <item identifier="REMEDIATION_MODULE1"> <item identifier="ITEM70" identifierref="RESOURCE1"> <title>Photoshop Lesson 1</title> </item> <item identifier="ITEM71" identifierref="RESOURCE12"> <title>Photoshop Toolbox Lesson 2</title> </item> <item identifier="ITEM72" identifierref="RESOURCE17"> <title>Photoshop Palettes Lesson 3</title> </item> <item identifier="ITEM73" identifierref="RESOURCE18"> <title>Photoshop Layers Lesson 4</title> </item> <item identifier="ITEM74" identifierref="RESOURCE19"> <title>Photoshop File Types Lesson 5</title> </item> <item identifier="ITEM75" identifierref="RESOURCE20"> <title>Photoshop Resolution Lesson 6</title> </item> <imsss:sequencing> <imsss:controlMode choice="false" flow="true"/> <imsss:sequencingRules> <imsss:preConditionRule> <imsss:ruleConditions> <imsss:ruleCondition condition="satisfied"/> </imsss:ruleConditions> <imsss:ruleAction action="skip"/> </imsss:preConditionRule> </imsss:sequencingRules> <imsss:rollupRules rollupObjectiveSatisfied="false"/> <imsss:objectives> <imsss:primaryObjective> <imsss:mapInfo targetObjectiveID="obj_module_1" readSatisfiedStatus="true"/> </imsss:primaryObjective> </imsss:objectives> </imsss:sequencing> </item> <item identifier="REMEDIATION_MODULE2"> <item identifier="ITEM76" identifierref="RESOURCE21"> <title>Photoshop Color Balance Lesson 7</title> </item> <item identifier="ITEM77" identifierref="RESOURCE22"> <title>Photoshop Brightness and Contrast Lesson 8</title> </item> <item identifier="ITEM78" identifierref="RESOURCE23"> <title>Photoshop Hue and Saturation Lesson 9</title> </item> <item identifier="ITEM79" identifierref="RESOURCE2"> <title>Photoshop Cropping Lesson 10</title> </item> <item identifier="ITEM80" identifierref="RESOURCE3"> <title>Photoshop Cloning Stamp Lesson 11</title> </item> <item identifier="ITEM81" identifierref="RESOURCE4"> <title>Photoshop Blurring, Sharpening and Smudging Lesson 12</title> </item> <item identifier="ITEM82" identifierref="RESOURCE5"> <title>Photoshop Burn, Dodge and Sponge Tools Lesson 13</title> </item> <imsss:sequencing> <imsss:controlMode choice="false" flow="true"/> <imsss:sequencingRules> <imsss:preConditionRule> <imsss:ruleConditions> <imsss:ruleCondition condition="satisfied"/> </imsss:ruleConditions> <imsss:ruleAction action="skip"/> </imsss:preConditionRule> </imsss:sequencingRules> <imsss:rollupRules rollupObjectiveSatisfied="false"/> <imsss:objectives> <imsss:primaryObjective> <imsss:mapInfo targetObjectiveID="obj_module_2" readSatisfiedStatus="true"/> </imsss:primaryObjective> </imsss:objectives> </imsss:sequencing> </item> <item identifier="REMEDIATION_MODULE3"> <item identifier="ITEM83" identifierref="RESOURCE6"> <title>Photoshop Selection Tools Lesson 14</title> </item> <item identifier="ITEM84" identifierref="RESOURCE7"> <title>Photoshop Transforming Lesson 15</title> </item> <imsss:sequencing> <imsss:controlMode choice="false" flow="true"/> <imsss:sequencingRules> <imsss:preConditionRule> <imsss:ruleConditions> <imsss:ruleCondition condition="satisfied"/> </imsss:ruleConditions> <imsss:ruleAction action="skip"/> </imsss:preConditionRule> </imsss:sequencingRules> <imsss:rollupRules rollupObjectiveSatisfied="false"/> <imsss:objectives> <imsss:primaryObjective> <imsss:mapInfo targetObjectiveID="obj_module_3" readSatisfiedStatus="true"/> </imsss:primaryObjective> </imsss:objectives> </imsss:sequencing> </item> <item identifier="REMEDIATION_MODULE4"> <item identifier="ITEM85" identifierref="RESOURCE8"> <title>Photoshop Filters Lesson 16</title> </item> <item identifier="ITEM86" identifierref="RESOURCE9"> <title>Photoshop Effects Lesson 17</title> </item> <item identifier="ITEM87" identifierref="RESOURCE10"> <title>Photoshop Opacity Lesson 18</title> </item> <imsss:sequencing> <imsss:controlMode choice="false" flow="true"/> <imsss:sequencingRules> <imsss:preConditionRule> <imsss:ruleConditions> <imsss:ruleCondition condition="satisfied"/> </imsss:ruleConditions> <imsss:ruleAction action="skip"/> </imsss:preConditionRule> </imsss:sequencingRules> <imsss:rollupRules rollupObjectiveSatisfied="false"/> <imsss:objectives> <imsss:primaryObjective> <imsss:mapInfo targetObjectiveID="obj_module_4" readSatisfiedStatus="true"/> </imsss:primaryObjective> </imsss:objectives> </imsss:sequencing> </item> <item identifier="REMEDIATION_MODULE5"> <item identifier="ITEM88" identifierref="RESOURCE11"> <title>Photoshop Color Picker Lesson 19</title> </item> <item identifier="ITEM89" identifierref="RESOURCE13"> <title>Photoshop Type Tool Lesson 20</title> </item> <item identifier="ITEM90" identifierref="RESOURCE14"> <title>Photoshop Paint Tools Lesson 21</title> </item> <item identifier="ITEM91" identifierref="RESOURCE15"> <title>Photoshop Vector Tools Lesson 22</title> </item> <item identifier="ITEM92" identifierref="RESOURCE16"> <title>Photoshop Gradients Lesson 23</title> </item> <imsss:sequencing> <imsss:controlMode choice="false" flow="true"/> <imsss:sequencingRules> <imsss:preConditionRule> <imsss:ruleConditions> <imsss:ruleCondition condition="satisfied"/> </imsss:ruleConditions> <imsss:ruleAction action="skip"/> </imsss:preConditionRule> </imsss:sequencingRules> <imsss:rollupRules rollupObjectiveSatisfied="false"/> <imsss:objectives> <imsss:primaryObjective> <imsss:mapInfo targetObjectiveID="obj_module_5" readSatisfiedStatus="true"/> </imsss:primaryObjective> </imsss:objectives> </imsss:sequencing> </item> <item identifier="SECONDEXAM"> <item identifier="SECONDEXAM_PART1"> <item identifier="ITEM140" identifierref="QUESTION1"/> <item identifier="ITEM141" identifierref="QUESTION2"/> <item identifier="ITEM142" identifierref="QUESTION3"/> <item identifier="ITEM143" identifierref="QUESTION4"/> <item identifier="ITEM144" identifierref="QUESTION5"/> <imsss:sequencing> <imsss:controlMode choice="false" flow="true" forwardOnly="true"/> <imsss:sequencingRules> <imsss:preConditionRule> <imsss:ruleConditions> <imsss:ruleCondition condition="satisfied"/> </imsss:ruleConditions> <imsss:ruleAction action="skip"/> </imsss:preConditionRule> </imsss:sequencingRules> <imsss:rollupRules > <imsss:rollupRule childActivitySet="all"> <imsss:rollupConditions> <imsss:rollupCondition condition="attempted"/> </imsss:rollupConditions> <imsss:rollupAction action="completed"/> </imsss:rollupRule> </imsss:rollupRules> <imsss:objectives> <imsss:primaryObjective satisfiedByMeasure="true"> <imsss:minNormalizedMeasure>0.8</imsss:minNormalizedMeasure> <imsss:mapInfo targetObjectiveID="obj_module_1" readSatisfiedStatus="true" writeSatisfiedStatus="true" /> </imsss:primaryObjective> </imsss:objectives> </imsss:sequencing> </item> <item identifier="SECONDEXAM_PART2"> <item identifier="ITEM145" identifierref="QUESTION6"/> <item identifier="ITEM146" identifierref="QUESTION7"/> <item identifier="ITEM147" identifierref="QUESTION8"/> <item identifier="ITEM148" identifierref="QUESTION9"/> <item identifier="ITEM149" identifierref="QUESTION10"/> <imsss:sequencing> <imsss:controlMode choice="false" flow="true" forwardOnly="true"/> <imsss:sequencingRules> <imsss:preConditionRule> <imsss:ruleConditions> <imsss:ruleCondition condition="satisfied"/> </imsss:ruleConditions> <imsss:ruleAction action="skip"/> </imsss:preConditionRule> </imsss:sequencingRules> <imsss:rollupRules > <imsss:rollupRule childActivitySet="all"> <imsss:rollupConditions> <imsss:rollupCondition condition="attempted"/> </imsss:rollupConditions> <imsss:rollupAction action="completed"/> </imsss:rollupRule> </imsss:rollupRules> <imsss:objectives> <imsss:primaryObjective satisfiedByMeasure="true"> <imsss:minNormalizedMeasure>0.8</imsss:minNormalizedMeasure> <imsss:mapInfo targetObjectiveID="obj_module_2" readSatisfiedStatus="true" writeSatisfiedStatus="true" /> </imsss:primaryObjective> </imsss:objectives> </imsss:sequencing> </item> <item identifier="SECONDEXAM_PART3"> <item identifier="ITEM150" identifierref="QUESTION11"/> <item identifier="ITEM151" identifierref="QUESTION12"/> <item identifier="ITEM152" identifierref="QUESTION13"/> <item identifier="ITEM153" identifierref="QUESTION14"/> <item identifier="ITEM154" identifierref="QUESTION15"/> <imsss:sequencing> <imsss:controlMode choice="false" flow="true" forwardOnly="true"/> <imsss:sequencingRules> <imsss:preConditionRule> <imsss:ruleConditions> <imsss:ruleCondition condition="satisfied"/> </imsss:ruleConditions> <imsss:ruleAction action="skip"/> </imsss:preConditionRule> </imsss:sequencingRules> <imsss:rollupRules > <imsss:rollupRule childActivitySet="all"> <imsss:rollupConditions> <imsss:rollupCondition condition="attempted"/> </imsss:rollupConditions> <imsss:rollupAction action="completed"/> </imsss:rollupRule> </imsss:rollupRules> <imsss:objectives> <imsss:primaryObjective satisfiedByMeasure="true"> <imsss:minNormalizedMeasure>0.8</imsss:minNormalizedMeasure> <imsss:mapInfo targetObjectiveID="obj_module_3" readSatisfiedStatus="true" writeSatisfiedStatus="true" /> </imsss:primaryObjective> </imsss:objectives> </imsss:sequencing> </item> <item identifier="SECONDEXAM_PART4"> <item identifier="ITEM155" identifierref="QUESTION16"/> <item identifier="ITEM156" identifierref="QUESTION17"/> <item identifier="ITEM157" identifierref="QUESTION18"/> <item identifier="ITEM158" identifierref="QUESTION19"/> <item identifier="ITEM159" identifierref="QUESTION20"/> <imsss:sequencing> <imsss:controlMode choice="false" flow="true" forwardOnly="true"/> <imsss:sequencingRules> <imsss:preConditionRule> <imsss:ruleConditions> <imsss:ruleCondition condition="satisfied"/> </imsss:ruleConditions> <imsss:ruleAction action="skip"/> </imsss:preConditionRule> </imsss:sequencingRules> <imsss:rollupRules > <imsss:rollupRule childActivitySet="all"> <imsss:rollupConditions> <imsss:rollupCondition condition="attempted"/> </imsss:rollupConditions> <imsss:rollupAction action="completed"/> </imsss:rollupRule> </imsss:rollupRules> <imsss:objectives> <imsss:primaryObjective satisfiedByMeasure="true"> <imsss:minNormalizedMeasure>0.8</imsss:minNormalizedMeasure> <imsss:mapInfo targetObjectiveID="obj_module_4" readSatisfiedStatus="true" writeSatisfiedStatus="true" /> </imsss:primaryObjective> </imsss:objectives> </imsss:sequencing> </item> <item identifier="SECONDEXAM_PART5"> <item identifier="ITEM160" identifierref="QUESTION21"/> <item identifier="ITEM161" identifierref="QUESTION22"/> <item identifier="ITEM162" identifierref="QUESTION23"/> <item identifier="ITEM163" identifierref="QUESTION24"/> <item identifier="ITEM164" identifierref="QUESTION25"/> <imsss:sequencing> <imsss:controlMode choice="false" flow="true" forwardOnly="true"/> <imsss:sequencingRules> <imsss:preConditionRule> <imsss:ruleConditions> <imsss:ruleCondition condition="satisfied"/> </imsss:ruleConditions> <imsss:ruleAction action="skip"/> </imsss:preConditionRule> </imsss:sequencingRules> <imsss:rollupRules > <imsss:rollupRule childActivitySet="all"> <imsss:rollupConditions> <imsss:rollupCondition condition="attempted"/> </imsss:rollupConditions> <imsss:rollupAction action="completed"/> </imsss:rollupRule> </imsss:rollupRules> <imsss:objectives> <imsss:primaryObjective satisfiedByMeasure="true"> <imsss:minNormalizedMeasure>0.8</imsss:minNormalizedMeasure> <imsss:mapInfo targetObjectiveID="obj_module_5" readSatisfiedStatus="true" writeSatisfiedStatus="true" /> </imsss:primaryObjective> </imsss:objectives> </imsss:sequencing> </item> <imsss:sequencing> <imsss:controlMode choice="false" flow="true" forwardOnly="true"/> </imsss:sequencing> </item> <imsss:sequencing> <imsss:controlMode choice="false" flow="true"/> <imsss:sequencingRules> <imsss:exitConditionRule> <imsss:ruleConditions> <imsss:ruleCondition condition="completed"/> </imsss:ruleConditions> <imsss:ruleAction action="exit"/> </imsss:exitConditionRule> </imsss:sequencingRules> <imsss:rollupRules > <imsss:rollupRule childActivitySet="all"> <imsss:rollupConditions> <imsss:rollupCondition condition="satisfied"/> </imsss:rollupConditions> <imsss:rollupAction action="satisfied"/> </imsss:rollupRule> <imsss:rollupRule childActivitySet="any"> <imsss:rollupConditions> <imsss:rollupCondition operator ="not" condition="satisfied"/> </imsss:rollupConditions> <imsss:rollupAction action="notSatisfied"/> </imsss:rollupRule> </imsss:rollupRules> </imsss:sequencing> </organization> </organizations> <resources> <resource identifier="RESOURCE1" adlcp:scormtype="asset" type="webcontent" href="Lesson1.htm"> <file href="Lesson1.htm" /> <file href="images/EndOfLesson.gif" /> <file href="images/LessonTitle1.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/interfacesmall.jpg" /> <file href="images/pssidebar.gif" /> </resource> <resource identifier="RESOURCE2" adlcp:scormtype="asset" type="webcontent" href="Lesson10.htm"> <file href="Lesson10.htm" /> <file href="images/EndOfLesson.gif" /> <file href="images/Joule-window5.jpg" /> <file href="images/LessonTitle10.gif" /> <file href="images/cropiconbig.gif" /> <file href="images/cropmarks.jpg" /> <file href="images/cropped.jpg" /> <file href="images/croptool.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/pssidebar.gif" /> </resource> <resource identifier="RESOURCE3" adlcp:scormtype="asset" type="webcontent" href="Lesson11.htm"> <file href="Lesson11.htm" /> <file href="images/11.gif" /> <file href="images/CloneBrushSelect.gif" /> <file href="images/CloneCrosshairs.gif" /> <file href="images/EndOfLesson.gif" /> <file href="images/Iowa-roadcloned.jpg" /> <file href="images/Iowa-roadnotcloned.jpg" /> <file href="images/LessonTitle11.gif" /> <file href="images/cloneiconbig.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/pssidebar.gif" /> </resource> <resource identifier="RESOURCE4" adlcp:scormtype="asset" type="webcontent" href="Lesson12.htm"> <file href="Lesson12.htm" /> <file href="images/BSSBrushSelect.gif" /> <file href="images/BSSTool.gif" /> <file href="images/BlurIconBig.gif" /> <file href="images/EndOfLesson.gif" /> <file href="images/LessonTitle12.gif" /> <file href="images/Oriental-TreeEnhanced.jpg" /> <file href="images/Oriental-TreeOriginal.jpg" /> <file href="images/Pressure.gif" /> <file href="images/SharpenIconBig.gif" /> <file href="images/SmudgeIconBig.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/pssidebar.gif" /> </resource> <resource identifier="RESOURCE5" adlcp:scormtype="asset" type="webcontent" href="Lesson13.htm"> <file href="Lesson13.htm" /> <file href="images/BDSBrushSelect.gif" /> <file href="images/BDSTool.gif" /> <file href="images/BurnBar.gif" /> <file href="images/Circular-Gatenowindow.jpg" /> <file href="images/Circular-Gatewindow.jpg" /> <file href="images/DodgeBar.gif" /> <file href="images/EndOfLesson.gif" /> <file href="images/LessonTitle13.gif" /> <file href="images/Mode.gif" /> <file href="images/Pressure.gif" /> <file href="images/Range.gif" /> <file href="images/SpongeBar.gif" /> <file href="images/burniconbig.gif" /> <file href="images/dodgeiconbig.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/pssidebar.gif" /> <file href="images/spongeiconbig.gif" /> </resource> <resource identifier="RESOURCE6" adlcp:scormtype="asset" type="webcontent" href="Lesson14.htm"> <file href="Lesson14.htm" /> <file href="images/Addition.gif" /> <file href="images/EndOfLesson.gif" /> <file href="images/IntersectionIcon.gif" /> <file href="images/LessonTitle14.gif" /> <file href="images/MagicWandBar.gif" /> <file href="images/MagicWandIcon.gif" /> <file href="images/Selection.gif" /> <file href="images/SubtractionIcon.gif" /> <file href="images/addtosubtractfromselection.gif" /> <file href="images/dafbackground.jpg" /> <file href="images/dafmagicselect.jpg" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/lassotools.gif" /> <file href="images/marqueetools.gif" /> <file href="images/originaldaf.jpg" /> <file href="images/pssidebar.gif" /> <file href="images/selectiontools.gif" /> <file href="images/singledafselection.jpg" /> </resource> <resource identifier="RESOURCE7" adlcp:scormtype="asset" type="webcontent" href="Lesson15.htm"> <file href="Lesson15.htm" /> <file href="images/EndOfLesson.gif" /> <file href="images/LessonTitle15.gif" /> <file href="images/TransformFlyout.gif" /> <file href="images/birdfeeder.jpg" /> <file href="images/birdfeederdistort.gif" /> <file href="images/birdfeederflip.gif" /> <file href="images/birdfeederperspective.gif" /> <file href="images/birdfeederrotated.jpg" /> <file href="images/birdfeederscaled.jpg" /> <file href="images/birdfeederskewed.gif" /> <file href="images/box-distort.gif" /> <file href="images/box-flip.gif" /> <file href="images/box-perspective.gif" /> <file href="images/box-rotate.gif" /> <file href="images/box-scale.gif" /> <file href="images/box-skew.gif" /> <file href="images/box.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/pssidebar.gif" /> <file href="images/transformCheck.gif" /> <file href="images/transformX.gif" /> </resource> <resource identifier="RESOURCE8" adlcp:scormtype="asset" type="webcontent" href="Lesson16.htm"> <file href="Lesson16.htm" /> <file href="images/DistortFlyOut.gif" /> <file href="images/EndOfLesson.gif" /> <file href="images/LessonTitle16.gif" /> <file href="images/distortfilters.gif" /> <file href="images/filters.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/pssidebar.gif" /> <file href="images/renderfilters.gif" /> </resource> <resource identifier="RESOURCE9" adlcp:scormtype="asset" type="webcontent" href="Lesson17.htm"> <file href="Lesson17.htm" /> <file href="images/EndOfLesson.gif" /> <file href="images/LayerStyleDialog.gif" /> <file href="images/LayerStyleIcon.gif" /> <file href="images/LessonTitle17.gif" /> <file href="images/SelectEffect1.gif" /> <file href="images/SelectEffect2.gif" /> <file href="images/TypingManColorOverlay.gif" /> <file href="images/TypingManFlat.gif" /> <file href="images/TypingManInnerBevel.gif" /> <file href="images/TypingManInnerBevelDropShad.gif" /> <file href="images/TypingManInnerGlow.gif" /> <file href="images/TypingManInnerShad.gif" /> <file href="images/TypingManOriginal.gif" /> <file href="images/TypingManOuterGlow.gif" /> <file href="images/TypingManOuterShadow.gif" /> <file href="images/TypingManPillowEmboss.gif" /> <file href="images/TypingManStroke.gif" /> <file href="images/bevebosslayer.gif" /> <file href="images/box.gif" /> <file href="images/dafmultipleeffects.jpg" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/layerstyles.gif" /> <file href="images/layerstylespalettebox.gif" /> <file href="images/pssidebar.gif" /> </resource> <resource identifier="RESOURCE10" adlcp:scormtype="asset" type="webcontent" href="Lesson18.htm"> <file href="Lesson18.htm" /> <file href="images/EndOfLesson.gif" /> <file href="images/LessonTitle18.gif" /> <file href="images/box.gif" /> <file href="images/daffbackground.jpg" /> <file href="images/dafopacity.jpg" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/layerbox.gif" /> <file href="images/pssidebar.gif" /> </resource> <resource identifier="RESOURCE11" adlcp:scormtype="asset" type="webcontent" href="Lesson19.htm"> <file href="Lesson19.htm" /> <file href="images/EndOfLesson.gif" /> <file href="images/LessonTitle19.gif" /> <file href="images/box.gif" /> <file href="images/colordefault.gif" /> <file href="images/colorpantone.jpg" /> <file href="images/colorpickerdialog.gif" /> <file href="images/colorpickerdialog1.jpg" /> <file href="images/colorswap.gif" /> <file href="images/colortoolbox.gif" /> <file href="images/droppericon.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/pssidebar.gif" /> <file href="images/toolbox.gif" /> </resource> <resource identifier="RESOURCE12" adlcp:scormtype="asset" type="webcontent" href="Lesson2.htm"> <file href="Lesson2.htm" /> <file href="images/EndOfLesson.gif" /> <file href="images/HandTool.gif" /> <file href="images/LessonTitle2.gif" /> <file href="images/ZoomToolIcon.gif" /> <file href="images/box.gif" /> <file href="images/colorselect.gif" /> <file href="images/enhancementtools.gif" /> <file href="images/eyedroppertool.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/navagationtools.gif" /> <file href="images/objecttools.gif" /> <file href="images/pssidebar.gif" /> <file href="images/selectiontools.gif" /> <file href="images/toolbox.gif" /> </resource> <resource identifier="RESOURCE13" adlcp:scormtype="asset" type="webcontent" href="Lesson20.htm"> <file href="Lesson20.htm" /> <file href="images/EndOfLesson.gif" /> <file href="images/LessonTitle20.gif" /> <file href="images/TypeOptionsBar.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/parapalette.gif" /> <file href="images/pssidebar.gif" /> <file href="images/typeCheck.gif" /> <file href="images/typeX.gif" /> <file href="images/typelayer.gif" /> <file href="images/typepalette.gif" /> <file href="images/typetool.gif" /> <file href="images/typetoolbig.gif" /> <file href="images/winterwonderland2.jpg" /> </resource> <resource identifier="RESOURCE14" adlcp:scormtype="asset" type="webcontent" href="Lesson21.htm"> <file href="Lesson21.htm" /> <file href="images/AirBrushToolIcon.gif" /> <file href="images/AirBrushToolIconBig.gif" /> <file href="images/AirbrushExample.gif" /> <file href="images/DRNichsbikes.gif" /> <file href="images/EndOfLesson.gif" /> <file href="images/LessonTitle21.gif" /> <file href="images/PaintBrushToolIcon.gif" /> <file href="images/PaintBrushToolIconBig.gif" /> <file href="images/PaintBucketExample.gif" /> <file href="images/PaintBucketToolIcon.gif" /> <file href="images/PaintBucketToolIconBig.gif" /> <file href="images/PaintbrushExample.gif" /> <file href="images/PencilExample.gif" /> <file href="images/PencilToolIcon.gif" /> <file href="images/PencilToolIconBig.gif" /> <file href="images/brushoptions.gif" /> <file href="images/brushselection2.gif" /> <file href="images/brushselection3.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/pssidebar.gif" /> </resource> <resource identifier="RESOURCE15" adlcp:scormtype="asset" type="webcontent" href="Lesson22.htm"> <file href="Lesson22.htm" /> <file href="images/CustomShapeOptions.gif" /> <file href="images/EndOfLesson.gif" /> <file href="images/LessonTitle22.gif" /> <file href="images/LineTool.gif" /> <file href="images/OvalTool.gif" /> <file href="images/PolygonTool.gif" /> <file href="images/RectangleTool.gif" /> <file href="images/RoundedRectangleTool.gif" /> <file href="images/VectorToolsSmall.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/pssidebar.gif" /> <file href="images/shapelayer.gif" /> <file href="images/shapelayercolor.gif" /> <file href="images/shapeoptions2.gif" /> <file href="images/snowbike.jpg" /> <file href="images/vectoroptionsbar.gif" /> </resource> <resource identifier="RESOURCE16" adlcp:scormtype="asset" type="webcontent" href="Lesson23.htm"> <file href="Lesson23.htm" /> <file href="images/AngularGradient.jpg" /> <file href="images/ColorBar.jpg" /> <file href="images/DiamondGradient.jpg" /> <file href="images/EndOfLesson.gif" /> <file href="images/GradientColorOptions.gif" /> <file href="images/GradientExample.jpg" /> <file href="images/GradientOptions.jpg" /> <file href="images/GradientStyleOptions.gif" /> <file href="images/GradientTool.gif" /> <file href="images/GradientToolIcon.gif" /> <file href="images/GradientToolIconBig.gif" /> <file href="images/LessonTitle23.gif" /> <file href="images/LinearGradientDiagonal2.jpg" /> <file href="images/LinearGradientHorizontal2.jpg" /> <file href="images/LinearGradientVertical2.jpg" /> <file href="images/RadialGradient.jpg" /> <file href="images/ReflectedGradient.jpg" /> <file href="images/angulartool.gif" /> <file href="images/diamondtool.gif" /> <file href="images/gradienteditor.gif" /> <file href="images/gradientpresets.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/lineartool.gif" /> <file href="images/pssidebar.gif" /> <file href="images/radialtool.gif" /> <file href="images/reflectedtool.gif" /> </resource> <resource identifier="RESOURCE17" adlcp:scormtype="asset" type="webcontent" href="Lesson3.htm"> <file href="Lesson3.htm" /> <file href="images/EndOfLesson.gif" /> <file href="images/LessonTitle3.gif" /> <file href="images/defaultpalettes.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/pssidebar.gif" /> </resource> <resource identifier="RESOURCE18" adlcp:scormtype="asset" type="webcontent" href="Lesson4.htm"> <file href="Lesson4.htm" /> <file href="images/37.gif" /> <file href="images/EndOfLesson.gif" /> <file href="images/LessonTitle4.gif" /> <file href="images/eyeicon.gif" /> <file href="images/flatlayers.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/layerarrows.gif" /> <file href="images/layers.gif" /> <file href="images/linkicon.gif" /> <file href="images/newlayericon.gif" /> <file href="images/paintbrush.gif" /> <file href="images/pssidebar.gif" /> </resource> <resource identifier="RESOURCE19" adlcp:scormtype="asset" type="webcontent" href="Lesson5.htm"> <file href="Lesson5.htm" /> <file href="images/EndOfLesson.gif" /> <file href="images/LessonTitle5.gif" /> <file href="images/allformats.gif" /> <file href="images/fileopen.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/pssidebar.gif" /> </resource> <resource identifier="RESOURCE20" adlcp:scormtype="asset" type="webcontent" href="Lesson6.htm"> <file href="Lesson6.htm" /> <file href="images/EndOfLesson.gif" /> <file href="images/LessonTitle6.gif" /> <file href="images/box.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/imagesizebox.gif" /> <file href="images/pssidebar.gif" /> </resource> <resource identifier="RESOURCE21" adlcp:scormtype="asset" type="webcontent" href="Lesson7.htm"> <file href="Lesson7.htm" /> <file href="images/EndOfLesson.gif" /> <file href="images/LessonTitle7.gif" /> <file href="images/Tree-and-DragonsGreen.jpg" /> <file href="images/Tree-and-Dragonsnot-Green.jpg" /> <file href="images/box.gif" /> <file href="images/colorbalancebox.gif" /> <file href="images/colorbalancemenu2.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/pssidebar.gif" /> </resource> <resource identifier="RESOURCE22" adlcp:scormtype="asset" type="webcontent" href="Lesson8.htm"> <file href="Lesson8.htm" /> <file href="images/EndOfLesson.gif" /> <file href="images/Jar-GateDark.jpg" /> <file href="images/Jar-GateLight.jpg" /> <file href="images/LessonTitle8.gif" /> <file href="images/box.gif" /> <file href="images/brightnesscontrastbox.gif" /> <file href="images/brightnesscontrastmenu.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/pssidebar.gif" /> </resource> <resource identifier="RESOURCE23" adlcp:scormtype="asset" type="webcontent" href="Lesson9.htm"> <file href="Lesson9.htm" /> <file href="images/Circular-GateDark.jpg" /> <file href="images/Circular-GateLight.jpg" /> <file href="images/EndOfLesson.gif" /> <file href="images/LessonTitle9.gif" /> <file href="images/box.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/huesaturationbox.gif" /> <file href="images/huesaturationmenu.gif" /> <file href="images/pssidebar.gif" /> </resource> <resource identifier="RESOURCE30" adlcp:scormtype="asset" type="webcontent" href="intro.htm"> <file href="intro.htm" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/pssidebar.gif" /> </resource> <resource identifier="QUESTION1" adlcp:scormtype="sco" type="webcontent" href="Question1.htm"> <file href="Question1.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION2" adlcp:scormtype="sco" type="webcontent" href="Question2.htm"> <file href="Question2.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION3" adlcp:scormtype="sco" type="webcontent" href="Question3.htm"> <file href="Question3.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION4" adlcp:scormtype="sco" type="webcontent" href="Question4.htm"> <file href="Question4.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION5" adlcp:scormtype="sco" type="webcontent" href="Question5.htm"> <file href="Question5.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION6" adlcp:scormtype="sco" type="webcontent" href="Question6.htm"> <file href="Question6.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION7" adlcp:scormtype="sco" type="webcontent" href="Question7.htm"> <file href="Question7.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION8" adlcp:scormtype="sco" type="webcontent" href="Question8.htm"> <file href="Question8.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION9" adlcp:scormtype="sco" type="webcontent" href="Question9.htm"> <file href="Question9.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION10" adlcp:scormtype="sco" type="webcontent" href="Question10.htm"> <file href="Question10.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION11" adlcp:scormtype="sco" type="webcontent" href="Question11.htm"> <file href="Question11.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION12" adlcp:scormtype="sco" type="webcontent" href="Question12.htm"> <file href="Question12.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION13" adlcp:scormtype="sco" type="webcontent" href="Question13.htm"> <file href="Question13.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION14" adlcp:scormtype="sco" type="webcontent" href="Question14.htm"> <file href="Question14.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION15" adlcp:scormtype="sco" type="webcontent" href="Question15.htm"> <file href="Question15.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION16" adlcp:scormtype="sco" type="webcontent" href="Question16.htm"> <file href="Question16.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION17" adlcp:scormtype="sco" type="webcontent" href="Question17.htm"> <file href="Question17.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION18" adlcp:scormtype="sco" type="webcontent" href="Question18.htm"> <file href="Question18.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION19" adlcp:scormtype="sco" type="webcontent" href="Question19.htm"> <file href="Question19.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION20" adlcp:scormtype="sco" type="webcontent" href="Question20.htm"> <file href="Question20.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION21" adlcp:scormtype="sco" type="webcontent" href="Question21.htm"> <file href="Question21.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION22" adlcp:scormtype="sco" type="webcontent" href="Question22.htm"> <file href="Question22.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION23" adlcp:scormtype="sco" type="webcontent" href="Question23.htm"> <file href="Question23.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION24" adlcp:scormtype="sco" type="webcontent" href="Question24.htm"> <file href="Question24.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION25" adlcp:scormtype="sco" type="webcontent" href="Question25.htm"> <file href="Question25.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> </resources> </manifest>
5.2 Photoshop - Data Mapping
Choice is not allowed anywhere in the content aggregation. The learner is directed from the introduction to a pre-test. The pre-test consists of one learning activity that assesses the learner's knowledge of the module's objectives. Upon completion of the pre-test, the results of the assessment are communicated to the sequencing system through a set of objectives, which are associated with the modules. The learner is then directed through any modules, in order, whose associated objective has not been 'satisfied'; 'satisfied' modules are skipped. The learner decides when to progress through the content and in what direction, by signaling continue and previous events. After the required modules are experienced, the learner is presented with a post-test that consists of all twenty-five questions divided into five question exams. The learner is only presented post-test parts that correspond to module objectives that have not been 'satisfied'; 'satisfied' modules are skipped. The learner 'satisfies' one part of the assessment if they get 80% of the questions correct; 'satisfying' a part of the assessment also 'satisfies' the associated module's objective. The content aggregation exits after the leaner has experienced or skipped each piece of content at least once.

This example illustrates data mapping. Note especially how the mapInfo element is used to specify learning objectives.
<?xml version="1.0" standalone="no" ?> <manifest identifier="photo-MANIFEST-datamap" version="1.2" xmlns="http://www.imsglobal.org/xsd/imscp_v1p1" xmlns:adlcp="http://www.adlnet.org/xsd/adlcp_v1p3" xmlns:imsss = "http://www.imsglobal.org/xsd/imsss" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.imsglobal.org/xsd/imscp_v1p1 imscp_v1p1p3.xsd http://www.imsglobal.org/xsd/imsmd_v1p2 imsmd_v1p2p2.xsd http://www.adlnet.org/xsd/adlcp_v1p3 adlcp_rootv1p3.xsd http://www.imsglobal.org/xsd/imsss imsss_v1p0.xsd" > <metadata> <schema>1EdTech Content</schema> <schemaversion>1.2</schemaversion> <lom xmlns="http://www.imsglobal.org/xsd/imsmd_v1p2" > <general> <title> <langstring xml:lang="en-US">Photoshop Tutorial</langstring> </title> <description> <langstring xml:lang="en-US">This tutorial provides you with an overview of the basic skills of Photoshop.</langstring> </description> <keyword> <langstring xml:lang="en-US">Blending Images, Enhancing Images, Special Effects, Basic Skills.</langstring> </keyword> </general> </lom> </metadata> <organizations default="TOC1"> <organization identifier="TOC1"> <title>Photoshop Tutorial</title> <item identifier="INTRO" identifierref="RESOURCE30"> <title>Photoshop Introduction</title> <imsss:sequencing> <imsss:rollupRules rollupObjectiveSatisfied="false"/> </imsss:sequencing> </item> <item identifier="PRETEST" identifierref="RESOURCE31"> <title>Pre Assessment</title> <imsss:sequencing> <imsss:rollupRules rollupObjectiveSatisfied="false"/> <imsss:objectives> <imsss:primaryObjective /> <imsss:objective objectiveID="obj_module_1"> <imsss:mapInfo targetObjectiveID="obj_module_1" readSatisfiedStatus="false" writeSatisfiedStatus="true" /> </imsss:objective> <imsss:objective objectiveID="obj_module_2"> <imsss:mapInfo targetObjectiveID="obj_module_2" readSatisfiedStatus="false" writeSatisfiedStatus="true" /> </imsss:objective> <imsss:objective objectiveID="obj_module_3"> <imsss:mapInfo targetObjectiveID="obj_module_3" readSatisfiedStatus="false" writeSatisfiedStatus="true" /> </imsss:objective> <imsss:objective objectiveID="obj_module_4"> <imsss:mapInfo targetObjectiveID="obj_module_4" readSatisfiedStatus="false" writeSatisfiedStatus="true" /> </imsss:objective> <imsss:objective objectiveID="obj_module_5"> <imsss:mapInfo targetObjectiveID="obj_module_5" readSatisfiedStatus="false" writeSatisfiedStatus="true" /> </imsss:objective> </imsss:objectives> </imsss:sequencing> </item> <item identifier="MODULE1"> <item identifier="ITEM1" identifierref="RESOURCE1"> <title>Photoshop Lesson 1</title> </item> <item identifier="ITEM12" identifierref="RESOURCE12"> <title>Photoshop Toolbox Lesson 2</title> </item> <item identifier="ITEM17" identifierref="RESOURCE17"> <title>Photoshop Palettes Lesson 3</title> </item> <item identifier="ITEM18" identifierref="RESOURCE18"> <title>Photoshop Layers Lesson 4</title> </item> <item identifier="ITEM19" identifierref="RESOURCE19"> <title>Photoshop File Types Lesson 5</title> </item> <item identifier="ITEM20" identifierref="RESOURCE20"> <title>Photoshop Resolution Lesson 6</title> </item> <imsss:sequencing> <imsss:controlMode choice="false" flow="true"/> <imsss:sequencingRules> <imsss:preConditionRule> <imsss:ruleConditions> <imsss:ruleCondition condition="satisfied"/> </imsss:ruleConditions> <imsss:ruleAction action="skip"/> </imsss:preConditionRule> </imsss:sequencingRules> <imsss:rollupRules rollupObjectiveSatisfied="false"/> <imsss:objectives> <imsss:primaryObjective> <imsss:mapInfo targetObjectiveID="obj_module_1"/> </imsss:primaryObjective> </imsss:objectives> </imsss:sequencing> </item> <item identifier="MODULE2"> <item identifier="ITEM21" identifierref="RESOURCE21"> <title>Photoshop Color Balance Lesson 7</title> </item> <item identifier="ITEM22" identifierref="RESOURCE22"> <title>Photoshop Brightness and Contrast Lesson 8</title> </item> <item identifier="ITEM23" identifierref="RESOURCE23"> <title>Photoshop Hue and Saturation Lesson 9</title> </item> <item identifier="ITEM2" identifierref="RESOURCE2"> <title>Photoshop Cropping Lesson 10</title> </item> <item identifier="ITEM3" identifierref="RESOURCE3"> <title>Photoshop Cloning Stamp Lesson 11</title> </item> <item identifier="ITEM4" identifierref="RESOURCE4"> <title>Photoshop Blurring, Sharpening and Smudging Lesson 12</title> </item> <item identifier="ITEM5" identifierref="RESOURCE5"> <title>Photoshop Burn, Dodge and Sponge Tools Lesson 13</title> </item> <imsss:sequencing> <imsss:controlMode choice="false" flow="true"/> <imsss:sequencingRules> <imsss:preConditionRule> <imsss:ruleConditions> <imsss:ruleCondition condition="satisfied"/> </imsss:ruleConditions> <imsss:ruleAction action="skip"/> </imsss:preConditionRule> </imsss:sequencingRules> <imsss:rollupRules rollupObjectiveSatisfied="false"/> <imsss:objectives> <imsss:primaryObjective> <imsss:mapInfo targetObjectiveID="obj_module_2"/> </imsss:primaryObjective> </imsss:objectives> </imsss:sequencing> </item> <item identifier="MODULE3"> <item identifier="ITEM6" identifierref="RESOURCE6"> <title>Photoshop Selection Tools Lesson 14</title> </item> <item identifier="ITEM7" identifierref="RESOURCE7"> <title>Photoshop Transforming Lesson 15</title> </item> <imsss:sequencing> <imsss:controlMode choice="false" flow="true"/> <imsss:sequencingRules> <imsss:preConditionRule> <imsss:ruleConditions> <imsss:ruleCondition condition="satisfied"/> </imsss:ruleConditions> <imsss:ruleAction action="skip"/> </imsss:preConditionRule> </imsss:sequencingRules> <imsss:rollupRules rollupObjectiveSatisfied="false"/> <imsss:objectives> <imsss:primaryObjective> <imsss:mapInfo targetObjectiveID="obj_module_3"/> </imsss:primaryObjective> </imsss:objectives> </imsss:sequencing> </item> <item identifier="MODULE4"> <item identifier="ITEM8" identifierref="RESOURCE8"> <title>Photoshop Filters Lesson 16</title> </item> <item identifier="ITEM9" identifierref="RESOURCE9"> <title>Photoshop Effects Lesson 17</title> </item> <item identifier="ITEM10" identifierref="RESOURCE10"> <title>Photoshop Opacity Lesson 18</title> </item> <imsss:sequencing> <imsss:controlMode choice="false" flow="true"/> <imsss:sequencingRules> <imsss:preConditionRule> <imsss:ruleConditions> <imsss:ruleCondition condition="satisfied"/> </imsss:ruleConditions> <imsss:ruleAction action="skip"/> </imsss:preConditionRule> </imsss:sequencingRules> <imsss:rollupRules rollupObjectiveSatisfied="false"/> <imsss:objectives> <imsss:primaryObjective> <imsss:mapInfo targetObjectiveID="obj_module_4"/> </imsss:primaryObjective> </imsss:objectives> </imsss:sequencing> </item> <item identifier="MODULE5"> <item identifier="ITEM11" identifierref="RESOURCE11"> <title>Photoshop Color Picker Lesson 19</title> </item> <item identifier="ITEM13" identifierref="RESOURCE13"> <title>Photoshop Type Tool Lesson 20</title> </item> <item identifier="ITEM14" identifierref="RESOURCE14"> <title>Photoshop Paint Tools Lesson 21</title> </item> <item identifier="ITEM15" identifierref="RESOURCE15"> <title>Photoshop Vector Tools Lesson 22</title> </item> <item identifier="ITEM16" identifierref="RESOURCE16"> <title>Photoshop Gradients Lesson 23</title> </item> <imsss:sequencing> <imsss:controlMode choice="false" flow="true"/> <imsss:sequencingRules> <imsss:preConditionRule> <imsss:ruleConditions> <imsss:ruleCondition condition="satisfied"/> </imsss:ruleConditions> <imsss:ruleAction action="skip"/> </imsss:preConditionRule> </imsss:sequencingRules> <imsss:rollupRules rollupObjectiveSatisfied="false"/> <imsss:objectives> <imsss:primaryObjective> <imsss:mapInfo targetObjectiveID="obj_module_5"/> </imsss:primaryObjective> </imsss:objectives> </imsss:sequencing> </item> <item identifier="POSTTEST"> <item identifier="PART1"> <item identifier="ITEM217" identifierref="QUESTION1"/> <item identifier="ITEM218" identifierref="QUESTION2"/> <item identifier="ITEM219" identifierref="QUESTION3"/> <item identifier="ITEM220" identifierref="QUESTION4"/> <item identifier="ITEM221" identifierref="QUESTION5"/> <imsss:sequencing> <imsss:controlMode choice="false" flow="true" forwardOnly="true"/> <imsss:sequencingRules> <imsss:preConditionRule> <imsss:ruleConditions> <imsss:ruleCondition condition="satisfied"/> </imsss:ruleConditions> <imsss:ruleAction action="skip"/> </imsss:preConditionRule> </imsss:sequencingRules> <imsss:rollupRules > <imsss:rollupRule childActivitySet="all"> <imsss:rollupCondition condition="attempted"/> <imsss:rollupAction action="completed"/> </imsss:rollupRule> </imsss:rollupRules> <imsss:objectives> <imsss:primaryObjective satisfiedByMeasure="true"> <imsss:minNormalizedMeasure>0.8</imsss:minNormalizedMeasure> <imsss:mapInfo targetObjectiveID="obj_module_1" writeSatisfiedStatus="true" /> </imsss:primaryObjective> </imsss:objectives> </imsss:sequencing> </item> <item identifier="PART2"> <item identifier="ITEM122" identifierref="QUESTION6"/> <item identifier="ITEM123" identifierref="QUESTION7"/> <item identifier="ITEM124" identifierref="QUESTION8"/> <item identifier="ITEM125" identifierref="QUESTION9"/> <item identifier="ITEM126" identifierref="QUESTION10"/> <imsss:sequencing> <imsss:controlMode choice="false" flow="true" forwardOnly="true"/> <imsss:sequencingRules> <imsss:preConditionRule> <imsss:ruleConditions> <imsss:ruleCondition condition="satisfied"/> </imsss:ruleConditions> <imsss:ruleAction action="skip"/> </imsss:preConditionRule> </imsss:sequencingRules> <imsss:rollupRules > <imsss:rollupRule childActivitySet="all"> <imsss:rollupCondition condition="attempted"/> <imsss:rollupAction action="completed"/> </imsss:rollupRule> </imsss:rollupRules> <imsss:objectives> <imsss:primaryObjective satisfiedByMeasure="true"> <imsss:minNormalizedMeasure>0.8</imsss:minNormalizedMeasure> <imsss:mapInfo targetObjectiveID="obj_module_2" writeSatisfiedStatus="true" /> </imsss:primaryObjective> </imsss:objectives> </imsss:sequencing> </item> <item identifier="PART3"> <item identifier="ITEM127" identifierref="QUESTION11"/> <item identifier="ITEM128" identifierref="QUESTION12"/> <item identifier="ITEM129" identifierref="QUESTION13"/> <item identifier="ITEM130" identifierref="QUESTION14"/> <item identifier="ITEM131" identifierref="QUESTION15"/> <imsss:sequencing> <imsss:controlMode choice="false" flow="true" forwardOnly="true"/> <imsss:sequencingRules> <imsss:preConditionRule> <imsss:ruleConditions> <imsss:ruleCondition condition="satisfied"/> </imsss:ruleConditions> <imsss:ruleAction action="skip"/> </imsss:preConditionRule> </imsss:sequencingRules> <imsss:rollupRules > <imsss:rollupRule childActivitySet="all"> <imsss:rollupCondition condition="attempted"/> <imsss:rollupAction action="completed"/> </imsss:rollupRule> </imsss:rollupRules> <imsss:objectives> <imsss:primaryObjective satisfiedByMeasure="true"> <imsss:minNormalizedMeasure>0.8</imsss:minNormalizedMeasure> <imsss:mapInfo targetObjectiveID="obj_module_3" writeSatisfiedStatus="true" /> </imsss:primaryObjective> </imsss:objectives> </imsss:sequencing> </item> <item identifier="PART4"> <item identifier="ITEM132" identifierref="QUESTION16"/> <item identifier="ITEM133" identifierref="QUESTION17"/> <item identifier="ITEM134" identifierref="QUESTION18"/> <item identifier="ITEM135" identifierref="QUESTION19"/> <item identifier="ITEM136" identifierref="QUESTION20"/> <imsss:sequencing> <imsss:controlMode choice="false" flow="true" forwardOnly="true"/> <imsss:sequencingRules> <imsss:preConditionRule> <imsss:ruleConditions> <imsss:ruleCondition condition="satisfied"/> </imsss:ruleConditions> <imsss:ruleAction action="skip"/> </imsss:preConditionRule> </imsss:sequencingRules> <imsss:rollupRules > <imsss:rollupRule childActivitySet="all"> <imsss:rollupCondition condition="attempted"/> <imsss:rollupAction action="completed"/> </imsss:rollupRule> </imsss:rollupRules> <imsss:objectives> <imsss:primaryObjective satisfiedByMeasure="true"> <imsss:minNormalizedMeasure>0.8</imsss:minNormalizedMeasure> <imsss:mapInfo targetObjectiveID="obj_module_4" writeSatisfiedStatus="true" /> </imsss:primaryObjective> </imsss:objectives> </imsss:sequencing> </item> <item identifier="PART5"> <item identifier="ITEM137" identifierref="QUESTION21"/> <item identifier="ITEM138" identifierref="QUESTION22"/> <item identifier="ITEM139" identifierref="QUESTION23"/> <item identifier="ITEM100" identifierref="QUESTION24"/> <item identifier="ITEM101" identifierref="QUESTION25"/> <imsss:sequencing> <imsss:controlMode choice="false" flow="true" forwardOnly="true"/> <imsss:sequencingRules> <imsss:preConditionRule> <imsss:ruleConditions> <imsss:ruleCondition condition="satisfied"/> </imsss:ruleConditions> <imsss:ruleAction action="skip"/> </imsss:preConditionRule> </imsss:sequencingRules> <imsss:rollupRules > <imsss:rollupRule childActivitySet="all"> <imsss:rollupCondition condition="attempted"/> <imsss:rollupAction action="completed"/> </imsss:rollupRule> </imsss:rollupRules> <imsss:objectives> <imsss:primaryObjective satisfiedByMeasure="true"> <imsss:minNormalizedMeasure>0.8</imsss:minNormalizedMeasure> <imsss:mapInfo targetObjectiveID="obj_module_5" writeSatisfiedStatus="true" /> </imsss:primaryObjective> </imsss:objectives> </imsss:sequencing> </item> <imsss:sequencing> <imsss:controlMode choice="false" flow="true" forwardOnly="true"/> </imsss:sequencing> </item> <imsss:sequencing> <imsss:controlMode choice="false" flow="true" forwardOnly="true"/> <imsss:sequencingRules> <imsss:exitConditionRule> <imsss:ruleConditions> <imsss:ruleCondition condition="completed"/> </imsss:ruleConditions> <imsss:ruleAction action="exit"/> </imsss:exitConditionRule> </imsss:sequencingRules> <imsss:rollupRules > <imsss:rollupRule childActivitySet="all"> <imsss:rollupCondition condition="satisfied"/> <imsss:rollupAction action="satisfied"/> </imsss:rollupRule> <imsss:rollupRule childActivitySet="any"> <imsss:rollupCondition operator ="not" condition="satisfied"/> <imsss:rollupAction action="notSatisfied"/> </imsss:rollupRule> </imsss:rollupRules> </imsss:sequencing> </organization> </organizations> <resources> <resource identifier="RESOURCE1" adlcp:scormtype="asset" type="webcontent" href="Lesson1.htm"> <file href="Lesson1.htm" /> <file href="images/EndOfLesson.gif" /> <file href="images/LessonTitle1.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/interfacesmall.jpg" /> <file href="images/pssidebar.gif" /> </resource> <resource identifier="RESOURCE2" adlcp:scormtype="asset" type="webcontent" href="Lesson10.htm"> <file href="Lesson10.htm" /> <file href="images/EndOfLesson.gif" /> <file href="images/Joule-window5.jpg" /> <file href="images/LessonTitle10.gif" /> <file href="images/cropiconbig.gif" /> <file href="images/cropmarks.jpg" /> <file href="images/cropped.jpg" /> <file href="images/croptool.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/pssidebar.gif" /> </resource> <resource identifier="RESOURCE3" adlcp:scormtype="asset" type="webcontent" href="Lesson11.htm"> <file href="Lesson11.htm" /> <file href="images/11.gif" /> <file href="images/CloneBrushSelect.gif" /> <file href="images/CloneCrosshairs.gif" /> <file href="images/EndOfLesson.gif" /> <file href="images/Iowa-roadcloned.jpg" /> <file href="images/Iowa-roadnotcloned.jpg" /> <file href="images/LessonTitle11.gif" /> <file href="images/cloneiconbig.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/pssidebar.gif" /> </resource> <resource identifier="RESOURCE4" adlcp:scormtype="asset" type="webcontent" href="Lesson12.htm"> <file href="Lesson12.htm" /> <file href="images/BSSBrushSelect.gif" /> <file href="images/BSSTool.gif" /> <file href="images/BlurIconBig.gif" /> <file href="images/EndOfLesson.gif" /> <file href="images/LessonTitle12.gif" /> <file href="images/Oriental-TreeEnhanced.jpg" /> <file href="images/Oriental-TreeOriginal.jpg" /> <file href="images/Pressure.gif" /> <file href="images/SharpenIconBig.gif" /> <file href="images/SmudgeIconBig.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/pssidebar.gif" /> </resource> <resource identifier="RESOURCE5" adlcp:scormtype="asset" type="webcontent" href="Lesson13.htm"> <file href="Lesson13.htm" /> <file href="images/BDSBrushSelect.gif" /> <file href="images/BDSTool.gif" /> <file href="images/BurnBar.gif" /> <file href="images/Circular-Gatenowindow.jpg" /> <file href="images/Circular-Gatewindow.jpg" /> <file href="images/DodgeBar.gif" /> <file href="images/EndOfLesson.gif" /> <file href="images/LessonTitle13.gif" /> <file href="images/Mode.gif" /> <file href="images/Pressure.gif" /> <file href="images/Range.gif" /> <file href="images/SpongeBar.gif" /> <file href="images/burniconbig.gif" /> <file href="images/dodgeiconbig.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/pssidebar.gif" /> <file href="images/spongeiconbig.gif" /> </resource> <resource identifier="RESOURCE6" adlcp:scormtype="asset" type="webcontent" href="Lesson14.htm"> <file href="Lesson14.htm" /> <file href="images/Addition.gif" /> <file href="images/EndOfLesson.gif" /> <file href="images/IntersectionIcon.gif" /> <file href="images/LessonTitle14.gif" /> <file href="images/MagicWandBar.gif" /> <file href="images/MagicWandIcon.gif" /> <file href="images/Selection.gif" /> <file href="images/SubtractionIcon.gif" /> <file href="images/addtosubtractfromselection.gif" /> <file href="images/dafbackground.jpg" /> <file href="images/dafmagicselect.jpg" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/lassotools.gif" /> <file href="images/marqueetools.gif" /> <file href="images/originaldaf.jpg" /> <file href="images/pssidebar.gif" /> <file href="images/selectiontools.gif" /> <file href="images/singledafselection.jpg" /> </resource> <resource identifier="RESOURCE7" adlcp:scormtype="asset" type="webcontent" href="Lesson15.htm"> <file href="Lesson15.htm" /> <file href="images/EndOfLesson.gif" /> <file href="images/LessonTitle15.gif" /> <file href="images/TransformFlyout.gif" /> <file href="images/birdfeeder.jpg" /> <file href="images/birdfeederdistort.gif" /> <file href="images/birdfeederflip.gif" /> <file href="images/birdfeederperspective.gif" /> <file href="images/birdfeederrotated.jpg" /> <file href="images/birdfeederscaled.jpg" /> <file href="images/birdfeederskewed.gif" /> <file href="images/box-distort.gif" /> <file href="images/box-flip.gif" /> <file href="images/box-perspective.gif" /> <file href="images/box-rotate.gif" /> <file href="images/box-scale.gif" /> <file href="images/box-skew.gif" /> <file href="images/box.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/pssidebar.gif" /> <file href="images/transformCheck.gif" /> <file href="images/transformX.gif" /> </resource> <resource identifier="RESOURCE8" adlcp:scormtype="asset" type="webcontent" href="Lesson16.htm"> <file href="Lesson16.htm" /> <file href="images/DistortFlyOut.gif" /> <file href="images/EndOfLesson.gif" /> <file href="images/LessonTitle16.gif" /> <file href="images/distortfilters.gif" /> <file href="images/filters.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/pssidebar.gif" /> <file href="images/renderfilters.gif" /> </resource> <resource identifier="RESOURCE9" adlcp:scormtype="asset" type="webcontent" href="Lesson17.htm"> <file href="Lesson17.htm" /> <file href="images/EndOfLesson.gif" /> <file href="images/LayerStyleDialog.gif" /> <file href="images/LayerStyleIcon.gif" /> <file href="images/LessonTitle17.gif" /> <file href="images/SelectEffect1.gif" /> <file href="images/SelectEffect2.gif" /> <file href="images/TypingManColorOverlay.gif" /> <file href="images/TypingManFlat.gif" /> <file href="images/TypingManInnerBevel.gif" /> <file href="images/TypingManInnerBevelDropShad.gif" /> <file href="images/TypingManInnerGlow.gif" /> <file href="images/TypingManInnerShad.gif" /> <file href="images/TypingManOriginal.gif" /> <file href="images/TypingManOuterGlow.gif" /> <file href="images/TypingManOuterShadow.gif" /> <file href="images/TypingManPillowEmboss.gif" /> <file href="images/TypingManStroke.gif" /> <file href="images/bevebosslayer.gif" /> <file href="images/box.gif" /> <file href="images/dafmultipleeffects.jpg" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/layerstyles.gif" /> <file href="images/layerstylespalettebox.gif" /> <file href="images/pssidebar.gif" /> </resource> <resource identifier="RESOURCE10" adlcp:scormtype="asset" type="webcontent" href="Lesson18.htm"> <file href="Lesson18.htm" /> <file href="images/EndOfLesson.gif" /> <file href="images/LessonTitle18.gif" /> <file href="images/box.gif" /> <file href="images/daffbackground.jpg" /> <file href="images/dafopacity.jpg" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/layerbox.gif" /> <file href="images/pssidebar.gif" /> </resource> <resource identifier="RESOURCE11" adlcp:scormtype="asset" type="webcontent" href="Lesson19.htm"> <file href="Lesson19.htm" /> <file href="images/EndOfLesson.gif" /> <file href="images/LessonTitle19.gif" /> <file href="images/box.gif" /> <file href="images/colordefault.gif" /> <file href="images/colorpantone.jpg" /> <file href="images/colorpickerdialog.gif" /> <file href="images/colorpickerdialog1.jpg" /> <file href="images/colorswap.gif" /> <file href="images/colortoolbox.gif" /> <file href="images/droppericon.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/pssidebar.gif" /> <file href="images/toolbox.gif" /> </resource> <resource identifier="RESOURCE12" adlcp:scormtype="asset" type="webcontent" href="Lesson2.htm"> <file href="Lesson2.htm" /> <file href="images/EndOfLesson.gif" /> <file href="images/HandTool.gif" /> <file href="images/LessonTitle2.gif" /> <file href="images/ZoomToolIcon.gif" /> <file href="images/box.gif" /> <file href="images/colorselect.gif" /> <file href="images/enhancementtools.gif" /> <file href="images/eyedroppertool.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/navagationtools.gif" /> <file href="images/objecttools.gif" /> <file href="images/pssidebar.gif" /> <file href="images/selectiontools.gif" /> <file href="images/toolbox.gif" /> </resource> <resource identifier="RESOURCE13" adlcp:scormtype="asset" type="webcontent" href="Lesson20.htm"> <file href="Lesson20.htm" /> <file href="images/EndOfLesson.gif" /> <file href="images/LessonTitle20.gif" /> <file href="images/TypeOptionsBar.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/parapalette.gif" /> <file href="images/pssidebar.gif" /> <file href="images/typeCheck.gif" /> <file href="images/typeX.gif" /> <file href="images/typelayer.gif" /> <file href="images/typepalette.gif" /> <file href="images/typetool.gif" /> <file href="images/typetoolbig.gif" /> <file href="images/winterwonderland2.jpg" /> </resource> <resource identifier="RESOURCE14" adlcp:scormtype="asset" type="webcontent" href="Lesson21.htm"> <file href="Lesson21.htm" /> <file href="images/AirBrushToolIcon.gif" /> <file href="images/AirBrushToolIconBig.gif" /> <file href="images/AirbrushExample.gif" /> <file href="images/DRNichsbikes.gif" /> <file href="images/EndOfLesson.gif" /> <file href="images/LessonTitle21.gif" /> <file href="images/PaintBrushToolIcon.gif" /> <file href="images/PaintBrushToolIconBig.gif" /> <file href="images/PaintBucketExample.gif" /> <file href="images/PaintBucketToolIcon.gif" /> <file href="images/PaintBucketToolIconBig.gif" /> <file href="images/PaintbrushExample.gif" /> <file href="images/PencilExample.gif" /> <file href="images/PencilToolIcon.gif" /> <file href="images/PencilToolIconBig.gif" /> <file href="images/brushoptions.gif" /> <file href="images/brushselection2.gif" /> <file href="images/brushselection3.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/pssidebar.gif" /> </resource> <resource identifier="RESOURCE15" adlcp:scormtype="asset" type="webcontent" href="Lesson22.htm"> <file href="Lesson22.htm" /> <file href="images/CustomShapeOptions.gif" /> <file href="images/EndOfLesson.gif" /> <file href="images/LessonTitle22.gif" /> <file href="images/LineTool.gif" /> <file href="images/OvalTool.gif" /> <file href="images/PolygonTool.gif" /> <file href="images/RectangleTool.gif" /> <file href="images/RoundedRectangleTool.gif" /> <file href="images/VectorToolsSmall.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/pssidebar.gif" /> <file href="images/shapelayer.gif" /> <file href="images/shapelayercolor.gif" /> <file href="images/shapeoptions2.gif" /> <file href="images/snowbike.jpg" /> <file href="images/vectoroptionsbar.gif" /> </resource> <resource identifier="RESOURCE16" adlcp:scormtype="asset" type="webcontent" href="Lesson23.htm"> <file href="Lesson23.htm" /> <file href="images/AngularGradient.jpg" /> <file href="images/ColorBar.jpg" /> <file href="images/DiamondGradient.jpg" /> <file href="images/EndOfLesson.gif" /> <file href="images/GradientColorOptions.gif" /> <file href="images/GradientExample.jpg" /> <file href="images/GradientOptions.jpg" /> <file href="images/GradientStyleOptions.gif" /> <file href="images/GradientTool.gif" /> <file href="images/GradientToolIcon.gif" /> <file href="images/GradientToolIconBig.gif" /> <file href="images/LessonTitle23.gif" /> <file href="images/LinearGradientDiagonal2.jpg" /> <file href="images/LinearGradientHorizontal2.jpg" /> <file href="images/LinearGradientVertical2.jpg" /> <file href="images/RadialGradient.jpg" /> <file href="images/ReflectedGradient.jpg" /> <file href="images/angulartool.gif" /> <file href="images/diamondtool.gif" /> <file href="images/gradienteditor.gif" /> <file href="images/gradientpresets.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/lineartool.gif" /> <file href="images/pssidebar.gif" /> <file href="images/radialtool.gif" /> <file href="images/reflectedtool.gif" /> </resource> <resource identifier="RESOURCE17" adlcp:scormtype="asset" type="webcontent" href="Lesson3.htm"> <file href="Lesson3.htm" /> <file href="images/EndOfLesson.gif" /> <file href="images/LessonTitle3.gif" /> <file href="images/defaultpalettes.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/pssidebar.gif" /> </resource> <resource identifier="RESOURCE18" adlcp:scormtype="asset" type="webcontent" href="Lesson4.htm"> <file href="Lesson4.htm" /> <file href="images/37.gif" /> <file href="images/EndOfLesson.gif" /> <file href="images/LessonTitle4.gif" /> <file href="images/eyeicon.gif" /> <file href="images/flatlayers.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/layerarrows.gif" /> <file href="images/layers.gif" /> <file href="images/linkicon.gif" /> <file href="images/newlayericon.gif" /> <file href="images/paintbrush.gif" /> <file href="images/pssidebar.gif" /> </resource> <resource identifier="RESOURCE19" adlcp:scormtype="asset" type="webcontent" href="Lesson5.htm"> <file href="Lesson5.htm" /> <file href="images/EndOfLesson.gif" /> <file href="images/LessonTitle5.gif" /> <file href="images/allformats.gif" /> <file href="images/fileopen.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/pssidebar.gif" /> </resource> <resource identifier="RESOURCE20" adlcp:scormtype="asset" type="webcontent" href="Lesson6.htm"> <file href="Lesson6.htm" /> <file href="images/EndOfLesson.gif" /> <file href="images/LessonTitle6.gif" /> <file href="images/box.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/imagesizebox.gif" /> <file href="images/pssidebar.gif" /> </resource> <resource identifier="RESOURCE21" adlcp:scormtype="asset" type="webcontent" href="Lesson7.htm"> <file href="Lesson7.htm" /> <file href="images/EndOfLesson.gif" /> <file href="images/LessonTitle7.gif" /> <file href="images/Tree-and-DragonsGreen.jpg" /> <file href="images/Tree-and-Dragonsnot-Green.jpg" /> <file href="images/box.gif" /> <file href="images/colorbalancebox.gif" /> <file href="images/colorbalancemenu2.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/pssidebar.gif" /> </resource> <resource identifier="RESOURCE22" adlcp:scormtype="asset" type="webcontent" href="Lesson8.htm"> <file href="Lesson8.htm" /> <file href="images/EndOfLesson.gif" /> <file href="images/Jar-GateDark.jpg" /> <file href="images/Jar-GateLight.jpg" /> <file href="images/LessonTitle8.gif" /> <file href="images/box.gif" /> <file href="images/brightnesscontrastbox.gif" /> <file href="images/brightnesscontrastmenu.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/pssidebar.gif" /> </resource> <resource identifier="RESOURCE23" adlcp:scormtype="asset" type="webcontent" href="Lesson9.htm"> <file href="Lesson9.htm" /> <file href="images/Circular-GateDark.jpg" /> <file href="images/Circular-GateLight.jpg" /> <file href="images/EndOfLesson.gif" /> <file href="images/LessonTitle9.gif" /> <file href="images/box.gif" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/huesaturationbox.gif" /> <file href="images/huesaturationmenu.gif" /> <file href="images/pssidebar.gif" /> </resource> <resource identifier="RESOURCE30" adlcp:scormtype="asset" type="webcontent" href="intro.htm"> <file href="intro.htm" /> <file href="images/headerside.gif" /> <file href="images/headertop.gif" /> <file href="images/pssidebar.gif" /> </resource> <resource identifier="RESOURCE31" adlcp:scormtype="sco" type="webcontent" href="Exam.htm"> <file href="Exam.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION1" adlcp:scormtype="sco" type="webcontent" href="Question1.htm"> <file href="Question1.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION2" adlcp:scormtype="sco" type="webcontent" href="Question2.htm"> <file href="Question2.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION3" adlcp:scormtype="sco" type="webcontent" href="Question3.htm"> <file href="Question3.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION4" adlcp:scormtype="sco" type="webcontent" href="Question4.htm"> <file href="Question4.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION5" adlcp:scormtype="sco" type="webcontent" href="Question5.htm"> <file href="Question5.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION6" adlcp:scormtype="sco" type="webcontent" href="Question6.htm"> <file href="Question6.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION7" adlcp:scormtype="sco" type="webcontent" href="Question7.htm"> <file href="Question7.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION8" adlcp:scormtype="sco" type="webcontent" href="Question8.htm"> <file href="Question8.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION9" adlcp:scormtype="sco" type="webcontent" href="Question9.htm"> <file href="Question9.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION10" adlcp:scormtype="sco" type="webcontent" href="Question10.htm"> <file href="Question10.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION11" adlcp:scormtype="sco" type="webcontent" href="Question11.htm"> <file href="Question11.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION12" adlcp:scormtype="sco" type="webcontent" href="Question12.htm"> <file href="Question12.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION13" adlcp:scormtype="sco" type="webcontent" href="Question13.htm"> <file href="Question13.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION14" adlcp:scormtype="sco" type="webcontent" href="Question14.htm"> <file href="Question14.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION15" adlcp:scormtype="sco" type="webcontent" href="Question15.htm"> <file href="Question15.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION16" adlcp:scormtype="sco" type="webcontent" href="Question16.htm"> <file href="Question16.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION17" adlcp:scormtype="sco" type="webcontent" href="Question17.htm"> <file href="Question17.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION18" adlcp:scormtype="sco" type="webcontent" href="Question18.htm"> <file href="Question18.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION19" adlcp:scormtype="sco" type="webcontent" href="Question19.htm"> <file href="Question19.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION20" adlcp:scormtype="sco" type="webcontent" href="Question20.htm"> <file href="Question20.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION21" adlcp:scormtype="sco" type="webcontent" href="Question21.htm"> <file href="Question21.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION22" adlcp:scormtype="sco" type="webcontent" href="Question22.htm"> <file href="Question22.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION23" adlcp:scormtype="sco" type="webcontent" href="Question23.htm"> <file href="Question23.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION24" adlcp:scormtype="sco" type="webcontent" href="Question24.htm"> <file href="Question24.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> <resource identifier="QUESTION25" adlcp:scormtype="sco" type="webcontent" href="Question25.htm"> <file href="Question25.htm" /> <file href="util/APIWrapper.js" /> <file href="util/SCOFunctions.js" /> </resource> </resources> </manifest>
6. Interaction with Content Packaging
6.1 Content Aggregation
Each <organization> element in the content package is a content aggregation. It represents the root of an activity tree - it is also an activity. Each <item> element in the <organization> and the <organization> itself, represent an activity. Only leaf activities (<item>s) will have associated learning resources that may be delivered as a result of sequencing

6.2 Activity Tree
The hierarchical structure defined in an <organization> element is used to build a sequencing activity tree. Since LMS sequencing behavior is described in terms of traversing the nodes of the tree, it can be used to determine which activity to deliver to the learner at any given point in the learning experience. Each node in this tree is an activity and can be aggregated into larger structures (modules, courses, etc.). There is a default traversal path that can be modified through the association of sequencing rules by a learning designer. Traversal is triggered by a sequencing request, which is triggered by the learner through navigation events or by the delivery system. Sequencing rules are evaluated at runtime and can be conditional based on tracking status. Activities are to be delivered one at a time. Auxiliary resources can be associated with activities.
The diagram in Figure 6.2 shows a simple activity tree illustrating how items can be organized to aggregate learning activities.

6.3 Example of Embedded Sequencing Information
This is an example showing how sequencing information is embedded in an item to describe a rollup rule and objectives associated with a pre-test.
<item identifier="PRETEST2"> <title>Module #2 Pretest</title> <item identifier="ITEM45" identifierref="QUESTION6"/> <item identifier="ITEM46" identifierref="QUESTION7"/> <item identifier="ITEM47" identifierref="QUESTION8"/> <item identifier="ITEM48" identifierref="QUESTION9"/> <item identifier="ITEM49" identifierref="QUESTION10"/> <imsss:sequencing> <imsss:controlMode choice="false" flow="true" forwardOnly="true"/> <imsss:rollupRules > <imsss:rollupRule childActivitySet="all"> <imsss:rollupCondition condition="attempted"/> <imsss:rollupAction action="completed"/> </imsss:rollupRule> </imsss:rollupRules> <imsss:objectives> <imsss:primaryObjective satisfiedByMeasure="true"> <imsss:minNormalizedMeasure>0.8</imsss:minNormalizedMeasure> <imsss:mapInfo targetObjectiveID="obj_module_2" readSatisfiedStatus="false" writeSatisfiedStatus="true" /> </imsss:primaryObjective> </imsss:objectives> </imsss:sequencing> </item>
7. Runtime Implementation
All implementations of the 1EdTech Simple Sequencing Specification are likely to share certain kinds of system behavior. As a learner interacts with activities, they are tracked and the sequencing engine will determine what activities are available next. Roughly, this defines a sequencing loop.
7.1 The Sequencing Loop
The sequencing loop describes how the sequencing process is invoked, what happens during the sequencing process and the potential outputs of the process. The sequencing loop only applies to the activity tree. It does not place any requirements or constraints on delivered content or runtime behavior of content. The runtime environment is free to invoke the sequencing loop at any time by issuing a navigation request. Once the sequencing loop is invoked, any running content must be forced to exit. This ensures that state information is accurately used by the sequencing processes. The diagram in Figure 7.1 shows the sequencing loop.

The system waits for a navigation event, which is translated into a navigation request and passed to the Overall Sequencing Process. This process acts as the process control by invoking various sequencing processes. Navigation Behavior acts on the Navigation Request and results in Exit and Sequencing Requests. Exit Behavior acts on any pending Exit Request and results in a Sequencing Request. Sequencing Behavior acts on any pending Sequencing Request and may result in a Delivery Request. Delivery Behavior acts on any pending Delivery Request and may result in the delivery of some activity to the learner. More detail follows.
7.1.1 Navigation Behavior
The Navigation Behavior process validates the incoming navigation request. This ensures that only requests that have the potential to succeed are processed. If the Current Activity is 'active', it issues an Exit Request. Sequencing Requests can only be processed if there is no 'Active' leaf activity. This is required to ensure that state of the activity tree reflects the most current available information during processing. With these checks out of the way, the appropriate Sequencing Request is issued.
7.1.2 Exit Behavior
The Exit Behavior process ends the current attempt the Current Activity and possibly some of its ancestors. It then ensures that the state of the activity tree reflects the most current information. It's very important that the state of the activity tree be completely current before processing continues. The Completion Subprocess allows learning resources to communicate learner status (if they are able to), the Rollup Process propagates status information from child activities through parents by evaluating Rollup Rules, and the Exit Action Rule Subprocess determines if an ancestor of the Current Activity exits. Post condition rules are evaluated on the 'exited' activity that may result in a Sequencing Request.
7.1.3 Rollup Rules
The Rollup Rules process causes information to be percolated up the activity tree from lower levels. A parent activity's objective and progress status are determined by its children. Rollup Rules can be applied to a parent activity that determines the conditions for objective and progress status are: Satisfied, Not Satisfied, Completed, or Incomplete.

In Figure 7.2, lessons 5 and 4 have been satisfied, but lesson 6 has not. Module B has a rollup rule that indicates if any lesson in it is satisfied, then the module is satisfied. Similarly, the course has a rule that says all modules must be satisfied and the course is not satisfied until all modules are.
7.1.4 Sequencing Behavior
The Sequencing Behavior process handles the processing of all Sequencing Requests. Sequencing Requests consist of Start, Resume All, Continue, Previous, Choice, Retry, or Exit requests. The process begins at the Current Activity or the root of the activity tree (if the sequencing process has not begun yet). An activity considered for during the processing of a Sequencing Request is called the 'Candidate Activity'. Limit Conditions and Precondition Rules affect which activities can be considered the 'Candidate Activity'. The result of processing a Sequencing Request may identify a leaf activity as a candidate for delivery - this is a Delivery Request.
7.1.5 Delivery Behavior
The Delivery Behavior process validates the candidate leaf activity for delivery. If the candidate is valid, it will begin the attempt on the activity, initialized tracking information for the activity, and ensure the activity tree is in a consistent state. These actions are internal to the sequencing engine. It identifies the activity to be delivered and any of its ancillary resources to the runtime system and hands control back to the runtime system. The runtime system attempts to deliver the learning resource and the sequencing engine waits for the next navigation request.
8. Best Practice Recommendations
8.1 Status Information Model
A Learning Technology System implementation should also implement the status tracking data model as it is defined in the Simple Sequencing Specification because proper interpretation of conditional rules may depend on the values of those specific data elements. Future specifications and application profiles that build on the Simple Sequencing Specification are also likely to assume the existence of these data elements.
Each activity in the activity tree has a status associated with it which indicates that the activity is active or suspended. The activity may also have a list of available child activities.
Two pieces of global status information are defined. The current activity is the activity currently in use by the user. The suspended activity indicates the activity from which a Suspend All navigation request was triggered.
8.2 Behavior Model
The behavior model consists of specific events and the behavior that must result from handling these events. The handling of events can be complex, and therefore the specification documents the handling of events through pseudo code. The pseudo code is not normative; in other words, an implementation does not have to be coded exactly according to the pseudo code. But a runtime service that delivers Simple Sequencing conformant content must behave as if it was coded that way, which means that the visible results of handling the events defined by Simple Sequencing must be the same. The effect of evaluating rules and directives must be the same, and the effect of status tracking information on the evaluation of rules specified in the content must be the same.
8.3 Data Types, Multiplicities, and Obligations
The following data types used in this specification are:
8.4 Binding of Simple Sequencing Information
The XML binding is intended to extend the CP binding by defining a namespace that can be referenced in a Content Packaging manifest. Simple Sequencing information can then be woven into the Content Packaging manifest as elements that use the Simple Sequencing namespace.
The only part of a manifest that contains Simple Sequencing information is within the <organizations> element of the manifest.
The sequencingRef element is used to refer to definitions of sequencing behavior that are defined elsewhere (see sequencingCollection below). Note that this reference must be used to refer to a single group of sequencing definition elements as a single whole; there is no facility to override or extend sequencing behaviors referred to in this manner.
The sequencingCollection element is used to hold elements so that they can be referred to from other places in the activity structure. As a best practice, each content aggregation should use only one sequencingCollection element, and should only use the IDref facility to reference sequencing elements that are contained in the sequencingCollection.
Note: All top-level elements of the binding are optional. If your collection does not define behavior that differs from the defaults, feel free to omit the top-level elements in your instances.
8.5 Data Collection and Updating Best Practices
8.5.1 Data Updates
The implementation must ensure that data is updated in the proper sequence. For example, the value of Objective Data Status should not be set to True until there is a value of Objective Satisfied Status. Reversing the order of assignment of these two values could result in a situation where an accessor uses a True value of Objective Data Status to determine if it can access Objective Satisfied Status, and then accesses Objective Satisfied Status before the second value assignment is complete. Implementing proper transactional controls are left to the implementation.
8.6 Rule Evaluation Best Practices
8.6.1 Order of Evaluation
There are no constraints on the order in which the limit conditions or precondition sequencing rules are applied.
There is no requirement that the constraint checking processes identify that multiple limits and preconditions are violated. There is no restriction that the constraint checking processes stop after finding the first constraint that is violated.
Rule processors should use short circuit evaluation techniques when determining if the rule conditions are true. For example, assume an And rule contains a condition on both Objective Progress Status and Activity Progress Status. If the Objective Progress Status evaluates to False, the condition on the value of Activity Progress Status should not be. The rule processor may reorder conditions to enable short circuit evaluation. However, short circuit evaluation is not required, as the default values insure that the same sequencing behaviors will result whether short circuit evaluation is used or not.
8.6.2 Optimizations
An implementation may use a general rule representation and encode the specific sequencing rules as instances of the more general representation.
An implementation may short circuit the validation of a delivery request if both the sequencing and delivery processes are part of a single monolithic process. Such a short circuit elimination of the validation of the delivery request should only be used if the system can insure that none of tracking data used in the rule condition or limit conditions has changed from when the delivery request was generated to when the request for delivery was actually initiated.
8.7 Activity Tree Traversal
The traversal of the activity tree for flow navigation and for rule evaluation is specified as preorder traversal. See Conceptual Model, section 3.1.3 for more information.
8.8 Handling of Tracking Data Best Practices
The implementation must ensure that data values are consistent when being accessed, i.e., the values of the set of activities that participate in a child set must be consistent while the entire set of rules applied during navigation are evaluated. Implementing proper transactional controls are left to the implementation.
Processes use data values from the sequencing definition model. Each attribute of the model has a value or inherits the value of the parent activity as specified in the sequencing definition model. In addition, there is a defined default value for each attribute. Processes that access data must access the proper value, i.e., the value of the attribute for the activity or the value for the parent if the data does not exist and is inherited. The implementation may fully instantiate the activity tree with values or provide an inheritance mechanism, either in the data model itself or as part of the sequencing process. The choice of approach is left to the implementation, which must only provide the proper data for use in the sequencing [or whatever...] process.
8.9 Numeric Tracking Data Best Practices
Normalized data values are described as value space real. A decimal data type should be considered as an alternative to a float data type for the implementation to maintain the required precision.
Values of Completion and Measure are normalized between 0..1. Testing for the exact value of 1.0 is unreliable. Any value > 0.99999 should be considered equal to 1.0 in evaluating rule conditions (based on the required precision of 5 decimal digits).
Appendix A - Glossary of Elements and Attributes
Appendix B - List of Example Files
Appendix C - SCORM Application Profiling of Simple Sequencing
The Advanced Distributed Learning Co-labs (ADL) are developing an application profile for the training needs of their community which includes Simple Sequencing and defines extensions to it to handle navigation requests, user interface interactions, specifications for communication between client and server, and other considerations. This profile is still in development at the time of this writing. Please refer to http://www.adlnet.org for further information.
About this Document
Title | 1EdTech Simple Sequencing Best Practice and Implementation Guide |
Editors | Mark Norton (1EdTech), Claude Ostyn (Click2Learn), Angelo Panar ADL), Brendon Towle (Thomson NETg) |
Team Co-Leads | Ron Ball (ADL), Brandt Dargue (Boeing) |
Version | 1.0 |
Version Date | 03 March 2003 |
Status | Final Specification |
Summary | This document presents the 1EdTech Simple Sequencing Best Practice and Implementation Guide and describes the recommended best practices when adopting the 1EdTech Simple Sequencing Specification. |
Purpose | Defines the 1EdTech Simple Sequencing best practice and implementation guidelines |
Document Location | http://www.imsglobal.org/simplesequencing/ssv1p0/imsss_bestv1p0.html |
List of Contributors
The following individuals contributed to the development of this document:
Revision History
Index
A
Absolute Duration 1
Activity 1, 2, 3, 4, 5
Activity Tree 1, 2, 3
Attempt 1
Auxiliary Resource 1
IDref 1 Elements
mapInfo 1
objectives 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
sequencing 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22
sequencingCollection 1
C
Content Aggregation 1
Content Package 1, 2, 3, 4, 5
E
Exit Request 1, 2
Experienced Duration 1
G
GUID 1
I
1EdTech Specifications
Content Packaging 1, 2, 3, 4, 5, 6, 7, 8
Question and Test Interoperability 1, 2, 3
Reusable Definition of Competency or Education Objective 1, 2
M
Model 1, 2, 3, 4, 5, 6, 7, 8
N
Navigation Request 1
O
Objective 1, 2
Overall Sequencing Process 1
P
Process
Overall Sequencing 1
Q
Question and Test Interoperability 1, 2
R
Resume 1
Reusable Definition of Competency or Education Objective 1, 2
Rollup Rule 1, 2
S
SCORM 1, 2, 3, 4
Sequencing 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18
Sequencing Request 1, 2
Sequencing Rule 1
Suspend 1
V
Vocabulary 1
W
W3C 1
X
XML
XSD 1
1EdTech Consortium, Inc. ("1EdTech") is publishing the information contained in this 1EdTech Simple Sequencing Best Practice and Implementation Guide ("Specification") for purposes of scientific, experimental, and scholarly collaboration only.
1EdTech makes no warranty or representation regarding the accuracy or completeness of the Specification.
This material is provided on an "As Is" and "As Available" basis.
The Specification is at all times subject to change and revision without notice.
It is your sole responsibility to evaluate the usefulness, accuracy, and completeness of the Specification as it relates to you.
1EdTech would appreciate receiving your comments and suggestions.
Please contact 1EdTech through our website at http://www.imsglobal.org
Please refer to Document Name: 1EdTech Simple Sequencing Best Practice and Implementation Guide Revision: 03 March 2003