0

The pseudocode for the Select Children Process [SR.1] and Randomize Children Process [SR.2] heavily suggests these processes are meant to be run multiple times although for SR.1 no behavior is defined when selection is meant to occur onEachNewAttempt.

Since both the Sequencing Request Process [SB.2.12] and the Navigation Request Process [NB.2.1] expect the Available Children to be selected/randomized and the Content Delivery Environment Process [DB.2] only initializes the new attempt after a traversal over the various Available Children has already happened, it seems like the LMS is meant to run both of these processes during initialization of the activity tree itself before attempting to deliver the first activity or handle any requests.

However this doesn't explain when SR.2 is meant to be re-run. Since DB.2 creates the new attempt progress information by iterating over the activity path from the root to the specified activity, randomizing each activity's Available Children along the way would result in the position of the specified activity within the activity tree changing after selection, which seems unintuitive. Further more, if one were to attempt to implement onEachNewAttempt for SR.1 this could also cause the selected activity to vanish from the available activities (though this would explain why its behavior is undefined in SCORM).

My understanding would be that the Available Children are meant to be initialized to the list of all children followed by SR.1 and SR.2 being applied to all activities starting from the root and that SR.2 is then re-applied in DB.2 for every activity in the path despite this changing the order of activities. Is this correct or am I missing something?

Alan Plum
  • 10,814
  • 4
  • 40
  • 57

1 Answers1

0

Upon re-reading section 4.7 in SN-4-48 it seems that the answer is that the selection and randomization should indeed happen once at the start of the sequencing session (i.e. on initialization) and then again in the End Attempt Process [UP.4] (although for onEachNewAttempt it actually states "prior to the first attempt", which could also be read as referring to the delivery process, DB.2).

What makes this a bit awkward is that UP.4 is applied in many places including immediately prior to delivery (in DB.2), which still means randomization could occur after an activity has already been selected and that randomization could happen multiple times in between a sequencing request and delivery.

Alan Plum
  • 10,814
  • 4
  • 40
  • 57