Sistemas Adaptativos en Moodle: Módulo Tutor de ingreso de Recomendaciones

De Computacion

Angel Feijo - Ing. Greyson Alberca

Tabla de contenidos



Portada


SISTEMAS ADAPTATIVOS EN MOODLE:

MÓDULO TUTOR DE INGRESO DE RECOMENDACIONES


ESTADO DEL ARTE

Introducción

En los últimos años los Sistemas Recomendadores han sido ampliamente utilizados e implementados en muchas áreas del internet, (García Salcines, Romero Morales, Ventura Soto, & De Castro Lozano, 2008) indican algunas de las áreas en las cuales han sido implementados: una es en el comercio electrónico para ofrecer servicios personalizados al cliente, así mismo en los buscadores de páginas web para evitar la sobrecarga de información, otra de las áreas es la de las bibliotecas digitales para la búsqueda de libros o artículos que se ajusten a las preferencias de los diferentes usuarios. Sin embargo una de las principales y muy recientes es precisamente la educación en el aprendizaje electrónico, en este caso basándose en algunas técnicas de recomendación, se les sugiere a los estudiantes actividades en línea basándose en sus preferencias, nivel de conocimiento o en sus características comunes.

El presente estudio trata sobre la implementación de un sistema recomendador en un LMS<ref>LMS acrónimo de Learning Management System (Sistema de Gestión de Aprendizaje)</ref> llamado Moodle, para lo cual es necesario definir lo que es un LMS conjuntamente con un Sistema Recomendador determinando los elementos y características necesarias para el desarrollo de un módulo tutor de ingreso de recomendaciones con Moodle.

Para implementar el módulo tutor integrado a Moodle se debe tener conocimiento del proceso básico para la creación de un nuevo módulo en dicha plataforma, así mismo al tratarse de un sistema web en el proceso de desarrollo se debe tener bien claro la metodología a seguir para la creación de la interfaz web como los estándares existentes para el diseño de aplicaciones web, los mismos que ayudaran a que el modulo tutor sea implementado con un nivel de detalle sencillo y pueda ser utilizado de manera satisfactoria por los tutores al momento de definir una recomendación.

Trabajos Relacionados

(Itmazi & Megías, 2007) en su artículo hacen una discusión sobre la habilidad de los sistemas recomendadores implementados en un LMS para soportar las necesidades de los usuarios, en la sección 1.5 se toma en cuenta algunas características que estos autores mencionan que un LMS debe tener para la implementación de un sistema recomendador. Otro tema importante que se menciona en este artículo es la definición que hacen sobre una recomendación creada manualmente por un tutor o profesor de curso definiendo los pasos en el ciclo de vida de la misma. La investigación de estos autores ayuda a aclarar que el desempeño del sistema recomendador depende de la plataforma donde se lo está implementando, un aspecto muy considerable a tomar en cuenta al momento de trabajar con Moodle.

Uno de los elementos de un sistema recomendador es la recomendación, (Ludivine, Santos, Mazzone, & Boticario, 2008) describen la utilidad de una herramienta para profesores para administrar las recomendaciones hechas en un LMS para los estudiantes, esta herramienta ofrece a los profesores un mecanismo de control de lo que se les está recomendando a los estudiantes. Los autores indican que, en la mayoría de sistemas recomendadores las recomendaciones son generadas y publicadas automáticamente utilizando técnicas de inteligencia artificial, por lo que presentan un enfoque diferente donde se agrega un paso de validación antes de que la recomendación sea publicada, en este paso, los profesores pueden modificar y a la vez diseñar recomendaciones. Se comenta también una parte importante en la que presentan algunas interrogantes que se debe resolver para mejorar la eficiencia, efectividad y satisfacción de los estudiantes durante su proceso de aprendizaje. De este artículo se puede concluir que es de mucha utilidad para los profesores presentar un diseño de una interfaz sencilla para administrar las recomendaciones en los pasos de validación, diseño y modificación.

En la investigación realizada por (O`Connor, Cosley, Konstan, & Riedl, 2002) presentan un sistema recomendador diseñado para recomendar ítems a grupos de usuarios, específicamente se hace el estudio para sistemas recomendadores en un sitio web de películas, en la cual afirman que este tipo de sistemas es muy apropiado para medios en los cuales participan gran cantidad de personas en una actividad común, se discute además la forma en que se forman los grupos de personas en un dominio específico. Se menciona la implementación de una interfaz para poder visualizar la información de las recomendaciones, sin embargo no se detalla el diseño gráfico de la interfaz, más bien se centran en la información que va a ser consultada y presentada en la recomendación.

El desarrollo de una interfaz para realizar consultas dinámicas en un sistema recomendador es presentado por (Schafer, 2004), en el cual se limita a mencionar el proceso de diseño de la interfaz, sin embargo concluye que con la implementación de la interfaz contribuye al usuario en la toma de decisiones con la recopilación de información a través del sistema recomendador.

Sistema Recomendador

En un artículo publicado por (López López, 2009) se define a un sistema recomendador como "una aplicación software que dispone de grandes volúmenes de información y cuyo objetivo es ofrecer apoyo a los usuarios en la toma de decisiones. Recomiendan ítems de interés a los usuarios basándose en las preferencias y gustos que éstos han expresado, ya sea de forma explícita o implícita. Además, el imparable aumento de la cantidad y complejidad de la información en la Web hace que estos sistemas sean herramientas esenciales para buscar información o actividades relacionadas con el aprendizaje". Según esta definición, un sistema recomendador aplicado al aprendizaje, ayudaría al tutor a tratar con el problema del manejo de gran cantidad de estudiantes en los cursos y a lograr una relación más personalizada con cada uno de ellos.

En la tesis de (Itmazi, 2005) se plantean algunos de los objetivos que tiene un sistema recomendador, estos son:

  • Solucionar la sobrecarga de información.
  • Presentar información interesante a los usuarios de acuerdo a sus gustos y preferencias.
  • Facilitar una mejor relación con los usuarios.
  • Proteger y ocultar cierta información.
  • Dar información a los administradores para mejorar sus conocimientos acerca de los gustos, preferencias, necesidades y opiniones de los usuarios.

En una investigación realizada por (Itmazi & Megías, 2007) y (Santos & Boticario, 2008) sobre el uso de sistemas recomendadores con LMS, se determinan algunos enfoques o técnicas para distintos tipos de sistemas recomendadores, de lo que podemos listar las siguientes técnicas para sistemas recomendadores orientados al aprendizaje:

Sistemas basados en el contenido (CBS)

En este enfoque, los objetos son seleccionados tomando en cuenta la relación que existe entre el contenido de los objetos o recursos y las preferencias de los usuarios, (Candillier, Jack, Fessant, & Meyer, 2009) concuerdan con esta definición haciendo un aporte más profundo sobre esta técnica indicando que los sistemas recomendadores basados en el contenido, comparten en común, un medio para describir los ítems que pueden ser recomendados, un medio para crear un perfil de usuario que describe los tipos de ítems que al usuario le gustan y un medio para comparar ítems del perfil de usuario para determinar que recomendar. El perfil de usuario puede ser creado implícitamente a partir de las preferencias del usuario sobre ciertos ítems basándose en acciones hechas o explícitamente en cuestionarios acerca de sus preferencias. Por su parte un modelo de usuario puede ser definido implícitamente por un método de aprendizaje automático usando descripciones de ítem como entrada de un algoritmo de aprendizaje supervisado, de lo cual se producen las salidas que son apreciaciones del usuario acerca de los ítems.

Sistemas con filtrado colaborativo (CFS)

Con esta técnica el sistema recomienda ítems a un estudiante objetivo en base a preferencias de usuario similares y en opiniones de otros usuarios con similares gustos. Otro aporte sobre este tema encontramos en (Candillier, Jack, Fessant, & Meyer, 2009), en el cual nos indica que, en el filtrado colaborativo la entrada al sistema es un conjunto de clasificaciones del usuario basado en ciertos ítems. La comparación de los usuarios se puede hacer basándose en sus valoraciones o apreciaciones similares sobre ítems creando la noción de vecindad de usuarios. De la misma manera los ítems pueden ser comparados basándose en la apreciación compartida de usuarios, llegando a la noción de vecindad de ítems. La clasificación de ítems para un determinado usuario se puede predecir basándose en la clasificación de ítems dados por un usuario vecino.

Estos autores se enfocan principalmente en tres enfoques de filtrado colaborativo: el primero es un enfoque basado en el usuario en el cual indican que la predicción de una clasificación de usuario sobre un ítem, está basada en las clasificaciones de dicho ítem del vecino más cercano, una medida de similitud entre usuarios debe ser definida antes de que un conjunto de vecinos más cercanos sea seleccionado, de igual manera se tiene que escoger un método para combinar las clasificaciones de aquellos vecinos sobre el ítem determinado, la forma en que la similitud entre usuarios es calculada la pueden encontrar en la referencia citada; el segundo es un enfoque basado en el ítem, dada una medida de similitud entre ítems, primeramente se define el vecindario de ítems, la clasificación predicha para un usuario sobre un ítem es derivada de las clasificaciones del usuario sobre los vecinos de dicho ítem, de igual manera en la misma referencia se encuentra la forma de calcular la medida de similitud entre los ítems; el tercer enfoque es basado en modelos y es creado con el fin de resolver la necesidad de muchas aplicaciones para realizar predicciones muy rápidas teniendo grandes conjuntos de datos, para ello la idea principal es definir un modelo de los datos almacenados para predecir clasificaciones en línea lo más rápido posible.

Filtrado colaborativo demográfico (DCFS)

El sistema oferta la recomendación a estudiantes con similares atributos.

Filtrado basado en reglas (RBF)

Las recomendaciones son ofertadas a cada estudiante de acuerdo a las preferencias descritas por el perfil de usuario.

Sistemas Recomendadores Híbridos (HRS)

Este tipo de sistemas recomendadores son una mezcla de dos o más técnicas de las descritas anteriormente.

En el artículo de (Candillier, Jack, Fessant, & Meyer, 2009) se hace una descripción de sistemas recomendadores híbridos con la combinación del filtrado basado en el contenido y el filtrado colaborativo mencionados anteriormente, indicando que un sistema hibrido puede ser diseñado siguiendo las estrategias de un sistema basado en el contenido y usar los datos producidos por el filtrado colaborativo para reforzar la descripción de similitud entre ítems.

De la lectura hecha sobre este artículo se puede argumentar que la técnica de filtrado colaborativo es la que se la implementa en la mayoría de sistemas recomendadores ya que conlleva a un mejor rendimiento en la predicción de ítems a recomendar.

La Recomendación

El elemento principal de la estructura de un sistema recomendador es la recomendación, la misma que contiene toda la información necesaria para poder ser ofertada a los estudiantes, en el trabajo de (Santos & Boticario, 2008) se determinan algunos elementos que conforman un sistema recomendador, estos elementos son analizados al definir la solución del problema en la sección 3.4.5.

Sistema de Gestión de Aprendizaje (LMS)

Según la definición que hacen (De Castro Lozano, Rubio Royo, Fidalgo Blanco, García Salcines, Artiles Larralde, & Fernández Buron, 2006), un LMS es una herramienta software que permite administrar, gestionar e impartir cursos en línea a través de la web. Desde el punto de vista universitario un LMS es considerado como una parte importante dentro de la educación a través de internet ya que permite a los tutores automatizar la administración de los cursos que se imparten a los estudiantes.

En un trabajo realizado por (García Salcines, Romero Morales, Ventura Soto, & De Castro Lozano, 2008) muestran que en el ámbito educativo, un LMS acelera el proceso de aprendizaje en las universidades identificando los puntos fuertes y débiles de los estudiantes, definiendo modelos de usuario que permiten adaptar el sistema a las necesidades de aprendizaje de cada uno de los estudiantes mediante distintas técnicas de inteligencia artificial.

Analizando un estudio hecho por (Itmazi & Megías, 2007) que trata sobre el uso de sistemas recomendadores en diferentes LMS se define algunas de las características de tienen los LMS para que un sistema recomendador sea implementado:

  • Un LMS es un sistema adaptativo interactivo que crea un ambiente personal que se adapta a las necesidades de los estudiantes.
  • Normalmente un LMS que cuenta con miles de cursos presenta el problema de sobrecarga de información, el mismo que puede ser resuelto con la implementación de un sistema recomendador.

(De Castro Lozano, Rubio Royo, Fidalgo Blanco, García Salcines, Artiles Larralde, & Fernández Buron, 2006) presentan otra definición de Moodle como un LMS diseñado para dar soporte a un marco de educación social que se orienta al aprendizaje colaborativo, esta plataforma presenta muchas características que sirven de apoyo para el aprendizaje de los estudiantes, entre estas características tenemos, foros, uso de recursos compartidos, chat, etc. Con Moodle se puede gestionar gran cantidad de estudiantes en cada curso por parte del tutor, lo mismo que sirve de gran apoyo a los docentes de la universidad. A continuación se lista algunas de las principales características que presenta Moodle tomado de (De Castro Lozano, Rubio Royo, Fidalgo Blanco, García Salcines, Artiles Larralde, & Fernández Buron, 2006):

  • La Navegación es accesible, confiable y estable.
  • En cuanto a la comunicación asíncrona, de uno a uno y de uno a muchos la plataforma ofrece un recurso (foro) de comunicación durante el desarrollo del curso. De la misma manera la plataforma ofrece recursos de comunicación síncrona (chat).
  • En el foro de discusión y el tablón de mensajes se puede usar lenguaje HTML lo cual hace más atractivos los mensajes que pueden publicar los tutores on-line y alumnos.
  • El acceso a los contenidos así como a los recursos es fácil, rápido y muy intuitivo.
  • La principal ventaja de la plataforma Moodle es que es un software libre, lo que la convierte en una alternativa muy interesante para las comunidades educativas que quieran utilizar una plataforma para realizar sus cursos on-line.

Según (Jara, Sarango, Valdiviezo, Agila, & Pesántez, 2009) son tres los componentes principales de Moodle; el aula virtual, el tutor y el estudiante, de los cuales se puede determinar que el principal de ellos es el tutor, ya que es quien se encarga de recopilar la información suficiente para propiciar el proceso de aprendizaje guiando a todos sus estudiantes. Con el sistema recomendador integrado a Moodle se puede ayudar al tutor en dicha gestión facilitando la tarea de enseñanza de una forma más personalizada clasificándolos en diferentes modelos o grupos.

En el artículo publicado (Ejemplos de E-learning (Moodle)) se afirma que a pesar que Moodle es una herramienta destinada a la educación a distancia, muchas universidades lo usan como complemento a las clases presenciales, con sus características permite distribuir materiales de aprendizaje, crear y gestionar foros y anuncios, realizar cuestionarios a los estudiantes, evaluar tareas, integrar recursos de Internet, crear glosarios y diccionarios o gestionar el tiempo a través de un calendario global de distintas asignaturas. En cuanto a las herramientas de comunicación permite  la mensajería instantánea o la  tutoría electrónica en privado o en grupo.

La principal ventaja de trabajar con Moodle es que se trata de un LMS de código abierto del cual se puede editar el código fuente; es decir, se puede cambiar parte del funcionamiento del sistema, realizar aportes que logren mejorar las versiones presentadas, esto brinda la oportunidad de adaptar el campus a las necesidades que presenta la universidad realizando actualizaciones constantemente.

Para implementar un módulo integrado a Moodle para la definición de recomendaciones, se necesita el diseño de una interfaz web donde se pueda realizar el proceso de definición con todos los elementos de la recomendación. Los tutores que van a hacer uso de la interfaz no son precisamente informáticos con conocimientos avanzados de sistemas computacionales, en algunos casos son tutores que no están familiarizados al uso de un LMS y con conocimientos básicos en sistemas de éste tipo, es por eso que la interfaz a desarrollar debe tener un nivel de detalle sencillo que cumpla con los criterios de usabilidad y accesibilidad que demanda una interfaz o página web. Una interfaz con un mal diseño puede causar que los usuarios, en este caso los tutores pierdan el interés de utilizar el sistema.

En un trabajo para la implementación de un sistema recomendador web basado en una plataforma que le permite interactuar la interfaz de usuario con la base de datos del sistema, (Haruechaiyasak, Shyu, & Chen, 2004) concluyen que el sistema recomendador se debe presentar como un asistente web en el cual para las recomendaciones se toma en cuenta tanto el contenido ingresado por el usuario como el comportamiento que el mismo mantiene en el sistema. Sin embargo en este trabajo no se indica el proceso de diseño de la interfaz web para lo cual a continuación profundizamos el tema.

Proceso de diseño de la Interfaz Web

Existen algunos principios para el correcto diseño de una interfaz web:

Familiar al usuario

La interfaz debe ser diseñada con el fin de permitir una fácil interacción del usuario con la misma.

Consistencia

Se debe mostrar un apropiado nivel de consistencia, todos los controles deben tener el mismo formato.

Mínimo comportamiento extraño

Los usuarios no deben sufrir un comportamiento fuera de lo normal en el funcionamiento de la interfaz.

Capacidad de recuperación

Se debe implementar mecanismos que les permitan a los usuarios recuperarse de errores ocurridos.

Para profundizar en los principios mencionados pueden revisar la información en (Sommerville, 2004). Este mismo autor nos muestra un proceso iterativo con tres actividades puntuales para el diseño de una interfaz web, la primera es el Análisis, en la cual se determina las tareas que el usuario va a realizar en el sistema, como segunda actividad está el realizar un Prototipo para el desarrollo de la interfaz para finalmente hacer una evaluación del accionar de la interfaz.

En (Pressman, 2006) se define un conjunto fundamental de características que todas las interfaces deberían tener:

  • Ser claras e intuitivas, dando al usuario una sensación de control, para que puedan comprobar la amplitud de sus opciones y utilizarlas para alcanzar sus objetivos.
  • No deben afectar al usuario con el propio funcionamiento interno de la aplicación, el trabajo del usuario debe guardarse continuamente y se debe permitir que el usuario deshaga acciones.
  • Se debe conseguir un máximo rendimiento solicitando la mínima información posible al usuario.

También se argumenta que toda interfaz debe presentar las siguientes características: fácil de usar, fácil de aprender, fácil de navegar, intuitiva, consistente, eficiente, libre de errores y funcional. Para lograr un buen diseño en una aplicación web que cumpla con estas características se debe tomar en cuenta los siguientes principios y directrices:

Principios

Anticipación

Una aplicación web debe diseñarse para anticiparse a los movimientos del usuario. Por ejemplo, si un usuario visita una página web para solicitar información sobre un driver para un sistema operativo, la aplicación debería facilitarle un enlace para poder descargar dicho driver, ya que es la acción que con más probabilidad realizará el usuario.

Comunicación

La interfaz debe comunicar el estado de cualquier actividad iniciada por el usuario. Dicha comunicación puede hacerse por una etiqueta, un diálogo, etc. También se debe comunicar el estado del usuario que puede ser su identificación y la ubicación dentro de la jerarquía de contenido de la aplicación web.

Consistencia

El uso de los controles de navegación, menús, iconos y aspectos estéticos (como colores, formas, etc.) deben ser consistentes en toda la interfaz. Por ejemplo, si un subrayado de color azul indica un link, un texto que no sea un link no puede subrayarse de esa forma.

Autonomía controlada

La interfaz debe facilitar al usuario la navegación a través de la aplicación, pero debe hacerlo de manera que se cumplan las restricciones establecidas para la aplicación. Por ejemplo, controlar la navegación a determinadas funcionalidades de la aplicación solicitando un nombre de usuario y contraseña, además de verificar que no exista un mecanismo de navegación que permita al usuario ingresar a dichas funcionalidades.

Eficiencia

El diseño de la aplicación web y su interfaz deben optimizar el trabajo del usuario, más no la eficiencia de la aplicación ni del ingeniero web que ha diseñado la aplicación.

Flexibilidad

La interfaz debe ser lo suficientemente flexible para permitir que algunos usuarios puedan realizar sus tareas directamente y que otros puedan explorar la aplicación más a fondo.

Centrada en el usuario

La interfaz de la aplicación debe estar centrada en las tareas que los usuarios deben realizar.

Ley de Fitt

La ley dice que "el tiempo para cumplir un objetivo es una función de la distancia y el tamaño de ese objetivo". Esta ley es un método eficaz de modelado rápido, de tal modo que, ante una secuencia de entradas o selecciones que se deben realizar en una acción, la primera selección de la secuencia debe estar físicamente cercana a la siguiente selección.

Objetos de la interfaz de usuario

Existe gran cantidad de librerías de objetos de interfaz y patrones reutilizables para aplicaciones web, por lo que éstos deben utilizarse a la hora de diseñar una nueva interfaz de usuario.

Reducción de latencia

No se debe hacer que el usuario espere para que se complete alguna operación interna de la aplicación cuando esté utilizando la aplicación, ésta debería ser multitarea y permitir al usuario seguir trabajando mientras la acción se completa. Además, se debe proporcionar una realimentación al usuario en los momentos de espera, en forma de aviso sonoro o visual (reloj de espera, barra de progreso, etc.).

Facilidad de aprendizaje

Una interfaz de usuario debe ser diseñada para minimizar el tiempo de aprendizaje y, una vez aprendida, para minimizar el re-aprendizaje cuando se utiliza de nuevo la interfaz.

Metáforas

Una interfaz que utilice una metáfora de interacción es más fácil de aprender y de usar, siempre y cuando que la metáfora sea adecuada para la aplicación y para el usuario final. Por ejemplo, en una aplicación de comercio electrónico se puede utilizar un libro de contabilidad como metáfora gráfica para las facturas de los pedidos realizados.

Mantener la integridad del producto de trabajo

Un producto de trabajo (por ejemplo, un formulario completado por un usuario) debe ser guardado automáticamente y no perderse aunque ocurran errores, para no perder el trabajo del usuario. Así, la aplicación debe contar con un mecanismo de auto-guardado y la interfaz debe recuperar el trabajo auto-guardado si ocurre algún fallo.

Legibilidad

Toda la información presentada a través de la interfaz debe ser legible por cualquier usuario.

Seguimiento del estado

Las interacciones que realiza el usuario deberían seguirse y almacenarse para que los usuarios puedan desconectarse y volver más tarde al punto donde lo dejaron.

Navegación visible

Un buen diseño de la interfaz genera "la ilusión de que los usuarios están en el mismo sitio, pero con el trabajo traído hacia ellos".

Directrices

  • No forzar al usuario a leer grandes cantidades de texto, ya que la lectura en un monitor de un computador es aproximadamente un 25% más lenta que la lectura en papel.
  • Evitar los llamados iconos "en construcción", pues causan expectación y pueden decepcionar al usuario si el resultado final no es el esperado.
  • La información importante debe colocarse dentro de las dimensiones típicas de la ventana del navegador, ya que los usuarios prefieren no desplazarse sobre la ventana.
  • Los menús de navegación y las barras de cabecera de las páginas web deben ser consistentes y aparecer en todas las páginas que se le muestren al usuario. El diseño no debe descansar en las funciones del navegador para asistir en la navegación.
  • La estética nunca debe sustituir a la funcionalidad.
  • Las opciones de navegación deben ser obvias, incluso para los usuarios habituales, para evitar que el usuario tenga que recorrer toda la interfaz buscando los enlaces a otros contenidos.

De la misma manera se presenta un flujo de trabajo a seguir para el diseño de una interfaz:

El diseño de interfaces gráficas de usuario para aplicaciones web comienza con la identificación del usuario, la tarea y los requisitos del entorno., es decir, con el análisis de requisitos. Una vez que se han identificado las tareas que pueden realizar los usuarios, se analiza cada uno de los escenarios y se define un conjunto de objetos y acciones de interfaz.

Posteriormente, a partir de la información extraída del modelo de análisis, se crea un diseño preliminar de la interfaz, indicando la colocación de iconos, objetos gráficos, texto, títulos de ventanas y la especificación de los elementos de los menús. Para ello, se utilizan herramientas para prototipos de interfaces gráficas.

A continuación se lista las tareas a seguir para el diseño de interfaces de usuario en aplicaciones web:

1. Revisar las categorías de usuarios, las tareas que cada usuario debe realizar, los casos de uso y toda la información extraída del modelo de análisis, refinándolo si es necesario.

2. Desarrollar un prototipo de la interfaz gráfica, colocando los diferentes elementos que se hayan identificado en el paso anterior.

3. Hacer una correspondencia entre los objetivos del usuario y las acciones de la interfaz.

4. Definir un conjunto de tareas de usuario asociadas con cada acción de la interfaz.

5. Desarrollar pantallazos de la interfaz para cada acción que se pueda realizar en ésta.

6. Refinar el diseño de la interfaz y los pantallazos usando aspectos de diseño estético.

7. Identificar los objetos de interfaz que son necesarios para implementar la funcionalidad de la interfaz gráfica de usuario.

8. Desarrollar una representación procedimental de las interacciones del usuario con la interfaz.

9. Desarrollar una representación del comportamiento de la interfaz. Describir la plantilla de la interfaz en cada estado.

10. Revisar y refinar el modelo de diseño de la interfaz.

Estas tareas son propuestas por (Pressman, 2006), si desea profundizar en este tema puede revisar la referencia citada.

Un proceso más detallado para el diseño de una interfaz web se presenta en (The Process of User Interface Design), en la Tabla 1.6.2.1 se muestran las fases con una descripción de lo que se tiene que hacer en cada una de ellas. Si se desea una descripción profunda de cada una de las fases puede revisar la referencia citada.

Fase Descripción
Requerimientos Encontrar los requerimientos para la aplicación.
Diseño conceptual Realizar un modelo del proceso de negocio que la aplicación soportará.
Diseño lógico Diseño en términos generales de la aplicación.
Diseño físico Diseño específico de cómo va a ser construida la aplicación.
Construcción Desarrollar la aplicación.
Pruebas de usabilidad Pruebas de usabilidad de la interfaz.

Tabla 1.6.2.1 Fases para el desarrollo de una interfaz web

La Figura 1.6.2.1 presentada por (Maxey, 2002) muestra en resumen lo que es el proceso de diseño de una interfaz de usuario.

Figura 1.6.2.1 Proceso de diseño de una interfaz web

Según este proceso, lo primero que se debe hacer es entender el problema que se está tratando, es decir el dominio en el que el usuario va a trabajar. Una vez que se tiene claro las necesidades del usuario se realiza un modelo conceptual del funcionamiento de la interfaz. Seguidamente se debe definir reglas de diseño para lograr el correcto funcionamiento de la aplicación, algunas de estas reglas se encuentran en la referencia citada. Cuando se tiene la base de las actividades anteriores, se realiza la construcción y desarrollo de la interfaz, teniendo en cuenta que las pruebas se las realiza para cada actividad con el fin de disminuir el mínimo de errores en la actividad siguiente.

Los procesos mostrados anteriormente pueden llegar a un proceso de diseño común y estandarizado ya que resumiendo en fases o actividades se puede definir que el proceso a seguir en un diseño de interfaz web comienza por entender las necesidades del usuario con lo cual se puede modelar el funcionamiento de la aplicación y así, poder empezar su construcción. Finalmente para terminar el proceso de desarrollo siempre se deben realizar las pruebas de usabilidad para determinar que lo que se ha hecho cumple con lo requerido por el usuario.

En (10 Useful Web Application Interface Techniques, 2009) se publica algunas técnicas para el buen diseño de una interfaz web, las mismas que de acuerdo a los procesos revisados pueden ser tomadas en cuenta para complementar cada una de las fases de un proceso de desarrollo. Con la implementación de estas técnicas se puede lograr una interfaz muy amigable al usuario lo cual es muy recomendable seguir para con los requerimientos de la interfaz del modulo tutor que se está desarrollando.

Normas de usabilidad para una interfaz web

Independientemente del proceso de diseño específico que se siga, la interfaz desarrollada debe cumplir con ciertos estándares de usabilidad y accesibilidad, que determinen su correcto funcionamiento.

Se encuentra en (Standardized Approaches to Usability - ISO 9241 , 2009) una definición de usabilidad: "Es el grado en el cual una aplicación puede ser usada por usuarios específicos para lograr sus objetivos con eficacia, eficiencia y satisfacción en un determinado contexto de usuario", entendiéndose por eficacia, la precisión con la cual los usuarios realizan determinados objetivos. Eficiencia se entiende como los recursos gastados en relación con la precisión con la cual los usuarios realizan sus objetivos. Finalmente la satisfacción significa la aceptación del uso de la aplicación.

Existen algunos principios de usabilidad para comprobar el correcto diseño de una interfaz web. Algunos de estos principios son destacados por (Matera, Rizzo, & Toffetti Carughi, 2005) donde se afirma que la usabilidad garantiza la calidad de los sistemas web desde el punto de vista de los usuarios que disponen de sus funcionamiento.

Los principios de usabilidad mencionados son:

Aprendizaje

La facilidad con la que el usuario aprende la funcionalidad y el comportamiento del sistema.

Eficiencia

El nivel de productividad alcanzada una vez que el usuario ha aprendido el funcionamiento de la aplicación.

Mínimo de errores

La capacidad de la aplicación para mantenerse con el mínimo de errores, y la capacidad de recuperarse en caso de que ocurra alguno.

Satisfacción del usuario

Es la medida en la cual el usuario encuentra la aplicación agradable de usar.

Factores que influyen en la usabilidad

A continuación se presenta un resumen de un trabajo realizado por (Cueva, 2004) sobre ciertos factores que influyen en la usabilidad y que se los debe tomar en cuenta en el diseño de una interfaz web:

Espacio de Pantalla

  • Una aplicación web debe estar presidida por un contenido que despierte la atención del usuario.
  • Es una norma que el contenido de interés para el usuario debe ocupar como mínimo la mitad del diseño de una interfaz y, de preferencia hasta un 80%.
  • Se recomienda eliminar todos los elementos innecesarios, en el caso de existir publicidad se la debe considerar dentro del espacio de navegación.

Diseño de plataforma cruzada

En el diseño web se debe tomar en cuenta el soporte para la navegación controlada por el usuario, así mismo este último suele controlar su navegación por las páginas. Para llegar a una flexibilidad se debe considerar lo siguiente:

  • Dispositivos de acceso y navegadores

Se debe tomar en cuenta los diferentes dispositivos desde los cuales los usuarios pueden acceder a la aplicación web, con el fin de permitir a los diferentes navegadores optimizar la pantalla en base a las circunstancias individuales de cada usuario.

  • No utilizar un diseño para una resolución específica.

No se debe usar un ancho de píxel fijo para ninguna tabla, marco o cualquier otro control, en el diseño se debe especificar porcentajes del espacio disponible. Así mismo asegurarse que los diseños funcionan bien para los diferentes tamaños de fuente.

  • Uso de contenido no estándar

Se recomienda evitar el uso de códigos que no sean estándar.

Separar el significado de la presentación

La información relativa a la información que se presenta se la debe mantener en un archivo de hoja de estilos separado y que se lo pueda vincular a un archivo de contenido mediante un marcado semántico, entendiéndose este ultimo como la forma de clasificar y ordenar el contenido en diferentes niveles.

Tiempos de Respuesta

En la actualidad el objetivo mínimo de los tiempos de respuesta es el poder ofrecer una página web al usuario en un máximo de diez segundos.

Vinculación

Existen tres tipos de vínculos, los mismos conectan las páginas y que permiten a los usuarios navegar hacia diferentes páginas web:

  • Vínculos de navegación estructural

Botones de las páginas de inicio y vínculos a páginas subordinadas a la actual.

  • Vínculos asociativos del contenido de la página

Palabras subrayadas que señalan páginas con más información relacionada con la del texto.

  • Listas de referencias adicionales

Hojas de estilo

Sirven para separar la presentación del contenido. Se puede utilizar una misma hoja de estilo para las diferentes páginas de la aplicación. Una parte importante a recalcar en este tema es que las hojas de estilo de una aplicación deben seguir funcionando cuando el usuario final o el navegador las desactive.

Marcos

Se debe evitar el uso de marcos, las razones son:

  • Muchos navegadores no pueden imprimir adecuadamente páginas con marcos.
  • Los marcos son difíciles de aprender.
  • Causan problemas para los motores de búsqueda.
  • La mayoría de usuarios prefieren diseños sin el uso de marcos.

Credibilidad

Para lograr la credibilidad en una aplicación web, se debe optar por un diseño limpio con buena apariencia.

Opciones de impresión

Se recomienda generar dos versiones de los documentos: la una optimizada para poder ser visualizada en línea y la otra optimizada para la impresión.

Normas de accesibilidad para una interfaz web

En un trabajo realizado (Torres Barzabal, 2004) define la accesibilidad como la característica que tiene que tener una aplicación web para facilitar a todas las personas el acceso a la información en condiciones de igualdad, independiente de las condiciones físicas o psíquicas del usuario y de su entorno.

En la W3C<ref>Acrónimo de (World Wide Web Consortium), es una comunidad internacional que desarrolla estándares para asegurar el continuo crecimiento de la web. (http://www.w3.org)</ref> hay una rama llamada Web Accessibility Initiative (WAI), la misma que se encarga de estudiar y proponer recomendaciones sobre los distintos estándares tecnológicos que se usan en la Web.

A continuación se presenta un resumen de las pautas propuestas por la WAI que indican cómo hacer accesible una aplicación web:

1. Proporcione alternativas equivalentes para el contenido visual y auditivo

Esta pauta muestra la importancia de aportar equivalentes textuales para los contenidos no textuales, lo mismo que radica en la capacidad para ser interpretado por vías que son accesibles para personas pertenecientes a diversos grupos de discapacidad usando diversa tecnología.

2. No se base sólo en el color

Asegúrese de que los textos y gráficos sean comprensibles cuando se vean sin color, esto permitirá que puedan observar correctamente la información aquellas personas que no pueden diferenciar ciertos colores, aquellas que utilicen una pantalla, monitor u otro dispositivo de salida sin color.

3. Utilice marcadores y hojas de estilo y hágalo apropiadamente

Se debe controlar la presentación con hojas de estilo en lugar de utilizar elementos y atributos de presentación. Así mismo al utilizar marcadores de presentación en lugar de marcadores estructurales para transmitir estructura, se hace difícil interpretar una interfaz de forma inteligible a otros dispositivos.

4. Identifique el idioma usado

Esta pauta nos indica que se debe usar marcadores que faciliten la pronunciación o interpretación de texto abreviado o extranjero, también se debe identificar el idioma predominante del contenido en la aplicación web.

5. Cree tablas que se transformen correctamente

Para asegurar la accesibilidad de un sitio también se debe tomar en cuenta que las tablas tengan los marcadores necesarios para transformarlas mediante navegadores accesibles y otras aplicaciones de usuario.

6. Asegúrese de que las páginas que incorporan nuevas tecnologías se trasformen correctamente

Se debe tomar en cuenta que la página web sea visualizada aún cuando el navegador no soporte las últimas tecnologías o estas estén deshabilitadas.

7. Asegure al usuario el control sobre los cambios de los contenidos tempo-dependientes

Asegurar que los objetos puedan ser detenidos o parados cuando estos se muevan, parpadean, desplazan o se actualizan automáticamente. El movimiento puede distraer de tal manera que el resto de la página se vuelve ilegible para las personas con discapacidades cognitivas. Cuándo el texto está en movimiento resulta muy difícil poder leer todo el contenido.

8. Asegure la accesibilidad directa de las interfaces de usuario incrustadas

Cuando existe un objeto incrustado con su propia interfaz, esta también debe ser accesible, en caso de no ser así, se debe proporcionar una solución alternativa.

9. Diseño para la independencia del dispositivo

Significa que el usuario puede interactuar con la aplicación de usuario o el documento con cualquier tipo de dispositivo de entrada.

10. Utilice soluciones provisionales

Cambiar la ventana actual o hacer aparecer inesperadamente nuevas ventanas, puede ser muy desorientador para los usuarios que no saben lo que está ocurriendo.

11. Utilice las tecnologías y pautas W3C

No se debe utilizar formatos no recomendados por la W3C, ya que estos mucha de las veces no pueden ser navegados o visualizados por aplicaciones de usuario estándares. A menudo estos formatos requieren plug-ins o aplicaciones autónomas.

12. Proporcione información de contexto y orientación

Debido a que las relaciones complejas entre las partes de una página pueden resultar difíciles de interpretar a personas con discapacidades cognitivas o visuales, se recomienda agrupar los elementos y proporcionar información contextual de la relación entre dichos elementos. De esta manera se puede orientar a los usuarios para que puedan entender los elementos complejos.

13. Proporciones mecanismos claros de navegación

El objetivo de esta pauta es incrementar la probabilidad de que un usuario encuentre lo que está buscando.

14. Asegúrese de que los documentos sean claros y simples

Se puede ayudar a los usuarios implementando una maquetación coherente de páginas, con gráficos reconocibles y con un lenguaje claramente comprensible. Al utilizar documentos con un lenguaje claro y simple se beneficia a aquellos usuarios en los cuales el primer idioma es diferente al utilizado en el documento.


DEFINICIÓN DEL PROBLEMA

Introducción

En este capítulo primeramente se hace un análisis de la situación actual del proceso de enseñanza-aprendizaje en la Universidad Técnica Particular de Loja (UTPL) y de cómo aporta en dicho proceso el uso de la plataforma Moodle.

Brevemente se revisa la manera como los estudiantes y los tutores participan en el desarrollo de un curso, así mismo se comentan los problemas que se debe tratar para llegar a definir el problema específico que se va a resolver en el presente proyecto de tesis.

Para definir con claridad el problema se plantea una pregunta que es la que define lo que se va a desarrollar. Con el fin de dar respuesta a la pregunta planteada se define una metodología de investigación. Para poder lograr el desarrollo del presente proyecto se establecen cada uno de los conceptos de la metodología que se va a seguir. Entre estos conceptos se establecen los objetivos, los resultados esperados y la justificación del trabajo que se está realizando. Finalmente en este capítulo se plantea una hipótesis de trabajo para finalmente con los resultados que se obtendrán verificar la validez de la misma.

El documento completo sobre este capítulo, se la encuentra en: https://docs.google.com/document/pub?id=1Nb15XR9Oiv12BWzJmfs1q7OMcjMa6xp9Gws4zX6vxKg


ANÁLISIS Y DEFINICIÓN DE LA SOLUCIÓN

Introducción

Para el análisis del problema, primeramente se hace un planteamiento de los requerimientos encontrados según la definición del problema y tomando en cuenta todos los sub-problemas que se tiene que resolver. Seguidamente se hace la definición de la solución con la cual se pueda satisfacer todos los requerimientos planteados.

Con la solución definida se explica el proceso a seguir con esta solución y se describe cada uno de los elementos que conforman la misma, los elementos son presentados en un esquema general y luego se hace una explicación del funcionamiento de cada uno de ellos.

Finalmente para terminar el capitulo se presentan las ventajas de aplicar la solución definida y se plantea un escenario de trabajo sobre el cual se va a llevar a cabo el desarrollo del presente proyecto.

El documento completo sobre este capítulo, se lo encuentra en: https://docs.google.com/document/pub?id=1c-nk6RWuOcb-nYQAXn8ls8DYs3bm7cP5KrGzRB4sK74


DESARROLLO DEL MODULO TUTOR

Introducción

En este capítulo se hace el desarrollo e implementación del módulo tutor integrado a Moodle. Todo el desarrollo del módulo tutor se basa en las fases propuestas por la metodología XP, la misma que presenta ciertos elementos y características que nos ayudarán en el proceso de desarrollo.

En la primera fase de la metodología se presenta todos los pasos a seguir para especificar los requisitos de software necesarios para implementar el modulo tutor y para realizar el diseño. Seguidamente se define un plan de pruebas que ayudará a verificar el funcionamiento de la interfaz en el ingreso de recomendaciones.

Seguidamente se muestra la segunda fase de la metodología donde se procede a implementar el modulo tutor definiendo la arquitectura a implementar y el modelo de datos que se va a utilizar. Así mismo en esta fase se muestra la integración del modulo tutor con Moodle una vez que ya ha sido desarrollado, mostrando las vistas de las interfaces desarrolladas y dando una breve explicación de un ejemplo de ingreso de recomendaciones.

Al final del capítulo se muestra la fase de pruebas donde se verifica el correcto funcionamiento de la interfaz integrada a Moodle.

El documento completo sobre este capítulo, se lo encuentra en: https://docs.google.com/document/pub?id=1QefHBZQ6vwwqwZnMTuI-gH24pCEqUsRE0AaVrweOoI8

DISCUSIÓN

En el proceso de diseñar la interfaz del módulo tutor para el ingreso de recomendaciones se ha seguido ciertas actividades de las cuales podemos analizar los resultados obtenidos. La primera de las actividades fue diseñar un modelo de datos que permita definir todos los elementos que contiene una recomendación, cuando ya se ha definido todos los elementos que forman una recomendación se pudo pasar a una actividad siguiente que fue la de implementar la interfaz del modulo tutor. Con la implementación de la interfaz finalmente la actividad que se hizo fue la integración del módulo tutor con Moodle. A continuación se hace un análisis de los resultados obtenidos en cada una de las actividades ya mencionadas.

Resultados del diseño del modelo de datos para el módulo tutor

La parte más importante en esta actividad fue la de entender el funcionamiento de los sistemas recomendadores y de determinar todos los elementos que conforman una recomendación, en la sección 3.4 se hace una descripción de los componentes de la solución y de los elementos de la recomendación. El modelo de datos definido para el módulo tutor se lo muestra en la Figura D.1.1 donde se puede observar todas las entidades definidas que sirven para guardar la información necesaria para la creación de recomendaciones, la descripción de estas entidades con todos sus atributos se la hace en la sección D.1.

Primeramente se ha pensado en las entidades del modelo de las cuales se necesita información para empezar el proceso de creación de las recomendaciones. Estas entidades son: la que almacena las diferentes categorías existentes a las que puede pertenecer una recomendación (sr_categoria); la que almacena los tipos de recomendación (sr_tipo_recomendacion); la entidad donde se almacena la técnica con la que se genera la recomendación (sr_tecnica) cuando se crea la recomendación la técnica que se utiliza es denominada "manual" ya que es hecha siguiendo pasos específicos por un tutor y no tiene que ser especificada en la interfaz sino que se registra por debajo una vez que se haya guardado la recomendación; las entidades donde se definen los valores de estereotipos y los atributos de modelo de usuario que sirven para definir las condiciones de aplicabilidad de la recomendación (mu_atributos_modelo_usuario y mu_valores_estereotipos); y las tablas de Moodle que contienen la información de los cursos y de los usuarios entre los cuales están involucrados los estudiantes y el tutor (mdl_course y mdl_user).

Luego se ha pensado en definir las entidades en las cuales se almacene la información cuando el tutor termine el proceso y requiera guardar la información de la recomendación, estas entidades son: la entidad principal donde se guarda la información básica de la recomendación y la relación con las demás entidades (sr_recomendacion); la entidad donde se almacene las condiciones de aplicabilidad definidas para la recomendación (sr_condicion); y la entidad donde se almacena las restricciones de vencimiento que determinan hasta cuándo o cuantas veces se debe mostrar la recomendación al estudiante (sr_restricciones_vencimiento).

Resultados obtenidos de la implementación de la interfaz del módulo tutor integrada a Moodle

Se realizo la implementación de la interfaz para el ingreso se recomendaciones siguiendo el proceso de la metodología de desarrollo XP descrita en la sección 4.2 y aplicando el uso de estándares y normas de usabilidad y accesibilidad, además se hizo referencia al diseño e implementación de las interfaces de las páginas web desarrolladas en Moodle, muchas de las funciones de programación utilizadas en Moodle han servido para el diseño del interfaz del módulo tutor. Moodle maneja un esquema en el cual se puede tener una conexión abierta a la base de datos y así poder realizar las tareas de manipulación de la información, tanto de inserción como de consulta con funciones establecidas sobre la misma plataforma.

La metodología XP resultó útil para la implementación ya que es un proceso que se sigue con el fin de lograr un desarrollo rápido generando la documentación necesaria y suficiente para que se entienda el desarrollo hecho. Las tarjetas CRC presentadas en la sección 4.3.1.3 que se realizaron resultaron muy útiles para poder definir y llegar al diseño del diagrama de clases, este último que se lo presenta en la sección 4.3.2.4 generó una visión previa de la relación de los componentes de la solución y permitió seguir con la codificación y diseño de la interfaz.

La interfaz desarrollada cuenta con los mecanismos de navegación que facilitará a los tutores en el ingreso de recomendaciones. Cuenta con botones de ayuda con la información de todos los campos que se deben ingresar, explicando los datos que deben ingresar y también de las opciones disponibles que pueden escoger. Como ya se mencionó la interfaz utiliza algunas de las funciones de código implementadas en Moodle por lo que tiene un diseño muy similar a todas las sus páginas, esto ayudaría a que el tutor no se sienta en otro contexto y más bien se familiarice pronto con la interfaz y se sienta motivado a utilizarla.

La integración del módulo tutor con Moodle resultó compleja ya que se tuvo que hacer un análisis de cómo está estructurada toda la plataforma Moodle y la forma cómo interactúan las interfaces de las páginas web con la base de datos. Sin embargo una vez ya conociendo la estructura y el funcionamiento se pudo hacer la implementación de la integración con Moodle, lo que se hizo fue crear un bloque para que se muestre cuando un tutor a ingresado a un curso, este bloque contiene el enlace con la opción de crear una recomendación que re direcciona hacia la interfaz del módulo tutor con la información del curso y del tutor encargado del curso.


CONCLUSIONES

En la elaboración del presente proyecto de tesis se ha tratado la implementación del módulo tutor para el ingreso de recomendaciones. Para lo cual se ha realizado un breve estudio sobre la estructura de los sistemas recomendadores, así como la determinación de los elementos que conforman una recomendación para luego diseñar una interfaz web integrada a Moodle que permita a los tutores el ingreso de recomendaciones. De todo el trabajo realizado se puede concluir lo siguiente:

  • Aplicando las pruebas de validación de la interfaz se determinó que la interfaz del módulo tutor se diseñó con un nivel de detalle sencillo que permite a los tutores el fácil ingreso de las recomendaciones.
  • Se ha definido un modelo en el cual se considera un tipo categorizado al que pertenece la recomendación, una técnica manual para el ingreso de las recomendaciones hecha por el tutor, las condiciones de aplicabilidad que determinan a quien se debe ofertar la recomendación, elementos básicos que explican el fin de la recomendación y restricciones de vencimiento que determinan hasta cuándo debe mostrarse una recomendación a cada estudiante.
  • Las recomendaciones son creadas dentro de los cursos de Moodle siempre y cuando el tutor haya iniciado sesión y pueden ser ofertadas a los estudiantes pertenecientes al curso en el que se las creó.
  • Solamente los tutores encargados de los curso son los que pueden crear las recomendaciones, cuando un estudiante ingresa al curso, la opción de crear una recomendación no se muestra.
  • Las recomendaciones creadas por los tutores son almacenadas con un estado pendiente de validación para que luego de ser validadas en la interfaz de administración se puedan ofertar a los estudiantes.
  • El presente trabajo realizado es solo un módulo de todo un sistema recomendador que con la información del modelo de usuario crea las recomendaciones para que estas puedan ser ofertadas al estudiante por otro módulo componente del sistema.
  • Seguir los pasos y principios de la metodología XP resultó muy útil ya que se necesito hacer un desarrollo rápido.
  • Las condiciones de aplicabilidad que se lograron definir para una recomendación son: para todo un curso, para un estudiante objetivo o aplicando los valores de los atributos del modelo de usuario, también se pueden definir combinaciones entre ellas.
  • Elaborar un plan de pruebas ha servido para determinar qué validar al momento de poner a prueba el funcionamiento de la interfaz con el ingreso de recomendaciones.
  • La ayuda proporcionada en la interfaz sirve de guía para el tutor en el proceso de creación de una recomendación, ya que cuando el tutor tiene duda sobre la información que debe ingresar puede recurrir a la ayuda mostrada junto al campo en el que está trabajando.

RECOMENDACIONES

De acuerdo a las conclusiones que se han logrado determinar en el desarrollo del presente proyecto, se plantean las siguientes recomendaciones:

  • En el diseño de una interfaz web para ingresar recomendaciones se debe considerar que no todos los tutores tienen conocimientos avanzados en informática y menos aún en sistemas recomendadores por lo que se recomienda realizar este diseño tomando en cuenta los estándares de usabilidad y accesibilidad.
  • Se debe tomar en cuenta que al integrar un módulo tutor a una plataforma educativa ya existente, este debe seguir el mismo estilo de diseño para que los tutores se sientan en el mismo contexto al momento de ingresar las recomendaciones.
  • Se recomienda tener un conocimiento del funcionamiento general de un sistema recomendador con el fin de desarrollar un modulo que se pueda integrar con los demás módulos que conforman todo el sistema.
  • Es recomendable considerar el crecimiento estudiantil en el ámbito donde se está trabajando al momento de definir las condiciones para los atributos de modelo de usuario, ya que estos atributos pueden aumentar conforme incrementa la cantidad de estudiantes.
  • Para la integración del módulo se recomienda hacer un análisis de la estructura y funcionamiento de la plataforma educativa en este caso Moodle con el fin de hacer rápida la fase de implementación e integración.
  • Es recomendable realizar un modelo de datos general de todo el sistema recomendador y sobre este trabajar utilizando las entidades relacionadas con cada modulo, esto ayudaría al momento de integrar cada uno de los módulos para formar el sistema recomendador completo.

ANEXOS

El documento con todos los anexos se lo encuentra en: https://docs.google.com/document/pub?id=1oCWft2bllzvUv8vG5xcZ3QHn6gRsV-CpGV6t6H0nAnY

REFERENCIAS

10 Useful Web Application Interface Techniques'. (2009). Retrieved Julio 2, 2010, from http://www.smashingmagazine.com/2009/01/12/10-useful-web-application-interface-techniques/

Arboleda Jiménez, H. F. (2005). Modelos de ciclos de vida en desarrollo de software. Retrieved Octubre 17, 2009, from http://www.acis.org.co/index.php?id=551

Calero Solís, M. (2004). Una explicación de la programación extrema (XP). Retrieved Octubre 22, 2009, from http://www.willydev.net/descargas/prev/ExplicaXP.pdf

Candillier, L., Jack, K., Fessant, F., & Meyer, F. (2009). State-of-the-Art Recommender Systems.

Cueva, J. M. (2004). Usabilidad en la web. Retrieved Julio 6, 2010, from http://www.di.uniovi.es/~cueva/asignaturas/doctorado/2004/UsabilidadWeb.pdf

De Castro Lozano, C., Rubio Royo, E., Fidalgo Blanco, A. F., García Salcines, E., Artiles Larralde, A., & Fernández Buron, F. J. (2006). e-aprendo, Virtual Learning Management based on Moodle. Retrieved Julio 13, 2009, from http://www.formatex.org/micte2006/pdf/40-44.pdf

Ejemplos de E-learning (Moodle). (n.d.). Retrieved junio 30, 2010, from http://estudios.universia.es/seccionEspecial.jsp?idEspecial=117&idSeccion=5759&title=EJEMPLOS-E-LEARNING-MOODLE&idSeccionAd=5

García Salcines, E., Romero Morales, C., Ventura Soto, S., & De Castro Lozano, C. (2008, Mayo 1). Sistema Recomendador colaborativo usando minerminería de datos distribuida.

Haruechaiyasak, C., Shyu, M.-L., & Chen, S.-C. (2004). A Data Mining Framework for Building AWeb-Page Recommender System. Retrieved Junio 10, 2010, from http://users.cis.fiu.edu/~chens/PDF/iri04_recommender.pdf

Itmazi, J. (2005). Retrieved Diciembre 19, 2008, from http://hdl.handle.net/10481/714

Itmazi, J., & Megías, M. (2007, Abril 3). Using Recommendation Systems in Course Management Systems to Recommend Learning Objects.

Jara, D. I., Sarango, C. P., Valdiviezo, P., Agila, M., & Pesántez, V. R. (2009, Junio 17). Sistemas Adaptativos Educativos: Perspectiva Adaptativa para Moodle. Retrieved from http://www.iiis.org/CDs2008/CD2009CSC/SIECI2009/PapersPdf/X811EV.pdf

Joscowicz, J. (2008, Febrero 10). Reglas y Prácticas en eXtreme Programming. Retrieved Octubre 22, 2009, from http://iie.fing.edu.uy/~josej/docs/XP%20-%20Jose%20Joskowicz.pdf

Letelier, P., & Penadés, M. C. (2003). Métodologías ágiles para el desarrollo de software: eXtreme Programming (XP). Retrieved Agosto 19, 2009, from http://www.willydev.net/descargas/masyxp.pdf

López López, J. D. (2009, Diciembre 19). Scribd. Retrieved Junio 29, 2010, from Scribd: http://www.scribd.com/doc/28159196/Sistemas-Recomendadores-Conceptos-y-Tipos?secret_password=&autodown=pdf

Ludivine, M., Santos, O., Mazzone, E., & Boticario, J. (2008). Management of recommendations for accesible eLearning platforms.

Matera, M., Rizzo, F., & Toffetti Carughi, G. (2005). Web Usability: Principles and Evaluation Methods. Retrieved Julio 1, 2010, from http://www.webml.org/webml/upload/ent5/1/WebUsability-MateraEtAl.pdf

Maxey, C. (2002). User Interface Design. Retrieved Julio 2, 2010, from http://www.wpdesign.com/UserInterfaceDesign.html

O`Connor, M., Cosley, D., Konstan, J. A., & Riedl, J. (2002). Polylens: A Recommender System for Groups of Users. Retrieved from http://www.grouplens.org/node/218

Pressman, R. S. (2006). Ingeniería del Software. Mexico D.F.: mcGraw-Hill.

Rubin, D. M. (1998). Retrieved Febrero 6, 2010, from Introduction to CRC cards: http://www.softstar-inc.com/Download/Intro%20to%20CRC.pdf

Santos, O. C., & Boticario, J. G. (2008). Users’ experience with a recommender system in an open source standard-based learning management system. Retrieved Enero 12, 2009, from https://adenu.ia.uned.es/web/es/system/files/USAB08_santos-boticario.pdf

Schafer, J. B. (2004). Retrieved from http://www.cs.uni.edu/~schafer/publications/schafer_IUI_workshop.pdf

Sommerville, I. (2004). Software Engineering.

Standardized Approaches to Usability - ISO 9241 . (2009). Retrieved Julio 6, 2010

The Process of User Interface Design. (n.d.). Retrieved julio 5, 2010, from http://cfg.cit.cornell.edu/design/process.html

Torres Barzabal, L. (2004). ACCESIBILIDAD AL CONTENIDO WEB PARA TODAS LAS PERSONAS. Retrieved Julio 6, 2010, from http://tecnologiaedu.us.es/bibliovir/pdf/agosto01.pdf

Usero Ruiz, A., & Valero Vergara, F. J. (2004). Proyecto de Desarrollo Software. Retrieved Junio 21, 2009, from http://users.dsic.upv.es/asignaturas/facultad/lsi/ejemploxp/

XP Programación Extrema. (2004). Retrieved Junio 21, 2009, from http://www.clubdevelopers.com/prog/articulos/xp/downloads/xp.pdf



<references/>

Herramientas personales
Sitios UTPL