• No se han encontrado resultados

G UÍA DE I NICIACIÓN A LOS DATOS DE E DX

N/A
N/A
Protected

Academic year: 2022

Share "G UÍA DE I NICIACIÓN A LOS DATOS DE E DX"

Copied!
12
0
0

Texto completo

(1)

G UÍA DE I NICIACIÓN A LOS DATOS DE E DX

1. Introducción

Esta guía está dirigida a todo aquel que requiera información sobre los registros creados por la plataforma edX. En esta guía se resumen los conocimientos básicos necesarios para tratar los datos de edX generados de los MOOCs, creados por la Unidad de Tecnologías para la Información UAMx e impartidos por la Universidad Autónoma de Madrid (UAM).

Comenzaremos definiendo varios conceptos relacionados, veremos los ficheros de datos y sus contenidos, haciendo referencia a la documentación existente dónde se pueden hallar más detalles sobre los mismos.

En general, podemos encontrar toda la documentación de edX sobre la investigación de datos en el siguiente enlace: http://edx.readthedocs.io/projects/devdata/en/latest/

También es posible encontrar más información de interés en edX Insights.

http://edx.readthedocs.io/projects/edx-insights/en/latest/index.html#using-edx-insights

2. Conceptos básicos

En esta guía se da por hecho que el lector ya conoce el funcionamiento de la plataforma edX desde el punto de vista de un estudiante. Si no es así, recomendamos inscribirse y realizar el curso Demo de edX (https://www.edx.org/course/demox-edx-demox-1) o consultar su documentación (http://edx-guide-for-students.readthedocs.io/en/latest/), para familiarizarse con la estructura de aprendizaje secuencial que sigue la filosofía de edX.

Según edX, los representantes responsables de manejar los datos de los cursos se denominan Data Czar. Estos deberían estar familiarizados con el manejo de archivos CSV, hojas de cálculo, JSON, etc. para el manejo masivo de datos.

3. Ficheros de datos

A continuación, se listan los archivos que proporciona UAMx, posteriormente se detallan los registros de cada uno de ellos. Cada curso dispone de los siguientes archivos separados por ediciones:

COURSE: contiene la información general del curso.

- <id_curso>-course_structure-prod-analytics.json Estructura del curso en formato json.

Para más información consultar:

http://edx.readthedocs.io/projects/devdata/en/latest/internal_data_formats/course_

structure.html

- <id_curso>-student_courseenrollment-prod-analytics.sql Alumnos matriculados.

Para más información consultar:

http://edx.readthedocs.io/projects/devdata/en/latest/internal_data_formats/sql_sch ema.html#columns-in-the-student-courseenrollment-table

(2)

CSV: contiene datos anonimizados en formato CSV del perfil de los usuarios, la generación de certificados y el contenido de los foros.

- Profile<id_curso>.csv (Anonimizado) / <id_curso>-auth_userprofile-prod- analytics.sql (Original)

Perfil de los usuarios, anonimizado.

Para más información consultar:

http://edx.readthedocs.io/projects/devdata/en/latest/internal_data_formats/sql_sch ema.html#columns-in-the-auth-userprofile-table

- Certificates<id_curso>.csv (Anonimizado) / <id_curso>- certificates_generatedcertificate-prod-analytics.sql (Original) Generación de certificados, anonimizado.

Para más información consultar:

http://edx.readthedocs.io/projects/devdata/en/latest/internal_data_formats/sql_sch ema.html#certificate-data

- Social<id_curso>.csv (Anonimizado) / <id_curso>-prod.mongo (Original) Comentarios de los foros, anonimizado.

Para más información consultar:

http://edx.readthedocs.io/projects/devdata/en/latest/internal_data_formats/discussi on_data.html

EVENTOS: logs diarios de las interacciones de los usuarios anonimizados.

Para más información consultar:

http://edx.readthedocs.io/projects/devdata/en/latest/internal_data_formats/tracking_log s.html

4. Registros

En este apartado, se detallan los ficheros originales que el sistema registra. A partir de estos ficheros es necesario considerar qué campos pueden contener información sensible.

Para cada uno de los campos se pueden realizar tres opciones:

 Si el campo no contiene información sensible, dejarlo tal y como está.

 Si el campo contiene información sensible, encriptar o sustituir la información para que se pueda agrupar por ese campo pero no se pueda identificar la misma.

 Si el campo contiene información sensible, eliminar el campo para que no se pueda agrupar por ese campo ni acceder a la información.

La información presentada a continuación se estructura de la siguiente manera: primero el título del fichero. A continuación, una breve descripción del mismo. Seguida de la información de los campos que lo componen. Luego se muestra un ejemplo de una entrada del fichero. Y por último, se propone qué se puede hacer con los campos que se consideran sensibles.

(3)

USER_ID_MAP

Este fichero sirve como información auxiliar para relacionar el código hash asignado al id y al nombre de usuario de cada usuario registrado en el curso.

Campos

Hash_id: código hash que identifica a un usuario.

Id: identificador numérico de cada usuario

Username: nombre de usuario.

Ejemplo

hash_id id username

e4010105de5ed48a4d4547ee72b707a8 1490478 KristerEdx

Propuesta

Este fichero es de uso interno y nunca se proporcionará a los profesores. Contiene la correspondencia entre el username (que consideramos debe permanecer anónimo y por lo tanto no debe ser revelado) y el código id, también llamado en otros ficheros user_id (y que sin la información de username no permite identificar al usuario).

EVENTS

Este fichero se obtiene a partir de la composición de varios ficheros. En él mismo se almacena información relacionada a los eventos generados durante el uso de la plataforma por parte de los estudiantes.

Campos

Username: nombre del usuario que origina el evento generado.

Event_type: indica el tipo de evento lanzado. Tiene la siguiente estructura:

/courses/[identificador del curso]/[tipo de evento]

Ej: /courses/course-v1:UAMx+Android301x+3T2015/info

IP: contiene la dirección ip del usuario desde el que se realiza la actividad.

Ej: 150.244.208.55

Agent: especifica el navegador web desde el que se está realizando la actividad.

Ej: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:41.0 Gecko/20100101 Firefox/41.0

Host: el host es el servidor que provee de servicio al resto de ordenadores conectados.

En este caso siempre va a ser “courses.edx.org”.

Referer: indica la dirección del curso en cuestión.

(4)

Ej: https://studio.edx.org/course/course-v1:UAMx+Android301x+3T2015

Accept_language: proporciona información sobre el idioma en el que el usuario está realizando la actividad.

Ej: es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3

Event: contiene información específica del evento que se está realizando.

Ej. 1: {\"POST\": {}, \"GET\": {}}

Ej. 2: {"course_id": "course-v1:UAMx+Android301x+3T2015", "user_id":

8530682, "mode": "honor"}

Event_source: indica quien ha procesado la actividad. Puede ser:

o ‘browser’

o ‘mobile’

o ‘server’

o ‘task

Context: contiene información más específica del evento. Está compuesta por los siguientes campos:

o User_id: identificador del usuario que está realizando la acción.

o Org_id: organización responsable de los eventos. En este caso siempre va a ser

“UAMx”

o Course_id: identificador del curso desde el que se está realizando la actividad.

o Path: es la url que genera el evento.

Ej: {"course_user_tags": {}, "user_id": 6348688, "org_id": "UAMx", "course_id":

"course-v1:UAMx+Android301x+3T2015", "path": "/courses/course- v1:UAMx+Android301x+3T2015/info"}

Time: fecha y hora del momento en el que se produce el evento.

Ej: 2015-10-05T14:48:04.482163+00:00

Page: es un campo para eventos de vídeo que han sido generados desde dispositivos móviles. Identifica la URL del componente de vídeo.

Ej:"http://courses.edx.org/courses/edX/DemoX/Demo_Course/courseware/d8 a6192ade314473a78242dfeedfbf5b/edx_introduction"

Name: identificador del evento disparado.

Ej: “edx.course.enrollment.activated”

Session: valor de 32 caracteres que identifica la sesión del usuario.

Ej: "4abde8fe1ac9959de16e1d0aa462ebbb"

Para una explicación más extensa y detallada es recomendable visitar la documentación original:

http://docstrings.readthedocs.io/en/latest/internal_data_formats/tracking_logs.html#commo n-fields

Ejemplo

No se incluye aquí pues se han ido detallando en cada uno de los campos

(5)

Propuesta

1. Sustituir el valor de username por el identificador numérico de usuario (campo id del fichero anterior, USER_ID_MAP)

2. Encriptar la dirección IP utilizando el algoritmo de reducción criptográfico MD5 3. Dejar el resto de campos como están

AUTH_USER

Este fichero muestra información sobre los usuarios que tienen acceso un curso específico.

Campos

Id: identificador único de un usuario.

o Ej: 1490478

Username: Nombre elegido por el usuario.

o Ej: KristerEdx

first_name: Nombre del usuario o Ej: Krister

last_name: Apellido del usuario o Ej: Svensson

email: Correo del usuario o Ej: [email protected]

password: indica la contraseña del usuario. Este campo está vacio.

is_staff: Indica si un usuario es staff o no. Se representa con un ‘1’ si lo es y con un ‘0’

en caso contrario.

is_active: Indica si un usuario ha activado su cuenta a través del correo de activación enviado por edx. El valor de éste campo se pondrá a ‘1’ si el usuario ha llevado a cabo la activación y ‘0’ en caso contrario.

is_superuser: Indica si un usuario es un usuario con privilegios. Se representa con un

‘1’ si lo es y con un ‘0’ en caso contrario.

last_login: Campo que indica el último momento en el que se ha identificado en la plataforma

o Ej: 2016-05-05 14:31:59.722332

date_joined: indica la fecha en la que el usuario se registró en la plataforma o Ej: 2013-03-27 17:19:57

Las siguientes columnas, aunque aparezcan en el fichero de registro son obsoletas. A partir del 2012 se dejó de recoger información sobre ellas por lo que los campos se muestran vacíos:

status

email_key

avatar_type

country

(6)

show_country

date_of_birth

interesting_tags

ignored_tags

email_tag

filter_strategy

display_tag_filter_strategy

consecutive_days_visit_count

Ejemplo

id username first_name last_name email password is_staff is_active

is_superuser last_login date_joined status email_key avatar_typ country show_country date_of_birth interesting_tags ignored_tags email_tag_filter_strategy display_tag_filter_strategy

consecutive_days_visit_count

9999999 AAAAAAAAA AAAAAA AAAAAA 1 1 0 2014-01-01 17:28:27 2012- 03-04 00:57:49 NULL 0 NULL 0 0

Propuesta

1. Eliminar:

a. username b. first_name c. last_name d. email e. password

2. Dejar el resto de campos como están

AUTH_USERPROFILE

Este fichero almacena datos demográficos de los usuarios.

Campos

Id: es la clave primaria del registro, no hace referencia a nada.

user_id: identificador del usuario.

name: Nombre completo de un usuario.

language: Campo no usado

location: Campo no usado

meta: Campo opcional con infomación en formato JSON. Permite asociar metainformación con cada usuario.

(7)

courseware: Campo no usado.

gender: Indica el género del usuario. Puede ser ‘f’ para el género femenino, ‘m’

masculino, ‘o’ para otro o no especificado, ‘(blank)’ para los usuarios que no especifican su género y NULL para los usuarios que no respondieron a esta cuestión, o para los que se registraron antes de que pidiesen esta información.

mailing_address: Campo no usado.

year_of_birth: Fecha de nacimiento.

level_of_education: Nivel educativo

goals: En este campo, se introduce el motivo por el que el usuario ha querido registrarse en la plataforma. Esta información se recoge durante el registro.

allow_certificate: Está siempre a ‘1’.

country: Indica mediante dos caracteres, el país de procedencia del usuario.

city: Campo vacío.

bio: Almacena información comentada sobre la biografía del usuario ingresada por el mismo.

profile_image_uploaded_at: Indica la fecha y la hora en la que el usuario subió una foto de perfil.

Ejemplo

id user_id name language location meta courseware gender

mailing_address year_of_birth level_of_education goals allow_certificate

country city bio profile_image_uploaded_at

9999999 AAAAAAAA AAAAAAAAA English MIT {"old_emails":

[["[email protected]", "2012-11-16T10:28:10.096489"]], "old_names":

[["BBBBBBBBBBBBB", "I wanted to test out the name-change functionality",

"2012-10-22T12:23:10.598444"]]} course.xml NULL NULL NULL NULL NULL

1 NULL Hi! I'm from the US and I've taken 4 edX courses so far.

I want to learn how to confront problems of wealth inequality. 2016- 04-19 16:41:27

Propuesta

1. Eliminar:

a. name

b. mailing_address

2. Los siguientes campos pueden ser útiles para las investigaciones pero desconocemos hasta qué punto se puede dejar el valor de gender, year_of_birth, level_of_education, country y bio como está o es necesario eliminarlos.

3. Dejar el resto de campos como están

(8)

CERTIFICATES_GENERATEDCERTIFICATE

Este fichero almacena el estado de los certificados y la nota final que ha sacado cada usuario en el curso.

Campos

Id: clave primaria de la tabla. No contiene información relevante.

user_id: identificador del usuario.

download_url: contiene la URL completa para acceder al certificado.

grade: calificación que ha obtenido el usuario en el curso

course_id: identificador del curso.

key: campo usado de forma interna por edX. Lo utilizan para unir las peticiones del servidor con las respuestas enviadas por LMS (herramienta que usan los estudiantes para acceder al contenido del curso).

distinction: campo no usado.

status: una vez que el curso ha sido evaluado, y los certificados han sido emitidos, el campo puede obtener los siguientes valores:

o downloadable

o audit_passing

o notpassing

o audit_notpassing

verify_uuid: código hash que verifica la validación del certificado.

download_uuid: código hash que identifica al usuario del certificado.

name: almacena el nombre del estudiante.

created_date: fecha en la que el registro de la tabla ha sido creado.

modified_date: fecha en la que el registro de la tabla ha sido modificado.

error_reason: usado de forma interna por edX. Indica logs de mensajes que son usados para corregir errores si el proceso de generación del certificado falla.

mode: Indica el modo en el que el usuario está siguiendo el curso.

Ejemplo

id user_id download_url grade course_id key distinction status verify_uuid download_uuid name created_date modified_date error_reason mode

15906225 29298 0.0 course-v1:UAMx+Equidad801x+1T2016 0

notpassing Alan Omar Torres Lopez 2016-05-03 19:58:21

2016-05-03 19:58:21 honor

Propuesta

1. Dejar los campos como están

PROD.MONGO

(9)

Este fichero muestra una descripción sobre los comentarios (Comment) o los hilos que siguen un comentario (CommentThread).

Campos

_id: Identificador único generado automáticamente por la base de datos MongoDB.

_type: Puede tener dos valores posibles, ‘Comment’ y ‘CommentThread’.

anonymous: Si el valor está a true, el comentario ha sido publicado como anónimo.

Anonymous_to_peers: Si el valor está a true, el mensaje será publicado como anónimo para los usuarios, pero el equipo organizador del curso podrá ver el nombre del usuario.

At_position_list: campo no usado.

Author_username: es el nombre de usuario de la persona que ha escrito una discusión o un comentario.

Body: texto del comentario que haya escrito un usuario.

Course_id: identificador del curso donde se ha escrito el comentario.

Created_at: fecha en la que se ha creado el comentario.

Update_ad: fecha en la que se ha actualizado el comentario.

Votes: indica las votaciones positivas y negativas que ha recibido cada comentario.

Closed: si este campo se encuentra a true, significa que el hilo del comentario ha sido cerrado por el moderador o el administrador.

Comment_count: indica el número de comentarios que contestan a uno en específico.

Commentable_id: este campo permite asignar un comentario o un hilo de comentarios a una categoría específica del curso.

Last_activity_at: indica la última fecha en la que ha habido alguna actividad en un hilo de comentarios.

Tags_array: campo no usado.

Title: título del hilo.

Thread_type: indica el tipo de hilo del que se trata. Pudiendo ser una pregunta o una discusión.

Visible: no usado.

Abuse_flaggers: almacena el id del usuario que ha seleccionado la opción de reportar un incidente en un comentario.

Historical_abuse_flagger: si el moderador del curso desactiva la opción de reportar un incidente, los id´s de abuse_flaggers son eliminados y movidos a este campo.

Endorsed: indica la fecha y el id del usuario que ha contestado a un comentario.

Comment_thead_id: identificador si un comentario pertenece a un hilo de comentarios.

Parent_ids: contiene el id del comentario al que un usuario ha contestado.

Sk: número generado de forma aleatoria para mejorar el rendimiento en el uso online de la plataforma.

(10)

Ejemplo

{"_id":{"$oid":"5706c135209a65051e00003b"},"votes":{"up":[],"down":[],"up_count":0,"down _count":0,"count":0,"point":0},"visible":true,"abuse_flaggers":[],"historical_abuse_flaggers":[],

"_type":"CommentThread","thread_type":"discussion","context":"course","comment_count":

0,"at_position_list":[],"title":"Equidad y situación actual","body":"Para el caso de Honduras La tasa neta de cobertura de los niveles 0 - 2 alcanza hasta un 90%. Sin embargo la problemática de acceso según la Secretaría de Educación, 2015 comienza a descender en el tercer nivel llegando hasta un 26.2%, por tanto en el sexto apenas se logra una cobertura del 15%

información compartida por la Dirección de Educación Superior.\n\nEn el nivel 6 para el año 2013 alrededor de 1.15 millones de jóvenes entre 18 a los 24 años, apenas 183,626 mil asistieron a un centro de educación superior, siendo aislados 975,000 ese año la tasa de cobertura neta alcanza solamente un 15.8% (Dirección de Educación Superior, 2015) .\n\nPara el caso de las mujeres el Instituto Nacional de Estadísticas de Honduras (INE) señala que 1,542,947 mujeres se encuentran entre los 0 a 14 años; pero de estas pequeñas hondureñas, La Tasa de Cobertura Escolar a nivel nacional es del 56.9 por ciento para las mujeres y de 57.8 para los hombres. Esta información se extiende en otros ámbitos políticos y económicos.\nSolís \u0026 Moncada explican \"Es claro que la igualdad de acceso no es suficiente para garantizar la calidad educativa sino se proporcionan programas de similar calidad a todos\" en especial cuando al analizar los datos estadísticos la evidencia señala que el aprendizaje tanto en instituciones privadas como en públicas no tienen una diferencia significativa .\nInterprétese lo anterior en la elección educativa de los padres que por su condición socioeconómica prefieren elegir el sector privado, no necesariamente van a existir diferencias significativas a excepción del idioma que en términos prácticos eso es lo que están pagando, a pesar que en el sector público se tienen menos recursos e infraestructura en beneficio de los estudiantes.\n","course_id":"course- v1:UAMx+Equidad801x+1T2016","commentable_id":"2a839d149b80b49f0bf47872e7aa8fc5c3 96e661","anonymous":false,"anonymous_to_peers":false,"closed":false,"author_id":"8606268

","author_username":"RinaMunguia","updated_at":{"$date":"2016-04- 07T20:21:09.553Z"},"created_at":{"$date":"2016-04-

07T20:21:09.553Z"},"last_activity_at":{"$date":"2016-04-07T20:21:09.553Z"}}

Propuesta

1. Sustituir el valor de Author_username por el identificador numérico de usuario (campo id del fichero anterior, USER_ID_MAP)

2. Desconocemos hasta qué punto se puede dejar el valor del campo Body como está o es necesario eliminarlo.

3. Dejar el resto de campos como están

COURSE_STRUCTURE

Fichero usado para almacenar la estructura del curso.

(11)

Campos

Category: indica la categoría de cada elemento del curso. Puede ser ‘chapter’, ‘course’,

‘discussion’, ‘html’, ‘problem’, ‘sequential’, ‘vertical’ o ‘video’.

Children: identifica el modulo al que pertenece el elemento del curso.

Metadata: campo del tipo clave-valor que describe configuración definida en el curso y cada uno de los módulos que lo contiene.

Course_data: describe una lista con todas las secciones definidas en el curso.

Ejemplo

"block-

v1:UAMx+Equidad801x+1T2016+type@chapter+block@6d023bde7bbd427bb88f2636f89278d 3": {

"category": "chapter", "children": [

"block-

v1:UAMx+Equidad801x+1T2016+type@sequential+block@dcbe146cd880453ca613c2de81e2e 39b",

"block-

v1:UAMx+Equidad801x+1T2016+type@sequential+block@8bd8cc5779894028a016e2e6b4331 242",

"block-

v1:UAMx+Equidad801x+1T2016+type@sequential+block@eecb172143e640cc9b4481a21912b b93",

"block-

v1:UAMx+Equidad801x+1T2016+type@sequential+block@7430ca37be74442fa02ac1d77057c ab6",

"block-

v1:UAMx+Equidad801x+1T2016+type@sequential+block@78bf4355a9104d4d8a7b6491c4f77 9e3",

"block-

v1:UAMx+Equidad801x+1T2016+type@sequential+block@b6838db3dd2042f9b0dc71bccdd25 d3c"

],

"metadata": {

"display_name": "6. Hacia escuelas y sociedades m\u00e1s inclusivas", "start": "2016-04-05T00:00:00Z"

} }

Propuesta

1. Dejar los campos como están

(12)

STUDENT_COURSEENROLLMENT

En este fichero, cada registro que se genere representa a un usuario matriculado en el curso.

Campos

Id: Clave primaria de la tabla.

user_id: id del usuario matriculado.

course_id: id del curso al que el usuario se ha registrado.

Created: Almacena la fecha y la hora en la que el registro ha sido creado.

is_active: Indica si el registro ha sido confirmado y activado.

Mode: indica el modo en el que se ha registrado el usuario.

Ejemplo

id user_id course_id created is_active mode

1135683 9999999 edX/DemoX/Demo_course 2013-03-19 17:20:58 1 honor

Propuesta

1. Dejar los campos como están

Los datos de la que dan en lesta parte de la información

Referencias

Documento similar