Patrones de Comportamiento de Estudiantes de Programación al Utilizar una Herramienta de Visualización de Protocolos Verbales Carlos Argelio Arévalo Mercado, Lizeth Itziguery Solano Romo a Universidad Autónoma de Aguascalientes, Departamento de Sistemas de Información, Aguascalientes, México. Av. Universidad # 940. Col. Ciudad Universitaria, Aguascalientes, México. CP 20131 [email protected], [email protected] Resumen. El aprendizaje de la programación es un tema problemático para los estudiantes de ciencias computacionales a nivel mundial. Los porcentajes de reprobación en la materia suelen ser altos, indistintamente de las estrategias instruccionales y herramientas utilizadas. Como apoyo a esta problemática se desarrolló un Sistema Visor de Protocolos Verbales basado en principios cognitivos y metacognitivos empíricamente sustentados. Mediante un estudio exploratorio y cuasi-experimental en dos fases, se buscó medir tanto la intención de uso de los participantes hacia la herramienta (y detectar posibles patrones de conducta asociados al nivel de motivación de los estudiantes), como el efecto de la misma en su rendimiento. El estudio exploratorio mostró un patrón log-normal de comportamiento que fue corroborado en la fase cuasi-experimental. No se encontraron diferencias en el desempeño derivadas del uso de la herramienta, aunque se encontró una correlación positiva entre tiempo de uso acumulado del sistema y calificación dentro del grupo experimental, lo que sugiere la influencia de un factor motivacional en el desempeño de los estudiantes de programación participantes. Palabras clave: Programación, Cognición, Metacognición, Motivación. Abstract. Learning to program is a difficult topic for most students worldwide. Failure rates tend to be high during the first university years, regardless of the pedagogical strategies and tools used by instructors. As an aid to this problem, a Verbal Protocol Visualizer System was developed, based on empirically supported cognitive and metacognitive principles. A two phase exploratory and cuasiexperimental study was conducted to measure both the intention and frequency of usage of the users of the system (and therefore detect possible patterns of behavior related to their level of motivation) and the effect of the tool on their performance. The exploratory phase showed a log-normal distribution pattern of behavior that was confirmed during the second, cuasi-experimental phase. No differences of performance associated with the proposed system where found, but a positive correlation between accumulated time of use and grade was detected within the experimental group. This could suggest an influence of a motivational factor on the performance of participant programming students. Key words: Programming, Cognition, Metacognition, Motivation. INTRODUCCIÓN Durante las últimas décadas la comunidad científica y educativa de las ciencias computacionales ha diseñado aplicaciones de software para facilitar el aprendizaje de la programación de computadoras [1], entendiendo su dificultad intrínseca y los resultantes altos porcentajes de reprobación de los primeros cursos de programación en instituciones de educación superior [2]–[5]. Se han explorado diversos enfoques didácticos, que van desde la reducción de la complejidad de la sintaxis [6], los videojuegos [7], el aprendizaje social [8] y la asesoría automática personalizada [9], entre otros. Se han reportado resultados positivos de aplicaciones didácticas en áreas como las matemáticas [10] y la programación [11], pero la efectividad de estas herramientas parece limitarse a ciertas condiciones y contextos académicos y sociales [12], [13]. Suele pasarse por alto en el diseño de tales herramientas que en el tema de resolución de problemas existe evidencia de la influencia de tres características intrínsecas elementales del aprendiz: la cognición, la metacognición y la motivación [14]–[16]. 1 En el área de la cognición, la literatura del aprendizaje de la programación señala factores tales como la capacidad para las matemáticas [17], [18] los modelos mentales [19], [20] y la experiencia previa [21], [22] como temas a poner a poner atención en el diseño instruccional. Uno de los elementos cognitivos con mayor evidencia empírica de tener un efecto significativo en el aprendizaje de la programación es el uso de estrategias [11], [23], [24]. Las estrategias en programación son soluciones estereotipadas para ciertos tipos comunes de problemas. Se ha encontrado que en sus primeras etapas de aprendizaje [25], los alumnos no cuentan con muchas de éstas estrategias y utilizan enfoques generales de solución de problemas de tipo “prueba y error” que les imponen una mayor carga cognitiva [26]. Además, el proceso de escribir programas no es lineal sino iterativo y exploratorio, dividido en aproximaciones sucesivas de solución de sub-problemas [27] en donde la efectividad de las estrategias aplicadas es evaluada constantemente por el programador por medio de la llamada metacognición. El concepto de metacognición no es nuevo. De acuerdo con [28] se describe como el control que el individuo posee sobre su propia cognición y aprendizaje. Heart [29] la define como el proceso que permite a un individuo observar, reflexionar y experimentar sus propios procesos cognitivos. Se pueden encontrar diversos ejemplos de herramientas y estrategias de aprendizaje para la programación que la toman como principio de diseño [11], [30], [31]. El tercer aspecto, la motivación, suele ser incluido como elemento de diseño en herramientas de aprendizaje bajo la forma de contenidos atractivos, interactivos y lúdicos [1], [32], [33]. Sin embargo, es poco frecuente encontrar estudios cuantitativos que registren la motivación (intrínseca o extrínseca) del estudiante de programación hacia una herramienta específica en la forma de intención de uso*. Es decir, estudios que intenten medir tanto la efectividad de una herramienta, como el comportamiento del estudiante hacia la misma. De tal suerte, el presente estudio buscó cubrir dos objetivos: 1. 2. Desarrollar y aplicar una herramienta de apoyo al aprendizaje de la programación que incluyese aspectos cognitivos en la forma de visualización de estrategias de solución y elementos metacognitivos en la forma de verbalizaciones sobre el proceso de pensamiento asociado a las decisiones de un programador resolviendo problemas. Registrar el uso de estudiantes de programación en tal herramienta, interpretándolo como una manifestación de su motivación (intrínseca o extrínseca) y buscar si existen patrones asociados. METODOLOGÍA Software Visualizador de Protocolos Verbales En psicología cognitiva, un protocolo verbal (PV) es una fuente de datos para estudiar el contenido de la memoria de corto plazo de las personas en el proceso de resolver problemas o llevar a cabo una tarea predefinida [36]–[38]. De tal suerte, un PV puede proveer indicios sobre el proceso cognitivo de un programador, mostrando como éste selecciona una estrategia específica y como la adapta o descarta según sea el avance hacia los objetivos del programa. Se parte del principio de que los PVs pueden también utilizarse como material didáctico y que una aplicación diseñada para visualizar protocolos de programadores en el proceso resolver problemas de programación, puede ser una herramienta útil para los aprendices de esta disciplina. Así, se desarrolló un sistema para la visualización de PVs de programadores con experiencia. Su característica principal es el Visualizador de Protocolos (ver * Existen instrumentos basados en modelos conductuales. Entre ellos el concepto de “autoeficacia” [34], [35] 2 FIGURA 1). El proceso general de grabación de los protocolos consistió en presentar un problema de programación (no ensayado previamente) a un programador, solicitándole que “pensara en voz alta” al momento de resolverlo. Usando software de captura de audio y video, las acciones en pantalla se registraron en videos y sus verbalizaciones se guardaron como audio, que posteriormente fue editado, segmentado y transcrito en la herramienta. El resultado se presenta al estudiante bajo la forma de ejemplo resuelto [39]–[41] 3 FIGURA 1. Visor de Protocolos Verbales. La interfaz del sistema permite al usuario navegar a través de los pasos del PV seleccionado (correspondiente a un tópico específico de programación) leyendo y escuchando la verbalización y observando en video la escritura del código de la persona que resolvió el problema, además de la descripción de la estrategia general de solución. Se muestra también un indicador de pasos metacognitivos (el instructor puede agregar posteriormente una marca y una anotación en un paso específico que la herramienta resaltará en color verde) para llamar la atención del estudiante sobre una operación particular del proceso de solución que se considere relevante. El editor de protocolos incorporado al sistema también permite la inserción de pequeñas preguntas dentro de segmentos seleccionados por el instructor, para buscar mantener la atención del estudiante y proporcionar un mecanismo de retroalimentación (ver FIGURA 2 ) FIGURA 2. Preguntas de opción múltiple entre segmentos de un protocolo El contenido de protocolos del sistema fue muy variado. Al momento de realizar el estudio se contaba con 80 protocolos acerca de problemas relacionados con temas de programación básica en Lenguaje C y programación media y avanzada en Java. 4 Diseño del estudio Para medir tanto la efectividad de la herramienta, como la intención de uso de los estudiantes hacia el sistema bajo diversas estrategias instruccionales, se diseñó un estudio en dos fases, (exploratorio y cuasiexperimental) bajo las siguientes condiciones, que dada la extensión del estudio se describen de manera condensada. Fase exploratoria. Objetivo: observar formas de uso de los estudiantes hacia la herramienta bajo diversas estrategias instruccionales (abiertas a elección de los instructores para no interferir en su estilo de enseñanza), buscando detectar posibles patrones de comportamiento en un contexto de aprendizaje cercano al natural. Duración: Enero – Junio 2012 (uso del sistema durante 3 meses). Diseño: Exploratorio. Los tres grupos participantes utilizaron la herramienta bajo las siguientes estrategias instruccionales: Uso obligatorio en laboratorio y casa, uso programado por un instructor en laboratorio y uso libre. Cada grupo tuvo un instructor diferente. Bajo el enfoque exploratorio (para observar patrones o tendencias), se recolectaron diversas medidas tales como: la cantidad de protocolos y protocolos específicos visualizados, calificaciones en las respectivas materias cursadas (que se recolectaron solo como referencia). El tiempo de uso acumulado de la herramienta de cada estudiante se midió con la combinación del registro del número de sesiones individuales (fecha, hora), los protocolos seleccionados y el tiempo entre “clicks” de cada segmento del protocolo visualizado. Esto permitió generar una bitácora relativamente precisa. Existió la posibilidad de que en los contextos no supervisados, los tiempos entre cada click podrían estar intercalados por otras actividades distractoras. Participantes: Estudiantes de 3er. semestre de Licenciatura en Tecnologías de Información (UAA) (n=33, Programación I, Lenguaje C), que utilizaron el sistema de manera obligatoria en el laboratorio y en forma de tarea en casa. Estudiantes de 5to. semestre de Ingeniería en Sistemas Computacionales (UAA) (n=34, Java III) a quienes se les permitió utilizar la herramienta de manera discrecional. Estudiantes de 1er. semestre de Ingeniería en Informática del Instituto Tecnológico Superior de El Grullo (ITSG) (n=14, Java I), que utilizaron la herramienta acompañados por su profesor en el laboratorio en lecciones programadas. Capacitación en uso de la herramienta: Una sesión previa de una hora para a los estudiantes de la UAA. Se utilizó una sesión previa de una hora por parte del profesor y un manual en línea para los estudiantes del ITSG. Fase confirmatoria, cuasi-experimental. Objetivo: utilizar la estrategia instruccional que hubiese arrojado mayores indicadores de uso y aplicarla a un grupo experimental que utilizaría la herramienta como método complementario de estudio, previo a un examen parcial, contrastando los resultados contra un grupo de control, que utilizaría métodos de estudios tradicionales. Duración: Agosto – Diciembre 2012. Sistema estuvo abierto a los participantes durante un mes. 5 Diseño: cuasi-experimental, dos grupos intactos (no aleatorizados) Grupo de experimental (Licenciados en Tecnologías de Información, 3er. Semestre, n=22). Este grupo cursaba la Materia “Programación II” (Java I). El sistema estuvo abierto a este grupo por un período de un mes, pero el mayor tiempo de uso acumulado se registró una semana antes de la aplicación del instrumento de medición (2do. Examen Parcial), al aplicarse una estrategia instruccional de uso obligatorio. Grupo de control (Ingenieros en Sistemas Computacionales, 3er. Semestre, n=34). Este grupo no utilizó el sistema. Cursaba la materia “Programación II (Java I)”. Siguieron métodos de estudio tradicionales (ejemplos y tareas dadas por la instructora). Variables controladas: Estilo de enseñanza. La instructora fue la misma para ambos grupos. Contenidos. los temas del plan de estudios de ambos grupos fueron los mismos, con secuenciación distinta. Variables no controladas: No aleatorización, grupos intactos. Habilidades previas, (conocimientos de bachillerato, estilo de enseñanza de profesores de materias de programación anteriores). Plan de estudios previo. Ambos grupos llevaron una secuencia de materias previas similares (en ambos casos, Introducción a la programación - Algoritmos y Programación I - Lenguaje C. Con la excepción de que el grupo de ISC ve conceptos previos de Programación Orientada a Objetos en Programación I en C++. Medición: Tiempo de uso acumulado. Se usó el mismo método explicado en la fase exploratoria. Rendimiento, mediante un examen previamente calibrado (calificaciones previas con distribución normal) aplicado a ambos grupos, que constaba de conceptos y ejercicios de programación orientada a objetos, correspondientes a su plan de estudios. Explicación de la herramienta: Se utilizó una sesión de una hora para explicar el funcionamiento del sistema a los estudiantes de LTI. RESULTADOS Fase Exploratoria Se observó que la media del tiempo de uso del grupo ISC (cuya estrategia fue el uso discrecional), fue la menor de los tres (ver TABLA 1). Los otros dos grupos utilizaron la herramienta con mayor frecuencia sin existir una gran diferencia entre ellos. Cabe recordar que la herramienta estuvo disponible para todos los participantes durante tres meses, bajo diferentes estrategias instruccionales. TABLA 1. Registros de tiempo de uso por grupos. Fase exploratoria Grupo Media Mediana Mínimo Máximo Desv. Est. LTI ISC ITSG 0:59:05 0:23:11 1:17:38 0:21:29 0:12:05 0:46:26 0:00:29 0:01:52 0:05:41 4:41:48 3:23:48 5:17:44 1:17:53 0:43:12 1:28:28 Dado que el método de medición posibilitó observar el comportamiento de cada uno de los participantes hacia el sistema, fue posible analizar la distribución de frecuencia de tiempo de uso acumulado para cada individuo dentro de su respectivo grupo (ver FIGURA 4a y 3b). 6 FIGURA 3a. Distribución de frecuencias y tiempos de uso de la herramienta en grupos LTI e ISC FIGURA 4b. Distribución de frecuencias y tiempos de uso de la herramienta en grupo ITSG De tal suerte, fue interesante notar que en los tres grupos el patrón de las distribuciones de frecuencia se comportó siguiendo una distribución log-normal (ver TABLA 2), en donde una cantidad menor de estudiantes de cada grupo, le dedicó significativamente más tiempo a la herramienta que el resto de sus compañeros, repitiéndose este patrón independientemente de la estrategia instruccional utilizada. TABLA 2. Prueba de normalidad para logaritmos naturales de tiempos de uso de grupos Kolmogorov-Smirnova Shapiro-Wilk Estadístico gl Sig. Estadístico gl Sig. Ln Tiempo de Uso LTI Ln Tiempo de Uso ISC Ln Tiempo de Uso ITSG .172 .141 .100 12 12 12 .200* .200* .200* .947 .946 .992 12 12 12 .598 .579 1.000 Fase confirmatoria, cuasi-experimental Durante esta fase, con algo de mayor control sobre las variables, se optó por verificar la efectividad de la herramienta al contrastar el rendimiento de dos grupos similares de estudiantes y (habiendo detectado el patrón log-normal anterior) corroborar si el uso de la herramienta de parte del grupo experimental se comportaba de la misma manera. La estadística descriptiva resultante (ver TABLA 3) de la aplicación del examen/instrumento no mostró diferencias significativas en el desempeño de ambos grupos, siendo el promedio del grupo experimental ligeramente mayor. 7 TABLA 3. Estadística Descriptiva. Calificaciones obtenidas, grupos experimental y de control Grupo n Promedio Desv. Estándar Mediana Mínimo Máximo Experimental (LTI) Control (ISC) 22 36 54.45 52.31 22.94 24.25 55.10 55.48 7.50 2.96 84.93 97.43 Dados los resultados de rendimiento, la prueba de comparación de medias (ver TABLA 4) del desempeño de los grupos experimental y de control mostró que no hubo diferencias estadísticas significativas entre ambos. Es decir, el tratamiento no proporcionó ventajas relevantes en el aprendizaje entre los estudiantes que usaron el sistema visor de protocolos y el grupo de control que utilizó métodos tradicionales de estudio. TABLA 4. Comparación de medias (ANOVA) de resultados de examen. Suma de gl Media F Sig. cuadrados cuadrática Inter-grupos Intra-grupos Total 11.049 24782.111 24793.160 1 52 53 11.049 476.579 .023 .880 Se encontró una correlación positiva entre la calificación obtenida y el tiempo de uso del sistema entre los participantes del grupo experimental (ver TABLA 5). Es decir, a mayor tiempo de uso de la aplicación, mayor la calificación obtenida. TABLA 5. Correlación entre tiempo de uso y calificación. Grupo experimental Tiempo de uso Examen Tiempo de uso Examen Correlación de Pearson Sig. (bilateral) N Correlación de Pearson Sig. (bilateral) N .423* .050 22 1 1 22 .423* .050 22 22 *. La correlación es significativa al nivel 0,05 (bilateral). Para verificar el patrón de comportamiento del grupo experimental, nuevamente se obtuvieron medidas de tiempo de uso (ver TABLA 6). Dada la estrategia de obligatoriedad utilizada por la instructora en este grupo, se observó un incremento significativo en el tiempo de uso promedio respecto a la fase exploratoria anterior, a pesar del menor tiempo disponible para utilizar la herramienta. Grupo Exp TABLA 6. Tiempo de uso, grupo experimental. Media Mínimo Máximo Desv. Est. 2:14:23 0:00:00 9:11:45 2:52:08 En cuanto al comportamiento de los estudiantes del grupo experimental respecto al uso del visor de protocolos, se observó nuevamente el patrón de distribución log-normal (ver TABLA 7 y FIGURA 5). Es decir, una porción menor del grupo dedicó más tiempo (ver segmentos entre 8 y 9 horas) al estudio de los protocolos de la herramienta. TABLA 7. Distribución Log-Normal de tiempo de uso, grupo experimental Kolmogorov-Smirnov Shapiro-Wilk Ln (Tiempo Estadístico gl Sig. Estadístico gl Sig. de uso LTI) .108 23 .200* .961 23 .474 Se observa que la mayoría de las observaciones se encuentran entre 1 y 2 horas. Hubo incluso participantes que no utilizaron el sistema, a pesar de la estrategia instruccional obligatoria. 8 FIGURA 5. Distribución de frecuencias, tiempo de uso, Grupo experimental CONCLUSIONES Bajo las condiciones del estudio, los resultados no muestran que el uso del Sistema Visor de Protocolos Verbales proporcione una ayuda significativa al desempeño de los estudiantes de programación, respecto al uso de otras herramientas o materiales didácticos existentes. Por otro lado, interpretamos que el aspecto motivacional pudo tener un efecto positivo en el rendimiento de los usuarios del sistema en la fase cuasi-experimental, al observar la correlación que existió entre calificación y tiempo de uso. Queda por identificar si tal correlación se debió ya sea al uso de la herramienta, a la estrategia instruccional obligatoria (motivación extrínseca) o a los propios atributos cognitivos y conductuales de los alumnos ubicados a la derecha de la curva (Figura 4) que reflejaron una mayor disciplina de estudio en el grupo experimental. Para detectar tales diferencias se requerirán instrumentos más precisos que permitan diferenciar entre la dicotomía motivacional de los alumnos [42] y sus atributos cognitivos. Hemos entendido que no es suficiente desarrollar sistemas de apoyo al aprendizaje de la programación basados en principios cognitivos y metacognitivos, sino que debe considerarse también el aspecto motivacional, ya que éste influye en el rendimiento y comportamiento de los estudiantes. Sabemos que el patrón de distribución log-normal encontrado debe replicarse en condiciones experimentales de mayor rigor para ser corroborado, pero argumentamos que dicho patrón puede ser la manifestación de la percepción intuitiva que tiene todo docente quien entiende que en todo grupo, siempre hay un número pequeño de estudiantes aplicados y motivados. El hecho de que esta manifestación se sujete a una distribución estadística, puede tener algún tipo de aplicación en el contexto del diseño instruccional de la enseñanza de la programación en particular y de la resolución de problemas en general. AGRADECIMIENTOS Los autores desean agradecer al siguiente grupo de personas (profesores, desarrolladores y becarios) por su valiosa ayuda: Georgina Salazar Partida, Lizbeth Muñoz Andrade, Juan Muñoz López, Claudia Escareño, Lorena Pinales Delgado, Francisco Javier García, Rodrigo Javier González, Edgar Alan Calvillo, Julio René López Guerrero, Bertha Alicia Villalpando y Sergio Durón Macías. El presente estudio forma parte del proyecto IGUAL† (www.igualproject.org), financiado por el programa ALFA III, EuropeAid, cuyo objetivo es producir herramientas de aprendizaje para reducir la brecha educativa entre universidades públicas y privadas en América Latina‡. † ALFA III Program. IGUAL Project (DCI-ALA/19.09.01/21526/245-315/ALFAHI (2010) / 123), IGUAL “Innovation for Equality in Latin American University”. ‡ El sistema se encuentra disponible en: http://aprende.igualproject.org y en http://aprende.igualproject.org/protocols 9 REFERENCIAS [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] 10 C. P. Kelleher y R. Pausch, «Lowering the Barriers to Programming: a survey of programming environments and languages for novice programmers», ACM Computing surveys (CSUR), vol. 37, n.o 2, pp. 83 - 137, 2005. T. Jenkins, «On the difficulty of learning to program», Loughborough University, 2002. A. P. Heinze, «Reflections on the use of blended learning.», University of Salford, Education Development Unit., 2004. S. Dehnadi y R. Bornat, «The camel has two humps», Middlesex University, Working Paper, 2006. S. Dehnadi, R. Bornat, y R. Adams, «Meta-analysis of the effect of consistency on success in early learning of programming», presentado en Psychology of Programming interested Group (PPIG), University of Limerick, Ireland, 2009. P. Brusilovsky, «Mini-languages: A Way to Learn Programming Principles», Education and Information Technologies, vol. 2, n.o 1, pp. 65-83, 1998. M. S. Guzdial, «Teaching the Nintendo generation how to program», Communications of the ACM, vol. 45, n.o 4, pp. 17-21, abr. 2002. C. Bruce, «Ways of experiencing the act of learning to program: A phenomenographic study of introductory programming students at university», Journal of Information Technology Education, vol. 3, p. 144, 2004. K. Koedinger y V. Aleven, «Toward a Rapid Development Environment for Cognitive Tutors», presentado en Engineering Advanced Web Applications: Proceedings of Workshops in Connection with the 4th International Conference on Web Engineering, 2004, pp. 167-179. K. Koedinger y J. Anderson, «Intelligent Tutoring Goes To School in the Big City», International Journal of Artificial Intelligence in Education, vol. 8, pp. 30-43, 1997. V. Aleven y K. Koedinger, «An effective metacognitive strategy: learning by doing and explaining with a computer-based Cognitive Tutor», Cognitive Science, vol. 26, pp. 147–179, 2002. J. Keppens y D. Hay, «Concept Map Assessment for Teaching Computer Programming», Computer Science Education, vol. 18, n.o 1, pp. 31-42, 2008. S. Booth, «Learning to program as entering the datalogical culture: a phenomenographic exploration», Fribourg Switzerland, August 2001, 2001. R. E. Mayer, «Cognitive, metacognitive, and motivational aspects of problem solving», Instructional Science, vol. 26, pp. 49–63, 1998. R. E. Mayer, Applying the science of learning, 1st. Ed. Pearson, 2010. A. Barto, «Intrinsic Motivation and Reinforcement Learning», en Intrinsically Motivated Learning in Natural and Artificial Systems, Berlin Heidelberg: Springer-Verlag, 2013, p. pp 17-47. C. Hu, «It’s Mathematical, after all -the nature of learning computer programming», Educational Information Technology, vol. 11, pp. 83-92, 2006. G. White, «Standarized mathematics scores as a prerequisite for a first programming course», Mathematics and Computer Education, vol. 37, n.o 1, 2003. R. Bornat, S. Dehnadi, y Simon, «Mental models, Consistency and Programming Aptitude», presentado en Psychology of Programming interested Group (PPIG), 2008. M. E. Caspersen, J. Bennedsen, y K. Larsen, «Mental Models and Programming Aptitude», presentado en ITiCSE 2007, Dundee, Scotland., 2007. D. Hagan y S. Markham, «¿Does it help to have some programming experience before beginning of a computer degree program?», Helsinki, Finland, 2000, pp. 25 - 28. E. Holden y E. Weeden, «Prior Experience and New IT Students», Issues in Informing Science and Information Technology, vol. 2, p. 189, 2005. R. S. Rist, «System Structure and Design», en Empirical studies of programmers: sicth workshop, Norwood, New Jersey: Ablex Publishing Corporation, 1996. R. S. Rist, «Learning to program: schema creation, application and evaluation», en Computer Science Education and Research, Netherlands: Taylor & Francis Group, 2004, pp. 175-197. J. R. Anderson, J. M. Fincham, y S. Douglass, «The role of examples and rules in the acquisition of a cognitive skill», Journal of Experimental Psychology: Learning, Memory, and Cognition, vol. 23, pp. 932945, 1997. J. Sweller, «Cognitive Load During Problem Solving: Effects on Learning», Cognitive Science, vol. 12, pp. 257-285, 1988. S. P. Davies, «Models and Theories of programming strategy», International Journal of Man-Machine Studies, vol. 39, pp. 237-267, 1993. J. H. Flavell, «Metacognition and cognitive monitoring: A new area of cognitive developmental inquiry», American Psychologist, vol. 34, n.o 10, pp. 906–911, 1979. J. T. Heart, «Memory and the feeling-of-knowing experience.», Journal of Educational Psychology, vol. 56, n.o 4, pp. 208-216, 1965. G. Schellings y H. Broekkamp, «Signaling task awareness in think-aloud protocols from students selecting relevant information from text», Metacognition and Learning, vol. 6, pp. 65–82, 2011. N. Arshad, «Teaching Programming and Problem Solving to CS2 Students using Think-Alouds», ACM SIGCSE Bulletin, vol. 41, n.o 1, pp. 372-376, 2009. S. Cooper, W. Dann, y R. Pausch, «Alice: a 3D Tool for introductory programming concepts», Journal of Computing Sciences in Colleges, vol. 15, n.o 5, 2000. [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] 11 A. Amory, K. Naicker, J. Vincent, y C. Adams, «The use of computer games as an educational tool: identification of appropriate game types and game elements», British Journal of Educational Technology, vol. 30, n.o 4, pp. 311-321, 1999. E. D. K. Heggestad, «The Predictive Validity of Self-Efficacy in Training Performance: Little More Than Past Performance», Journal of Experimental Psychology:, vol. 11, n.o 2, pp. 84-97, 2005. V. L. Ramalingam, «Self-Efficacy and mental models in learning to program», Leeds, United Kingdom, 2004, pp. 171 - 175. K. Ericsson y H. A. Simon, Protocol Analysis. Verbal reports as data, (rev. ed). Cambridge Massachusets.: MIT Press, 1993. A. Newell y H. A. Simon, Human Problem Solving. Englewood Cliffs, NJ: Prentice Hall, 1972. J. E. Russo, E. J. Jonson, y D. L. Stephens, «The validity of verbal methods», Memory Cognition, vol. 17, n.o 6, pp. 759-769, 1989. J. Sweller y G. Cooper, «The use of worked examples as a substitute for problem solving in learning algebra», Cognition and Instruction, vol. 2, pp. 59-89, 1985. M. Ward y J. Sweller, «Structuring effective worked examples», Cognition and Instruction, vol. 7, n.o 1, pp. 139, 1990. R. Moreno, «When worked examples don’t work: Is cognitive load theory at an Impasse?», Learning and Instruction, vol. 16, pp. 170-81, 2006. C. S. Rigby, E. L. Deci, B. C. Patrick, y R. M. Ryan, «Beyond the Intrinsic-Extrinsic Dichotomy: SelfDetermination in Motivation and Learning», Motivation and Emotion, vol. 16, n.o 3, 1992. R. M. Ryan y E. L. Deci, «Intrinsic and Extrinsic Motivations: Classic Definitions and New Directions», Contemporary Educational Psychology, vol. 25, pp. 54–67, 2000.