170 likes | 390 Views
Introducción a SCORM Run-Time Environment (RTE) Comunicación estandarizada SCO-LMS. Miguel-Ángel Sicilia Universidad de Alcalá (Madrid) msicilia@uah.es. Contenidos. Objetivos de RTE. Esquema General de Funcionamiento. Intentos y sesiones RTE API Métodos de Sesión
E N D
Introducción a SCORM Run-Time Environment (RTE)Comunicación estandarizada SCO-LMS Miguel-Ángel Sicilia Universidad de Alcalá (Madrid) msicilia@uah.es
Contenidos • Objetivos de RTE. • Esquema General de Funcionamiento. • Intentos y sesiones • RTE API • Métodos de Sesión • Métodos de Transferencia. • Métodos de Soporte • Modelo de Datos
Objetivos de SCORM RTE • Especifica un conjunto de comportamientos básicos de ejecución. • Presupone un LMS SCORM que “envía” (launch) SCOs y Assets. • Las partes fundamentales son: • Gestión del entorno de ejecución: • Envío de contenidos. • Gestión de la comunicación con SCOs. • Gestión del modelo de datos. • Interfaz de programación (API) • Llamadas estándar. • Códigos de error estándar. • Modelo de Datos. • Descripción básica del modelo o perfil de usuario.
Intentos y Sesiones • Intento (attempt) = “intento registrado de un usuario de satisfacer los requisitos de una actividad” • Sesión de usuario (learner session) = periodo de tiempo continuo en el que un usuario interactúa con un objeto de contenido.
RTE API • Basado en AICC CMI, que posteriormente se ha convertido en IEEE P1484.11.2-2003. • Utiliza el lenguaje ECMAScript • Versión estandarizada de JavaScript. • Se basa en una “instancia del API” sobre la que el SCO puede invocar funciones.
Métodos de Sesión • Dos llamadas determinan el comienzo y fin de la comunicación • return_value = Initialize(“”) • return_value = Terminate(“”) • Ambas devuelven la cadena “false” si hubo algún problema. • Se puede utilizar GetLastError() para obterner información del problema acaecido.
Ejemplo: RTE Run-Time • Código dentro del SCO: <SCRIPT LANGUAGE=JAVASCRIPT SRC="util/APIWrapper.js">.. <SCRIPT LANGUAGE=JAVASCRIPT SRC="util/SCOFunctions.js">.. <SCRIPT language="javascript"> loadPage(); var studentName = "!"; var lmsStudentName = doLMSGetValue( "cmi.core.student_name" ); if ( lmsStudentName != "" ) { studentName = " " + lmsStudentName + "!"; } document.write(studentName); doContinue('completed'); </SCRIPT>
Ejemplo: RTE Run-Time (II) function doLMSInitialize(){ var api = getAPIHandle(); if (api == null) { alert("Unable to locate the LMS's API Implementation.\nLMSInitialize was not successful."); return "false"; } var result = api.LMSInitialize(""); if (result.toString() != "true") { var err = ErrorHandler(); } return result.toString(); }
Ejemplo adicional de SCO con marcos • <frameset onunload="doLMSFinish()“ ... onload="doLMSInitialize()" frameborder="0"> function doLMSFinish(){ if (self.LEARNING_OBJECT != null) { var assessment = self.LEARNING_OBJECT.getAssessment(); doLMSSetValue("cmi.core.score.raw",assessment.getScore()); } var api = getAPIHandle(); if (api == null) { alert("Unable to locate the LMS's API Implementation.."); return "false"; } else { var result = api.LMSFinish(""); if (result.toString() != "true"){ var err = ErrorHandler(); } } return result.toString(); }
Métodos de Transferencia de Datos • Obtener información del LMS: • return_value = GetValue(parameter) • El parámetro identifica un elemento del Modelo de Datos • Devuelve “” si hubo un error. • Establecer información en el LMS: • return_value = SetValue(parameter_1, parameter_2) • El primer parámetro identifica un elemento del Modelo de Datos • El segundo parámetro es el valor que debe establecerse. • Devuelve “false si hubo un error” • Solicitar que se graben los datos en caché (si los hubiese) • return_value = Commit(“”)
Ejemplo: ADL RTE Sample (Test opción múltiple) function calcScore() { computeTime(); // the student has stopped here. getAnswer(); calcRawScore(); actualScore = ( rawScore / numQuestions ) * 100; doLMSSetValue( "cmi.core.score.raw", rawScore ); var mode = doLMSGetValue( "cmi.core.lesson_mode" ); if ( mode != "review" && mode != "browse" ) { if ( actualScore <= 70 ){ doLMSSetValue( "cmi.core.lesson_status", "failed" ); }else{ doLMSSetValue( "cmi.core.lesson_status", "passed" ); } doLMSSetValue( "cmi.core.exit", "" ); } exitPageStatus = true; doLMSCommit(); doLMSFinish(); }
Métodos de soporte • Solicitar el código del último error: • return_value = GetLastError() • Los errores están estandarizados • Obtener una descripción textual de ese error • return_value = GetErrorString(parameter) • Se le pasa el código de error y devuelve la descripción. • Obtener un diagnóstico de ese error (específicos de cada LMS) • return_value = GetDiagnostic(parameter) • Estas funciones se pueden llamar incluso fuera de la sesión:
Modelo de Datos • Atributos estandarizados que describen: • El SCO. • cmi.max_time_allowed • El usuario que interactúa con él. • cmi.learner_name, cmi.learner_preference.audio_level, etc. • Características de esa interacción. • cmi.mode {browse, normal, review} • cmi.objectives.n.success_status {passed, failed, unknown} • cmi.session_time • Algunos representan colecciones, y se utilizan números para identificar cada elemento: • GetValue(cmi.objectives.0.completion_status) {completed, incomplete, not attemptted, unknown}
Referencias • Página principal de la iniciativa ADL http://www.adlnet.org/