Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
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
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].
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.
para los primeros 9 proyectos, quizás reflejando un período en el que los usuarios
se familiarizaron con el entorno de App Inventor.
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]).
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.
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.
216
Machine Translated by Google
217