Está en la página 1de 5

Machine Translated by Google

Progresión de habilidades en MIT App Inventor


Benjamin Xie, Hal Abelson
Departamento de Ingeniería Eléctrica y Ciencias de la Computación Instituto
Tecnológico de Massachusetts Cambridge, MA 01239 Correo
electrónico: {bxie, hal}@mit.edu

Resumen—Este documento contribuye al creciente cuerpo de investigación Estos estudiantes autodidactas aprenden principalmente siguiendo tutoriales
que intenta medir el aprendizaje informal en línea. Analizamos la progresión de creación de aplicaciones paso a paso [5]. Nuestra visión es comprender
de habilidades en MIT App Inventor, un entorno de aprendizaje informal en
cómo las personas aprenden el pensamiento computacional utilizando App
línea con más de 5 millones de usuarios y 15,9 millones de proyectos/
Inventor para que estas experiencias de aprendizaje informales en línea
aplicaciones creadas. Nuestro objetivo es comprender cómo las personas
aprenden conceptos de pensamiento computacional mientras crean puedan integrarse en los planes de estudios STEM.
aplicaciones móviles con App Inventor. En particular, estamos interesados en Este documento explora cómo las personas desarrollan habilidades
la relación entre la progresión de la habilidad en el uso de la funcionalidad de computacionales mientras crean aplicaciones con MIT App Inventor. En
App Inventor y en el uso de conceptos de pensamiento computacional a
particular, exploramos la relación entre el desarrollo de habilidades que son
medida que los alumnos crean más aplicaciones. Modelamos la progresión
específicas de App Inventor (habilitación de la funcionalidad de la aplicación)
de habilidades a lo largo de dos dimensiones: amplitud y profundidad de la
capacidad. Dada una muestra de 10 571 usuarios aleatorios que crearon al y el desarrollo de habilidades que se pueden generalizar a otros dominios de
menos 20 aplicaciones cada uno, analizamos la relación entre la demostración programación (conceptos computacionales). Medimos la progresión de las
de habilidades específicas del dominio mediante el uso de la funcionalidad de habilidades en dos dimensiones: amplitud y profundidad. Nuestros datos son
App Inventor y las habilidades generalizables mediante el uso de conceptos de pensamiento computacional.
una muestra aleatoria de usuarios que han creado al menos 20 proyectos.
Nuestros hallazgos indican que las habilidades generalizables y específicas
Para cada usuario, medimos la amplitud de la capacidad al considerar la
del dominio progresan de manera similar; existe un patrón común de ampliar
la amplitud de la capacidad mediante el uso de nuevas habilidades en los cantidad de nuevos tipos de bloques introducidos en cada proyecto y la
primeros 10 proyectos, y luego desarrollar la profundidad de la capacidad profundidad de la capacidad al considerar la cantidad total de tipos de bloques
mediante el uso de habilidades previamente introducidas para crear aplicaciones en
más sofisticadas.
cada proyecto. Separamos bloques que relacionan conceptos
I. INTRODUCCIÓN computacionales de otros bloques y comparamos la progresión de la habilidad
demostrada.
MIT App Inventor es un entorno que aprovecha un lenguaje visual basado
Comenzamos describiendo el trabajo relacionado relacionado con la
en bloques para permitir que las personas creen aplicaciones móviles
progresión de habilidades y los marcos de pensamiento computacional
("aplicaciones") para dispositivos Android [1]. Un proyecto de App Inventor
(especialmente con Scratch), luego detallamos nuestra metodología. Mostramos
consiste en un conjunto de componentes y un conjunto de bloques de programa
nuestros resultados, comparando la progresión de habilidades de usar
que brindan funcionalidad a estos componentes (Blockly, [2]). Los componentes
conceptos computacionales con la progresión de habilidades de usar la
incluyen elementos visibles en la pantalla del teléfono (p. ej., botones, cuadros
funcionalidad general de App Inventor. Luego discutimos nuestros hallazgos,
de texto), así como elementos no visibles (p. ej., cámara, base de datos,
notando un patrón común de desarrollar amplitud de capacidad antes que
sensores). La figura 1 muestra los bloques utilizados en una aplicación que
profundidad de capacidad. Tomamos nota de las limitaciones y luego enumeramos nuestras c
responde a mensajes de texto y los lee en voz alta.

II. TRABAJO RELACIONADO

Gran parte de la investigación reciente en la medición de la progresión de


habilidades y los marcos de pensamiento computacional para entornos de
programación de bloques abiertos se ha realizado con Scratch, un entorno de
programación de bloques utilizado para crear proyectos de medios [6].
Adaptamos conceptos computacionales (pensamiento) del marco de
evaluación Scratch de Brennan 2012 [7]. Este marco de pensamiento
computacional consta de tres dimensiones: conceptos computacionales,
Fig. 1. Ejemplo de lenguaje de programación de bloques en MIT App Inventor. prácticas computacionales y perspectivas computacionales. El desarrollo de
Al recibir un mensaje de texto, este programa responde al remitente con un mensaje conceptos computacionales se puede evaluar analizando los proyectos que
predeterminado y lee en voz alta el mensaje recibido.
han creado los usuarios.
App Inventor se ha utilizado en 195 países y se enseña en entornos de
educación formal y también de forma autodidacta [1]. Scaffidi 2012 midió la progresión de habilidades de programación elemental
Se enseña a personas de diferentes edades y experiencias, desde estudiantes en Scratch [8]. Descubrió que la amplitud y profundidad promedio de las
de primaria hasta profesionales y desarrolladores de usuarios finales [3] [4]. habilidades que los usuarios de Scratch demostraron en realidad disminuyó
Nuestros análisis encuentran que el 50% de los usuarios programan con App con el tiempo. Las explicaciones incluyeron abandono temprano de usuarios
Inventor fuera de los entornos educativos formales. más capacitados, inconsistencias de datos, remezclas y

978-1-5090-0252-8/16/$31.00 c 2016 IEEE

213
Machine Translated by Google

disminución de la complejidad de los proyectos en toda la comunidad. Matias 2016 Para modelar la amplitud de la capacidad:
replicó los estudios de Scaffidi y encontró resultados opuestos (que la amplitud y la (1) Aísle un conjunto específico de tipos de bloques, S. Para nuestro análisis, elegimos
profundidad de la habilidad no disminuyen con el tiempo), atribuyendo los resultados de los conjuntos para que sean bloques de concepto computacional (CC) y bloques que no
Scaffidi a una muestra de datos desafortunada [9]. Ambos estudios señalan una alta sean CC. Estos conjuntos son disjuntos. (2) Crear la matriz Puser, que es la frecuencia
tasa de deserción en la comunidad Scratch. de cada tipo de bloque en cada proyecto. Cada fila es un proyecto que ha creado un
Yang 2015 [10] y Dasgupta 2016 [11] han realizado trabajos recientes en medidas usuario (en orden secuencial por tiempo de creación) y cada columna es la frecuencia
basadas en la trayectoria del repertorio acumulativo de conceptos de programación para de un determinado tipo de bloque. (3) Cree la trayectoria Vprofundidad sumando los
Scratch. valores en cada fila de Pexist (sumando el número total de tipos de bloques utilizados
en cada proyecto). (4) Crear Psum, la suma acumulada de Puser. (5) Cree Pbinary, que
tercero METODOLOGÍA es una matriz de indicadores, estableciendo todos los valores distintos de cero en Pcum

A. Fuente de datos: proyectos de usuarios a largo plazo en 1. (6)

Nuestros datos son una muestra aleatoria de 10.571 usuarios que han creado cada
Cree Vbreadth sumando las filas de Pbinary. (suma de los nuevos tipos de bloques
uno al menos 20 proyectos. Extraemos los tipos de bloques utilizados en cada proyecto,
utilizados por primera vez en un proyecto determinado)
omitiendo los bloques que no tienen funcionalidad ignorando los bloques que no están
Luego calculamos TCC (o Tnon-CC dependiendo de S) donde cada fila es Vbreadth
conectados a un bloque de cabecera. (En la Figura 1, el encabezado/bloque externo es
para un usuario en particular. Cada fila de esta matriz refleja el número acumulado de
Texting.MessageReceived). Ignorar bloques sin un bloque de encabezado elimina una
nuevos tipos de bloques introducidos en un proyecto determinado para un usuario.
fuente significativa de ruido en los datos [12].

También calculamos las matrices de diferencia Tdif f,CC (o Tdif f,nonÿCC )


B. Los bloques de conceptos computacionales reflejan estructuras de programación encontrando la diferencia de primer orden entre las columnas. Estas matrices miden la
generalizables tasa de adquisición o el número de tipos de bloques utilizados por primera vez en cada
proyecto.
Adaptamos conceptos computacionales del marco para evaluar el pensamiento
computacional en Scratch para su uso con App Inventor (ver II). Definimos seis D. Profundidad: tipos de bloques totales en el proyecto
conceptos computacionales para App Inventor: {procedimiento, variable, lógica, bucle,
La profundidad de la capacidad se refiere al dominio de ciertas características y
condicional, lista}. De los 1333 tipos diferentes de bloques encontrados en los proyectos
funciones. Modelamos la profundidad de la capacidad como el número total de tipos de
que analizamos, 39 de ellos son bloques de conceptos computacionales (bloques CC)
bloques utilizados en cada uno de los proyectos de un usuario.
que se relacionan con conceptos computacionales. La Figura 2 muestra ejemplos de
Para modelar la profundidad de la
bloques CC de cada uno de los seis conceptos.
capacidad: (1) Aísle un conjunto específico de tipos de bloques, S. Para nuestro análisis,
elegimos los conjuntos para que sean bloques de concepto computacional (CC) y
bloques que no sean CC. Estos conjuntos son disjuntos. (2) Cree la matriz Pexist, que
verifica la existencia de cada tipo de bloque en cada proyecto (1 si está en el proyecto,
0 en caso contrario). Cada fila es un proyecto que ha creado un usuario (ordenado por
tiempo de creación) y cada columna es la frecuencia de un tipo de bloque. (3) Cree la
trayectoria Vprofundidad sumando los valores en cada fila de Pexist (sumando el número
total de tipos de bloques utilizados en cada proyecto).

Fig. 2. Ejemplo de bloques de Concepto Computacional (CC). En el sentido de las agujas del reloj desde la
Luego calculamos DCC (o DnonÿCC ) donde cada fila es V depth para un usuario
parte superior izquierda: Procedimiento, Variable, Lógica, Bucle, Condicional, Lista
en particular. Cada fila refleja la cantidad de tipos de bloques utilizados en un proyecto
determinado para un usuario.
C. Amplitud: nuevos tipos de bloques en el proyecto
IV. RESULTADOS
La amplitud de la capacidad refleja la amplia comprensión del conocimiento y la
habilidad que demuestran los usuarios. Modelamos la amplitud de la capacidad como la A. Frecuencia de los bloques de conceptos computacionales La

cantidad de tipos de bloques nuevos, nunca antes usados, en cada uno de los proyectos Figura 3 muestra un histograma del número de proyectos en los que aparece cada
de un usuario. bloque CC. Los cinco bloques CC más comunes obtienen un valor de variable global,
Adaptamos el concepto de una trayectoria de aprendizaje según lo definido declaran una variable global, proporcionan una declaración if-else, establecen un
originalmente para Scratch por Yang 2015 [10] para medir la amplitud acumulada de la variable global y proporcione un valor booleano.
capacidad de un usuario en sus primeros 20 proyectos. Los bloques CC menos utilizados pertenecen a operaciones de lista más avanzadas,
La diferencia notable con nuestro enfoque es la omisión de una ponderación de bloque variables locales, bucles while y expresiones if-else (las expresiones devuelven un valor;
de frecuencia de documento inversa (IDF) [13]. las declaraciones ejecutan código).
App Inventor tiene un conjunto de funciones más grande que Scratch, con un tamaño También encontramos que se definen más procedimientos de los que se llaman, lo
de vocabulario de 1333 tipos de bloques en este conjunto de datos, en comparación que sugiere que algunos procedimientos se definen pero nunca se llaman. Esto puede
con 170 en Scratch [10]. Debido al amplio conjunto de características de App Inventor, deberse a que los bloques de definición de procedimiento (arriba a la izquierda en la
la ponderación de IDF ponderaría en gran medida los bloques pertenecientes a Figura 2) son bloques de encabezado, por lo que se cuentan incluso si no se colocan
características más oscuras, en lugar de ponderar en gran medida los bloques más bloques dentro del procedimiento (consulte III-A para obtener más información sobre los
avanzados (como se pretendía). bloques de encabezado). También notamos que los procedimientos sin valores de retorno son

214
Machine Translated by Google

definido y llamado cuatro veces más que los procedimientos con valores de
retorno. En el contexto de App Inventor, esto sugiere que los procedimientos se
usan a menudo para proporcionar una funcionalidad similar a múltiples
componentes (por ejemplo, 3 botones que brindan opciones de color para una
aplicación de pintura), pero no se usan con frecuencia para realizar cálculos
repetidos y devolver valores.

Fig. 4. Número acumulado de nuevos bloques introducidos en un proyecto determinado,


promediado entre todos los usuarios.

para los primeros 9 proyectos, quizás reflejando un período en el que los usuarios
se familiarizaron con el entorno de App Inventor.

Fig. 3. Histograma de tipos de bloques de concepto computacional (CC) en proyectos

B. La amplitud de la capacidad comienza a estabilizarse


Medimos la cantidad de bloques nuevos introducidos en cada uno de los
proyectos de un usuario para mostrar cómo la progresión de la amplitud de la Fig. 5. Número acumulado promedio normalizado de nuevos bloques introducidos en un
capacidad para usar la funcionalidad de App Inventor se relaciona con la amplitud proyecto determinado.

de la capacidad para usar conceptos computacionales.


La tasa normalizada de introducción de nuevos tipos de bloques en los
La figura 4 muestra la suma acumulada de los tipos de bloques introducidos
proyectos (promedio de todos los usuarios) se muestra en la Figura 6.
en cada proyecto, promediados entre todos los usuarios. Los bloques CC y los
A medida que los usuarios crean más proyectos, introducen menos bloques en
bloques que no son CC se muestran como trayectorias separadas. Dado que
hay un total de 39 bloques CC y 1294 bloques no CC, se espera la divergencia su vocabulario, como lo demuestra la tasa decreciente de introducción. La tasa
de introducción de bloques CC parece disminuir más sustancialmente que los
de las trayectorias CC y no CC. Vemos una tasa decreciente de adquisición de
bloques que no son CC en los proyectos posteriores (después de 15). Esto
nuevos bloques (se introducen menos bloques nuevos) a medida que los
podría sugerir que puede haber un "punto de saturación" donde la amplitud de
usuarios crean más proyectos.
habilidades de un usuario que usa bloques CC ha abarcado aproximadamente
También cabe señalar que, incluso en el vigésimo proyecto, el número
promedio de bloques CC y no CC utilizados no se acerca al número total de todos los conceptos computacionales en App Inventor. Abordamos esto en VB.

bloques (25 % de bloques CC, 5 % de bloques no CC). Esto sugiere que los
usuarios no están explorando toda la funcionalidad de App Inventor y, por lo
tanto, no están limitados por los límites superiores del entorno de App Inventor
(discutido más adelante en [14]).

Normalizamos las trayectorias de adquisición de bloques en la Figura 5. En


esta figura, una tasa de aprendizaje normalizada en diagonal sugeriría que los
usuarios introduzcan nuevos bloques a una tasa constante en todos los
proyectos. La progresión del desarrollo de habilidades para usar la funcionalidad
de App Inventor y la progresión del desarrollo de habilidades para usar conceptos
computacionales se siguen de cerca.
Esto sugiere que a medida que los usuarios demuestran habilidades de App
Inventor específicas del dominio, también demuestran habilidades generalizables
utilizando conceptos computacionales. Observamos que la trayectoria CC Fig. 6. Tasa promedio normalizada de introducción de nuevos tipos de bloques a los proyectos.
normalizada se retrasa ligeramente por debajo de la trayectoria no CC normalizada

215
Machine Translated by Google

C. La profundidad de la capacidad aumenta B. El subconjunto de bloques CC refleja la exposición a todos los conceptos

Ahora analizamos la profundidad de la capacidad o el dominio de las Los alumnos solo usan un subconjunto del total de bloques CC disponibles en

características y funciones. Nuestra métrica para medir la profundidad de la App Inventor, pero aun así obtienen exposición a casi todos los conceptos
computacionales. Después de 20 proyectos, encontramos que, en promedio, los
capacidad es la cantidad total de tipos de bloques utilizados en un proyecto determinado.
La Figura 7 muestra el número total de tipos de bloques utilizados en cada alumnos han usado el 25% de los 39 bloques CC totales.
Creemos que esta fracción de bloques CC al menos toca casi todos los conceptos
proyecto, promediados entre todos los usuarios. Los primeros cinco proyectos
probablemente reflejen un período de familiarización con App Inventor. Después computacionales en App Inventor. Los 8 bloques CC más utilizados incluyen

de esos proyectos, el aumento en la profundidad de la capacidad es algo lineal bloques de todos los conceptos computacionales excepto bucles/iteradores (ver

para los bloques CC y no CC. En general, vemos un aumento en la profundidad de Figura 3)).

la capacidad a medida que los usuarios crean más proyectos, lo que sugiere que a El entorno basado en eventos de App Inventor normalmente no se presta al uso de

medida que los usuarios crean más proyectos, tienden a crear aplicaciones más iteradores. Usar solo una fracción de bloques CC no es necesariamente alarmante

sofisticadas que utilizan más bloques para permitir una funcionalidad más sólida. porque la mayoría de los bloques CC se relacionan con funcionalidades más
oscuras o específicas, como variables locales y operaciones de lista. Creemos que
App Inventor permite al menos la exposición a conceptos computacionales.

C. Limitaciones: Uso = aprendizaje; la mayoría de los usuarios no son a largo plazo

El uso de un bloque en un proyecto no sugiere necesariamente que un usuario


aprendió la habilidad relacionada con ese bloque. Por lo tanto, medir el uso de
bloques en proyectos puede ser una métrica conveniente para analizar a escala,
pero por sí sola no es adecuada para indicar si realmente se aprendió un concepto.

De acuerdo con Scratch ([8], [9]), la retención de usuarios es un desafío en App


Inventor. Este análisis analizó a los usuarios que crearon al menos 20 proyectos,
que reflejan solo el 1,5% superior de los usuarios. Por lo tanto, estos usuarios no
son representativos de un usuario típico. Si bien desarrollamos currículos y cursos
Fig. 7. Número promedio de tipos de bloques utilizados en cada proyecto (para medir la profundidad a largo plazo para entornos informales en línea como App Inventor, también
de la capacidad)
debemos considerar los beneficios a corto plazo para los usuarios típicos que no
usan App Inventor por mucho tiempo.

V. DISCUSIÓN
VI. CONCLUSIÓN
Proponemos un comportamiento común de amplitud antes que profundidad
Nuestra visión a largo plazo es comprender cómo las personas aprenden el
donde los usuarios tienden a familiarizarse con una amplia gama de componentes
pensamiento computacional en el entorno informal en línea de App Inventor. Damos
y tipos de bloques en proyectos anteriores y luego desarrollan el dominio de las
pasos hacia esta visión analizando cuantitativamente la progresión del uso de
habilidades utilizadas anteriormente en proyectos posteriores. Si bien los alumnos
habilidades de concepto computacional y modelando cómo los usuarios se vuelven
solo pueden usar un subconjunto de bloques CC después de 20 proyectos, se
más sofisticados con el uso de estas habilidades que se generalizan a otros
exponen a casi todos los conceptos computacionales. Reconocemos que la
dominios de programación. Encontramos evidencia de que los usuarios tienden a
mayoría de los usuarios no usan App Inventor por mucho tiempo y deben considerar
aprender nuevos bloques en sus proyectos anteriores (primeros 10), luego usan
los beneficios de aprendizaje para el uso a corto plazo.
bloques previamente aprendidos de manera más sofisticada en proyectos
posteriores.
A. Validación del trabajo previo sobre la medición de la progresión de habilidades
Contribuciones de este documento: 1) Progresión de habilidades modelada
En general, vemos que tanto los bloques CC como los bloques que no son CC cuantitativamente a través de dos dimensiones (amplitud, profundidad); 2) relación
siguen un patrón de amplitud antes que profundidad. A medida que los usuarios verificada entre la progresión de las habilidades específicas del dominio (usando la
crean más proyectos, estos proyectos tienden a tener menos tipos de bloques funcionalidad App Inventor) y las habilidades generalizables (usando conceptos
nuevos introducidos (amplitud decreciente) pero una mayor cantidad total de tipos computacionales); 3) Patrón identificado de desarrollar amplitud de capacidad antes
de bloques (profundidad creciente). Es significativo que los usuarios tiendan a que profundidad de capacidad.
desarrollar habilidades específicas de dominio relacionadas específicamente con la
EXPRESIONES DE GRATITUD
funcionalidad de App Inventor (bloques que no son CC) en un patrón similar a
medida que desarrollan habilidades generalizables utilizando conceptos Agradecemos a los miembros del equipo de MIT App Inventor, especialmente

computacionales (bloques CC). Trabajos previos que utilizaron bloques para medir a Jeffrey Schiller por la recopilación de datos y a Aubrey Colter, Emily Giurleo,

la sofisticación (en otros entornos) no distinguieron ni aislaron bloques relacionados Natalie Lao y Aaron Suarez por la revisión. También agradecemos a Sayamindu

con habilidades generalizables [10], [15]. Creemos que nuestros hallazgos validan Dasgupta del equipo de Scratch por su orientación y sugerencias.

el uso de bloques para medir la sofisticación incluso si los bloques no están


directamente relacionados con habilidades generalizables.

216
Machine Translated by Google

REFERENCIAS [10] S. Yang, C. Domeniconi, M. Revelle, M. Sweeney, BU Gelman, C. Beckley y A. Johri,


“Descubriendo trayectorias de aprendizaje informal en grandes comunidades en
[1] "MIT App Inventor", consultado el 14 de marzo de 2016. [En línea]. Disponible: http://
línea de creadores”, en Actas de la Segunda (2015) Conferencia ACM sobre
appinventor.mit.edu/explore/ [2] “Blockly”, consultado el 14 de marzo de 2016. [En
aprendizaje a escala, 2015.
línea]. Disponible:
[11] S. Dasgupta, W. Hale, A. Monroy-Hernandez y BM Hill, "Remixing as a path to
https://developers.google.com/blockly/
computational thinking", en la 19.ª Conferencia de la ACM sobre trabajo cooperativo
[3] “Informática, aplicaciones móviles y la web”, consultado el 14 de marzo de 2016.
asistido por computadora y computación social (CSCW 2016), 2016 .
[En línea]. Disponible: https://sites.google.com/site/appinventorcourse/ [4]
“Mobile Computing with App Inventor CS Principles”, consultado el 14 de marzo de 2016.
[12] B. Xie, I. Shabir y H. Abelson, "Medir la usabilidad y la capacidad del inventor de
[En línea]. Disponible: https://www.edx.org/course/mobile-computing-app-inventor-
aplicaciones para crear aplicaciones móviles", en Actas del 3er Taller internacional
cs-trinityx-t002x
sobre programación para dispositivos móviles y táctiles, ser. PROMOCIÓN 2015.
[5] "Tutoriales para App Inventor", consultado el 14 de marzo de 2016. [En línea].
ACM, 2015.
Disponible: http://appinventor.mit.edu/explore/ai2/tutorials.html [6]
[13] K. Sparck Jones, "Una interpretación estadística de la especificidad del término y su
“Scratch”, consultado el 14 de marzo de 2016. [En línea]. Disponible:
aplicación en la recuperación", en Document Retrieval Systems. Taylor Graham
https://scratch.mit.edu/
Publishing, 1988, págs. 132–142.
[7] K. Brennan y M. Resnick, "Nuevos marcos para estudiar y evaluar el desarrollo del
[14] B. Xie, "Progresión de las habilidades de pensamiento computacional demostradas
pensamiento computacional", en la reunión anual de 2012 de la Asociación
por usuarios inventores de aplicaciones", tesis de maestría, Instituto de Tecnología
Estadounidense de Investigación Educativa, 2012.
de Massachusetts, 2016.
[8] C. Scaffidi y C. Chambers, "Progresión de habilidades demostrada por los usuarios
[15] S. Li, T. Xie y N. Tillmann, "Un estudio de campo integral de la programación del
en el entorno de animación scratch", International Journal of Human Computer
usuario final en dispositivos móviles", en Actas del Simposio IEEE sobre lenguajes
Interaction, vol. 28, núm. 6, págs. 383–398, 2012.
visuales y computación centrada en el ser humano, VL/HCC, 2013 , págs. 43–50.
[9] JN Matias, S. Dasgupta y BM Hill, "Revisión de la progresión de habilidades en
scratch", en CHI 2016, 2016.

217

También podría gustarte