Resumen: El objetivo de este trabajo es analizar diferentes entornos de programación para estudiantes principiantes que faciliten el desarrollo de habilidades del pensamiento computacional, creación de programas y transición a un lenguaje de programación basado en texto. Se utilizó un diseño metodológico cuasi experimental, pues no se trabajó con un grupo control. Se realizó una investigación mixta de carácter exploratorio. El grupo de estudio estaba compuesto por 34 estudiantes de primer año de la Escuela Profesional de Educación de la Universidad Nacional de San Agustín de Arequipa. Los resultados muestran que la enseñanza con entornos de programación basada en bloques facilita la comprensión de conceptos de programación. Code.org y turtle con Python fueron las herramientas de mayor preferencia para aprender a programar, por lo que resultan adecuados para la transición a un lenguaje de programación textual. Los entornos de programación utilizados permitieron el desarrollo de habilidades relacionadas al pensamiento computacional.
Palabras-clave: pensamiento computacional; resolución de problemas; programación; entornos de programación; programador principiante.
Abstract: The aim of this work is to analyze different programming environments for beginning students that facilitate the development of computational thinking skills, program creation and transition to a text-based programming language. A quasi-experimental methodological design was used, since it did not work with a control group. A mixed exploratory investigation was carried out. The study group consisted of 34 first-year students from the Professional School of Education of the National University of San Agustin de Arequipa. The results show that teaching with block-based programming environments facilitates the understanding of programming concepts. Code.org and turtle with Python were the most preferred tools for learning programming, making them suitable for transitioning to a textual programming language. The programming environments used allowed the development of skills related to computational thinking.
Keywords: computational thinking; problem solving; programming; programming environments; novice programmer.
1.Introducción
Dentro de las habilidades esenciales en el siglo XXI se ha considerado el pensamiento computacional (Repenning, Basawapatna & Escherle, 2016) (Tsarava, et al. 2019), que puede contribuir a fomentar otras habilidades como pensamiento crítico y resolución de problemas (Bocconi, et al. 2016). Está relacionado con la formulación y resolución de problemas, competencia que involucra diferentes tipos de procesos de pensamiento, entre ellos: reducción, transformación, razonamiento compositivo, coincidencia de patrones, pensamiento procedimental y pensamiento recursivo. Se le considera una habilidad fundamental para todo ser humano, con influencia en diversas disciplinas y profesiones, no solo para las relacionadas a ciencia e ingeniería (Wing, 2006, 2011).
En consecuencia, los cursos de informática deben orientarse al desarrollo de habilidades relacionadas con el pensamiento computacional como son el pensamiento algorítmico, la abstracción, la resolución de problemas y la lógica, entre otras (Buitrago Flórez, et al. 2017). Se hace necesario incluir la informática con sus características de pensamiento algorítmico en la educación general, de este modo se estaría dotando a los estudiantes de herramientas para la resolución de problemas (Hromkovič, Kohn, Komm & Serafini, 2016). Sin embargo, la integración exitosa del pensamiento computacional en la educación obligatoria aún enfrenta problemas y desafíos sin resolver (Bocconi, Chioccariello, Dettori, Ferrari & Engelhardt, 2016); en algunos países en el nivel escolar recién se está promoviendo e implementando procesos para el desarrollo del pensamiento computacional, por lo que existen estudiantes que llegan a estudios universitarios sin conocimientos previos sobre ello.
Para Wing (2006), la computación y los ordenadores facilitan la extensión del pensamiento computacional, por tanto, se considera que los estudiantes están expuestos al pensamiento computacional mediante la programación, porque requiere la resolución de problemas utilizando conceptos de ciencias de la computación como abstracción y descomposición (Lye & Koh, 2014), implica el uso de enfoques analíticos y algorítmicos (Bocconi, Chioccariello, Dettori, Ferrari & Engelhardt, 2016)(Bocconi, et al. 2016), cuyas soluciones se pueden representar como pasos y algoritmos computacionales (Aho, 2012).
Dado que, la programación de computadoras es un mecanismo para el desarrollo de habilidades de pensamiento computacional entonces la formación en programación no solo debe comprender el enseñar un lenguaje de programación específico, sino también la forma de pensar en ciencias de la computación (Hromkovic, Kohn, Komm & Serafini, 2017). Para Shute, Sun & Asbell-Clarke, (2017), la programación requiere el análisis del problema, descomposición, abstracción y generalización, habilidades relacionadas al pensamiento computacional.
Es conocido que los estudiantes novatos que siguen cursos de programación enfrentan varios problemas, entre ellos la comprensión de la sintaxis, problemática que suele alejar a la mayoría de ellos de las carreras relacionadas a computación (Buitrago Flórez, et al. 2017). En el trabajo de Özmen & Altun (2014), se encontró que las dificultades de los estudiantes están asociadas con la comprensión de la semántica del programa, conocimientos de programación (conceptos, funciones, uso de variables, estructuras de decisión, bucles, sintaxis), habilidades de programación y depuración. Por tanto, la introducción a la programación utilizando un lenguaje textual puede resultar abrumadora para la capacidad cognitiva de los estudiantes principiantes y dificultar su posterior aprendizaje (Chen, Haduong, Brennan, Sonnert & Sadler, 2019), más aún para estudiantes que no son de carreras profesionales afines a computación.
Con el uso de programación basada en bloques, los estudiantes no tienen dificultades por errores de sintaxis o compilación, no tienen que memorizar múltiples comandos propios de los lenguajes de programación basados en texto (Xu, Ritzhaupt, Tian & Umapathy, 2019); se reducen las dificultades iniciales de los programadores novatos (Weintrop & Wilensky, 2017), sin embargo, algunos estudiantes no lo consideran como una programación real (Weintrop & Wilensky, 2016). Por otra parte, el uso y dominio de la programación basada en texto, como los que utilizan los desarrolladores profesionales, es el objetivo educativo final para los estudiantes al finalizar el nivel K-12 en la mayoría de los países, y para quienes continúan programando luego de la adolescencia (Román-González, PérezGonzález, Moreno-León & Robles, 2018) (Kölling, Brown & Altadmri, 2015).
En el contexto descrito, resulta importante la selección de los entornos de programación para impartir cursos introductorios a la programación, entornos en los que los estudiantes puedan desarrollar el pensamiento computacional y sentirse motivados en su proceso de aprendizaje. Existen diferentes entornos de programación gráfica basada en bloques, pero se ha hecho poca investigación sobre su eficacia para apoyar a los estudiantes en la transición a la programación basada en texto (Dorling & White, 2015), transición que se considera un desafío en la enseñanza de la programación (Kölling, Brown & Altadmri, 2015). Por su parte, Chen, Haduong, Brennan, Sonnert & Sadler (2019), encontraron que el uso de programación gráfica puede formar malos hábitos que dificultarían la transición hacia un lenguaje de programación formal, por lo que, sugieren investigar la transición entre diferentes tipos de lenguajes de programación.
En este trabajo, se explora el uso de diferentes entornos de programación, basados en bloques y texto, con el fin de identificar aquellos que les resultan más fáciles y atractivos a estudiantes principiantes en programación, que faciliten el desarrollo de habilidades relacionadas al pensamiento computacional, creación de programas y la transición a un lenguaje de programación basado en texto.
2.Trabajos Relacionados
En el trabajo de (Durak, 2020) se encontró que el lenguaje de programación Scratch influyó en la participación activa y el desarrollo de habilidades de pensamiento reflexivo de los estudiantes para la resolución de problemas de manera más positiva que Alice, por ser más sencillo en términos de bloques de código. Este autor también observó que programar con Alice afecta positivamente las habilidades relacionadas con el pensamiento computacional de los estudiantes; sugiere examinar los efectos de otras herramientas de programación.
Chen, Haduong, Brennan, Sonnert & Sadler (2019) encontraron que la experiencia previa en programación tuvo efectos positivos en las actitudes sobre la programación, así como en las calificaciones en los cursos de introducción a ciencias de la computación. Los estudiantes cuyo primer lenguaje de programación se basó en bloques obtuvieron calificaciones más altas en comparación de los estudiantes cuyo primer lenguaje fue el textual. Proponen como trabajo futuro investigar la transición entre diferentes tipos de lenguajes de programación.
Tabet, Gedawy, Alshikhabobakr & Razak (2016), describen una experiencia en el diseño de un plan de estudios de computación para estudiantes de secundaria utilizando Alice, el cual proporciona una interfaz simple para aprender conceptos de programación; luego utilizan Python en clases superiores para pasar a un lenguaje de programación basado en texto. Encontraron que el rendimiento de los estudiantes con experiencia en Alice fue superior a los que no lo tenían, además, la programación en Python les pareció más fácil y divertida.
Dorling & White (2015), proponen una estrategia probada para que los profesores permitan a los estudiantes realizar la transición a un lenguaje de programación basado en texto con éxito, utilizan actividades desconectadas, lenguaje gráfico Scratch y Python. Sugieren que los profesores deben prestar especial atención al proceso de transición de un lenguaje gráfico a uno basado en texto, así como la incorporación una buena pedagogía en las lecciones de computación.
3.Marco Conceptual
3.1.Pensamiento Computacional
El Pensamiento Computacional (PC) es una habilidad fundamental para todos los estudiantes (Li, 2021), implica la resolución de problemas o diseño de sistemas mediante el uso de procesos de pensamiento como abstracción, descomposición (Wing, 2011, 2006). La abstracción permite definir patrones, generalizar capturando propiedades esenciales comunes a partir de instancias (Wing, 2011). Según Aho (2012), el PC utiliza algoritmos y pasos computacionales para representar la solución de problemas. En este sentido, la programación está relacionada al pensamiento computacional, porque requiere pensar y resolver problemas con diferentes niveles de abstracción (GonzálezGonzález, 2019) y se le considera como la principal demostración de la capacidad del PC mediante el uso de la computadora (Román-González, Pérez-González, MorenoLeón & Robles, 2018), como un proceso de formulación y resolución de problemas (Durak, 2020); pero también puede desarrollarse mediante actividades unplugged o desconectadas en edades más tempranas.
Además, el PC utiliza conceptos básicos de computación para la resolución de problemas y situaciones cotidianas (Buitrago Flórez, et al. 2017), se puede aplicar en la vida diaria, por lo que es una habilidad esencial para todos, no solo para informáticos o programadores (Wing, 2006). Permite adquirir o fortalecer otras habilidades como la creatividad, resolución de problemas, razonamiento lógico entre otros, que son utilizadas en diferentes áreas de conocimiento.
3.2. Entornos de programación basada en bloques
Los entornos de programación basada en bloques incluyen la programación visual (Durak, 2020), por lo que su uso se considera una forma adecuada de introducir a los estudiantes principiantes a la programación (Xu, Ritzhaupt, Tian & Umapathy, 2019), porque facilitan la adquisición de conceptos computacionales sin necesidad a aprender la sintaxis de programación (Lye & Koh, 2014) asociada a un lenguaje de programación textual. En adición, los estudiantes novatos pueden explorar más fácilmente conceptos avanzados sobre computación creando programas que se componen de bloques específicos, los cuales se arrastran y sueltan formando secuencias lógicas, como piezas de un rompecabezas (Chen, Haduong, Brennan, Sonnert & Sadler, 2019), por lo que son más fáciles de usar y aprender de forma intuitiva, mejorando la experiencia introductoria de aprendizaje de programación.
3.3. Entornos de programación basada en texto
Los lenguajes de programación textual requieren que los estudiantes recuerden los comandos y sintaxis del lenguaje; las palabras claves por lo general son en inglés, lo que para algunos principiantes es un desafío adicional. Además, se hace necesaria la indentación y el espaciado, lo misma que si se realiza de forma incorrecta puede ocasionar errores en el programa y afectar la legibilidad (Kölling, Brown & Altadmri, 2015). Esta es la razón por la que los estudiantes tienen dificultades cuando están iniciando un curso de programación.
Sin embargo, los principales lenguajes de programación profesional se basan en texto como C, Java, Python (Kölling, Brown & Altadmri, 2015) y son comunes en la industria e investigación (Blanchard, et al. 2020). Se considera que Python facilita a los estudiantes principiantes el involucrarse en las principales características del pensamiento computacional (Buitrago Flórez, et al. 2017), por lo que resulta adecuado su uso como lenguaje de programación inicial, ya que incluye librerías de gráficos de tortuga que posibilitan una transición fluida de Logo a Python (Hromkovic, Kohn, Komm & Serafini, 2017).
4.Metodología
En la experiencia participaron 34 estudiantes matriculados en el curso de Informática Básica, grupo G, del período académico 2019-A de la Escuela Profesional de Educación de la Universidad Nacional de San Agustín de Arequipa (Perú). El grupo estuvo conformado por 21 mujeres y 13 varones, quienes participaron del desarrollo de la tercera unidad de aprendizaje: Introducción a la Programación. Unidad que se desarrolla durante cinco semanas, con 5 horas académicas semanales (1 hora teórica y 4 horas prácticas), que duran 50 minutos cada una.
El diseño metodológico utilizado fue cuasi experimental, pues no se trabajó con un grupo control. Se realizó una investigación mixta de carácter exploratorio, a través de actividades en las clases de informática básica, realizadas en la tercera unidad de aprendizaje: Introducción a la Programación.
En las horas de teoría se explicaron conceptos relacionados a la programación y pensamiento computacional como algoritmo, descomposición, programa, lenguaje de programación, variables, instrucciones secuenciales, de selección, repetitivas y funciones utilizando como apoyo las herramientas Code.org y PSeInt. Las actividades que los estudiantes debían desarrollar eran algoritmos en pseudocódigo realizados en equipos de trabajo utilizando técnicas de aprendizaje cooperativo; para ello se siguieron las recomendaciones de Bedregal, Tupacyuanqui y Cornejo (2018). Las sesiones teóricas se realizaron en aula.
En las horas de práctica los estudiantes experimentaron con el uso de diferentes entornos de programación: Code.org, Lightbot, Scratch, Turtle con Python. El método utilizado en las sesiones de clase fue expositivo-participativo. Las sesiones de práctica se dieron en los laboratorios de computación.
Para recoger la percepción de los participantes en relación con la experiencia del uso de entornos de programación, se realizó una encuesta semi-estructurada, con seis preguntas de escala y una pregunta cerrada de opción múltiple.
5.Descripción de la Experiencia
Se seleccionaron entornos de programación basados en bloque (Code.org, Lightbot, Scratch), pseudocódigos (PSeInt), para luego realizar la transición al lenguaje de programación Python.
Se utilizaron varias herramientas para explorar y analizar sus implicancias en la enseñanza-aprendizaje de la Introducción de la Programación en estudiantes principiantes. Los objetivos planteados fueron que los estudiantes conozcan las diferentes representaciones de algoritmos e instrucciones de programación, facilitar el desarrollo de habilidades relacionadas al pensamiento computacional y el aprendizaje de conceptos de programación, y la creación de programas.
La Tabla 1 muestra los temas de programación que se desarrollaron utilizando las herramientas seleccionadas.
PSeInt aparece en todos los temas de programación desarrollados porque es la herramienta de apoyo que se utilizó para explicar los conceptos de programación en las horas de teoría. En todas las herramientas se utiliza instrucciones secuenciales porque siempre están presentes en la creación de programas.
Cada sesión de laboratorio tuvo características propias que se describen a continuación.
5.1.Semana 1: Code.org y Lightbot
En esta primera semana, se introdujo a los estudiantes en el lenguaje de programación visual basado en bloques utilizando recursos de Code.org y Lightbot.
Code.org facilitó la comprensión de conceptos de instrucciones secuenciales, bucles y funciones. Se realizaron ejercicios de los tutoriales de una hora del código (Figura 1). Los estudiantes pudieron adquirir prácticas de pensamiento computacional como iteración, abstracción que les permitió reconocer patrones que se repetían.
Lightbot permitió reforzar conceptos sobre algoritmos, instrucciones secuenciales y funciones. Los estudiantes fueron avanzando de nivel y notando que la complejidad del problema a resolver aumentaba, requiriéndose mayor cantidad de instrucciones, por lo que necesitaron descomponer el programa en pequeños subprogramas haciendo uso de funciones, las cuales también les permitían la reutilización del código (Figura 2).
5.2.Semana 2: Scratch
En la segunda semana, se utilizó el entorno de programación basado en bloques de Scratch (Figura 3), el cual permitió introducir y reforzar conceptos sobre variables, instrucciones secuenciales, de selección, repetitivas y funciones. Se les proporcionó una guía práctica con ejemplos y luego se les propuso ejercicios. Desarrollaron habilidades como resolución de problemas, lógica, iteración y creatividad.
5.3.Semana 3: Code.org y/o Scratch, Turtle de Python
En la tercera semana al inicio de clases se les pidió a los estudiantes realizar una actividad libre de programación utilizando Code.org, Scratch, o ambos, el cual podía desarrollarse en pares, con el fin de que ellos eligieran el entorno de programación y subieran evidencia de lo realizado al aula virtual.
En esta actividad se encontraron 33 trabajos, de los cuales 21 fueron realizados en Code. org y 12 en Scratch. En la Figura 4 se observa que hubo mayor preferencia en el uso del entorno de programación de Code.org con 64%. Este resultado fue considerado para el diseño de clases de laboratorio de la siguiente semana.
Luego se les hizo una introducción de la librería gráfica Turtle de Python, donde los estudiantes utilizaron instrucciones secuenciales y funciones para dibujar figuras geométricas, aplicar colores. En la Figura 5 se muestra uno de los ejemplos desarrollados.
5.4.Semana 4: Turtle de Python
En la cuarta semana, los estudiantes pasaron de la programación basada en bloques a programación basada en texto con la ayuda de ejemplos de Code.org que pasaron a la programación textual con Python utilizando la librería gráfica turtle (Figura 6), luego se les propuso algunos ejercicios (Figura 7) y fueron dibujando diferentes formas y patrones. Se trabajaron principalmente con objetos, instrucciones secuenciales, repetitivas y funciones.
5.5.Semana 5: Presentación de Trabajos
En la última semana utilizaron los conocimientos y habilidades adquiridas presentando y explicando trabajos finales realizados con la librería gráfica turtle de Python. Las Figuras 8 y 9 muestra ejemplos de trabajos realizados.
6.Resultados
6.1. Relacionados con la percepción de los estudiantes
Se elaboró un cuestionario para conocer la apreciación de los estudiantes sobre su experiencia con Code Studio, Lightbot, Scratch, Turtle con Python y PSeInt.
La encuesta se aplicó a los 34 estudiantes que participaron de la experiencia.
El cuestionario contenía una pregunta cerrada de opción múltiple y seis preguntas de escala tipo Likert, con cuatro niveles (1) Nada, (2) Poco, (3) Bastante y (4) Completamente. La Tabla 2 muestra el porcentaje de respuestas para cada nivel de las preguntas de escala.
De los resultados de la encuesta realizada se puede apreciar que la mayoría de los estudiantes opina que su experiencia previa de Code Studio les ayudó a comprender y programar funciones con Python, así como programar bucles y funciones con turtle. Scratch les permitió aprender los conceptos básicos de programación (variables, condicionales, bucles). También se observa que a la mayoría de los estudiantes les resultaron atractivos los programas que se pueden desarrollar con Turtle.
Se puede también afirmar que la experiencia se ha percibido como favorable al logro de los objetivos educacionales planteados pues las puntuaciones promedio obtenidas para cada pregunta superan la puntuación promedio de la escala empleada (Figura 10). La excepción se da en la Pregunta 6, para los estudiantes PSeInt no les resultó fácil para aprender a programar.
La séptima pregunta, de opción múltiple, fue "¿Qué herramientas de las que se utilizó le gusto más para aprender a programar?", en la Figura 11, se observa que los entornos de programación que más les gustaron a los participantes encuestados fueron Code Studio y Turtle con Python.
6.2.Relacionado con la adquisición de conceptos de programación
Se obtuvieron buenos resultados por parte de los estudiantes en el cuestionario final que se aplicó para evaluar el aprendizaje sobre conceptos de algoritmos, métodos o funciones, instrucciones secuenciales y repetitivas. En la Figura 12 se observa que la mayoría de los estudiantes acertó de 4 a 6 preguntas de un total de 6.
Sobre un total de 6 preguntas en un cuestionario final de conceptos de programación, el 40% de estudiantes solamente se equivocó en una pregunta, el 27% se equivocó en dos preguntas y hubo un 24% de estudiantes que no se equivocaron en ninguna de las preguntas formuladas (Figura 13).
7.Discusión
Los entornos de programación permitieron introducir y reforzar algunos conceptos computacionales (como instrucciones secuenciales, bucles, condicionales), adquirir algunas prácticas computacionales (como abstracción, descomposición, iteración, reutilización) durante las actividades de programación de los estudiantes, que corresponden a dos de las dimensiones del pensamiento computacional descritas por (Brennan & Resnick, 2012) y adaptadas en el trabajo de (Luo, Antonenko & Davis, 2020). Además, los estudiantes desarrollaron habilidades como resolución de problemas, lógica, creatividad. Por tanto, asumimos que la programación permite desarrollar habilidades relacionadas al pensamiento computacional. Así mismo, (Román-González, PérezGonzález, Moreno-León & Robles, 2018) considera a la programación de computadoras como la principal demostración de la capacidad del pensamiento computacional, por lo que se utiliza con frecuencia para promover las habilidades del pensamiento computacional (Shute, Sun & Asbell-Clarke, 2017).
Según los resultados de la investigación, Code.org y la librería gráfica turtle de Python fueron las herramientas de mayor preferencia para aprender a programar. Por tanto, sugerimos utilizar Code.org para la programación basada en bloques, seguido de Python para la programación basado en texto, utilizando la librería turtle para facilitar la transición entre lenguajes, principalmente para los estudiantes principiantes que no siguen estudios relacionados a las carreras de computación, de forma similar (Tabet, Gedawy, Alshikhabobakr & Razak, 2016) propone iniciar con el entorno de programación visual Alice, seguido de Python y en (Dorling & White, 2015) realizan una transición del lenguaje gráfico Scratch a Python, porque iniciar con un lenguaje textual puede resultar abrumador para la capacidad cognitiva de los estudiantes principiantes y dificultar su posterior aprendizaje (Chen, Haduong, Brennan, Sonnert & Sadler, 2019), por la necesidad de comprensión de sintaxis y semántica de los lenguajes de programación textual. En nuestro estudio, para la transición a programación basada en texto se utilizó inicialmente los mismos ejercicios que habían desarrollado en Code.org, para que los pasen a Python utilizando la librería gráfica turtle, reduciendo la complejidad de sintaxis y facilitando la comprensión del lenguaje de programación basada en texto. Además, a la mayoría de los estudiantes les resultó atractivo los programas que se pueden crear con turtle, por lo que desarrollaron una actitud positiva hacia la programación.
Se coincide con lo expresado en el trabajo de (Laura-Ochoa, 2018), en el sentido de que el aprendizaje de la programación para estudiantes de primer año de las instituciones de educación superior puede darse de manera sencilla, comprensiva y entretenida si se utilizan las herramientas adecuadas.
Asumimos que PSeInt no les resultó fácil para ayudarles a programar porque solamente se utilizó en teoría por el profesor para escribir y explicar algoritmos en pseudocódigo; pero por la corta duración del curso no se utilizó por los estudiantes en laboratorio. Además, está basado en texto y se enseñó simultáneamente con programación basada en bloques, que facilitaron la comprensión de conceptos básicos de programación.
8. Limitaciones
La principal limitación del estudio es la corta duración de la tercera unidad de aprendizaje: Introducción a la Programación del curso de Informática Básica, el cual no permitió profundizar los entornos de programación utilizados, tipo de desafíos o explorar otras herramientas. Además, se tuvo una cantidad reducida de estudiantes, ya que solamente se realizó en un grupo en la que la docente del estudio impartía clases, por lo que no se trabajó con un grupo control.
9. Conclusiones
La experiencia de análisis de entornos de programación basados en bloques y texto, descrita en este trabajo, puede ser un referente para aquellos profesores interesados en elegir entornos de programación para apoyar el aprendizaje de creación de programas y desarrollo de habilidades del pensamiento computacional de los estudiantes que recién están iniciándose en la programación.
La combinación de programación basada en bloques y la programación basada en texto utilizando la librería gráfica turtle de Python facilitaron la comprensión de conceptos de programación y creación de programas. Es por esta razón, que ambos entornos de programación, tanto los basados en bloques como en texto, son importantes para el desarrollo de habilidades relacionadas al pensamiento computacional. Además, se sugiere el uso de Code.org y la librería gráfica turtle de Python, para facilitar la transición de programación basada en bloques a programación basada en texto, principalmente en estudiantes principiantes de carreras no relacionadas a computación.
Referencias
Aho, A. V. (2012). Computation and computational thinking. The computer journal, 55(7), 832-835.
Bedregal-Alpaca, N., Tupacyupanqui-Jaén, D. & Cornejo-Aparicio, V. (2018). Video and Cooperative Work as Didactic Strategies to Enrich Learning and Development of Generic Competences in numerical Methods. 2018 XIII Latin American Conference on Learning Technologies (LACLO). DOI: 10.1109/lack>.2018.00038
Blanchard, J., Gardner-McCune, C., & Anthony, L. (2020, February). Dual-Modality Instruction and Learning: A Case Study in CSi. In Proceedings of the 51st ACM Technical Symposium on Computer Science Education (pp. 818-824).
Bocconi, S., Chioccariello, A., Dettori, G., Ferrari, A., & Engelhardt, K. (2016). Developing computational thinking in compulsory education-Implications for policy and practice (No. JRC104188). Joint Research Centre (Seville site).
Bocconi, S., Chioccariello, A., Dettori, G., Ferrari, A., Engelhardt, K., Kampylis, P., & Punie, Y. (2016). Exploring the field of computational thinking as a 21st century skill. Proceedings of the EDULEARN16, 16, 4725-4733.
Brennan, K., & Resnick, M. (2012, April). New frameworks for studying and assessing the development of computational thinking. In Proceedings of the 2012 annual meeting of the American educational research association, Vancouver, Canada (Vol. 1, p. 25).
Buitrago Flórez, F., Casallas, R., Hernández, M., Reyes, A., Restrepo, S., & Danies, G. (2017). Changing a generation's way of thinking: Teaching computational thinking through programming. Review of Educational Research, 87(4), 834-860.
Chen, C., Haduong, P., Brennan, K., Sonnert, G., & Sadler, P. (2019). The effects of first programming language on college students' computing attitude and achievement: a comparison of graphical and textual languages. Computer Science Education, 29(1), 23-48.
Dorling, M., & White, D. (2015, February). Scratch: A way to logo and python. In Proceedings of the 46th ACM Technical Symposium on Computer Science Education (pp. 191-196).
Durak, H. Y. (2020). The effects of using different tools in programming teaching of secondary school students on engagement, computational thinking and reflective thinking skills for problem solving. Technology, Knowledge and Learning, 25(1), 179-195.
González-González, C. S. (2019). State of the art in the teaching of computational thinking and programming in childhood education. Education in the Knowledge Society, 20, 1-15.
Hromkovič, J., Kohn, T., Komm, D., & Serafini, G. (2016, October). Combining the power of python with the simplicity of logo for a sustainable computer science education. In International Conference on Informatics in Schools: Situation, Evolution, and Perspectives (pp. 155-166). Springer, Cham.
Hromkovic, J., Kohn, T., Komm, D., & Serafini, G. (2017). Algorithmic thinking from the start. Bulletin of EATCS, 1(121).
Kölling, M., Brown, N. C., & Altadmri, A. (2015, November). Frame-based editing: Easing the transition from blocks to text-based programming. In Proceedings of the Workshop in Primary and Secondary Computing Education (pp. 29-38).
Laura-Ochoa, L. (2018). Teaching the Introduction to Programming using Ludic Tools. 16 th LACCEI International Multi-Conference for Engineering, Education, and Technology: "Innovation in Education and Inclusion", 19-21 July 2018, Lima, Peru. DOI 10.18687/LACCEI2018.1.1.176
Li, Q. (2021). Computational thinking and teacher education: An expert interview study. Human Behavior and Emerging Technologies, 3(2), 324-338.
Luo, F., Antonenko, P. D., & Davis, E. C. (2020). Exploring the evolution of two girls' conceptions and practices in computational thinking in science. Computers & Education, 146, 103759.
Lye, S. Y., & Koh, J. H. L. (2014). Review on teaching and learning of computational thinking through programming: What is next for K-12?. Computers in Human Behavior, 41, 51-61.
Özmen, B., & Altun, A. (2014). Undergraduate students' experiences in programming: difficulties and obstacles. Turkish Online Journal of Qualitative Inquiry, 5(3), 1-27.
Repenning, A., Basawapatna, A., & Escherle, N. (2016, September). Computational thinking tools. In 2016 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC) (pp. 218-222). IEEE.
Román-González, M., Pérez-González, J. C., Moreno-León, J., & Robles, G. (2018). Can computational talent be detected? Predictive validity of the Computational Thinking Test. International Journal of Child-Computer Interaction, 18, 47-58.
Shute, V. J., Sun, C., & Asbell-Clarke, J. (2017). Demystifying computational thinking. Educational Research Review, 22, 142-158.
Tabet, N., Gedawy, H., Alshikhabobakr, H., & Razak, S. (2016, July). From alice to python. Introducing text-based programming in middle schools. In Proceedings of the 2016 ACM Conference on Innovation and Technology in Computer Science Education (pp. 124-129).
Tsarava, K., Leifheit, L., Ninaus, M., Román-González, M., Butz, M. V., Golle, J., Trautwein, U. & Moeller, K. (2019, October). Cognitive correlates of computational thinking: Evaluation of a blended unplugged/Plugged-in course. In Proceedings of the 14th Workshop in Primary and Secondary Computing Education (pp. 1-9).
Weintrop, D., & Wilensky, U. (2016). Bringing blocks-based programming into high school computer science classrooms. In Annual Meeting of the American Educational Research Association (AERA). Washington DC, USA.
Weintrop, D., & Wilensky, U. (2017). Comparing block-based and text-based programming in high school computer science classrooms. ACM Transactions on Computing Education (TOCE), 18(1), 1-25.
Wing, J. M. (2006). Computational thinking. Communications of the ACM, 49(3), 33-35.
Wing, J. M. (2011). Computational thinking: What and why. The Link. News from the School of Computer Science at Carnegie Mellon University.
Xu, Z., Ritzhaupt, A. D., Tian, F., & Umapathy, K. (2019). Block-based versus text-based programming environments on novice student learning outcomes: A meta-analysis study. Computer Science Education, 29(2-3), 177-204.
You have requested "on-the-fly" machine translation of selected content from our databases. This functionality is provided solely for your convenience and is in no way intended to replace human translation. Show full disclaimer
Neither ProQuest nor its licensors make any representations or warranties with respect to the translations. The translations are automatically generated "AS IS" and "AS AVAILABLE" and are not retained in our systems. PROQUEST AND ITS LICENSORS SPECIFICALLY DISCLAIM ANY AND ALL EXPRESS OR IMPLIED WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES FOR AVAILABILITY, ACCURACY, TIMELINESS, COMPLETENESS, NON-INFRINGMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Your use of the translations is subject to all use restrictions contained in your Electronic Products License Agreement and by using the translation functionality you agree to forgo any and all claims against ProQuest or its licensors for your use of the translation functionality and any output derived there from. Hide full disclaimer
© 2021. This work is published under https://creativecommons.org/licenses/by-nc-nd/4.0/ (the “License”). Notwithstanding the ProQuest Terms and Conditions, you may use this content in accordance with the terms of the License.
Abstract
Code.org y turtle con Python fueron las herramientas de mayor preferencia para aprender a programar, por lo que resultan adecuados para la transición a un lenguaje de programación textual. Abstract: The aim of this work is to analyze different programming environments for beginning students that facilitate the development of computational thinking skills, program creation and transition to a text-based programming language. The study group consisted of 34 first-year students from the Professional School of Education of the National University of San Agustin de Arequipa. Keywords: computational thinking; problem solving; programming; programming environments; novice programmer. 1.Introducción Dentro de las habilidades esenciales en el siglo XXI se ha considerado el pensamiento computacional (Repenning, Basawapatna & Escherle, 2016) (Tsarava, et al. 2019), que puede contribuir a fomentar otras habilidades como pensamiento crítico y resolución de problemas (Bocconi, et al. 2016).
You have requested "on-the-fly" machine translation of selected content from our databases. This functionality is provided solely for your convenience and is in no way intended to replace human translation. Show full disclaimer
Neither ProQuest nor its licensors make any representations or warranties with respect to the translations. The translations are automatically generated "AS IS" and "AS AVAILABLE" and are not retained in our systems. PROQUEST AND ITS LICENSORS SPECIFICALLY DISCLAIM ANY AND ALL EXPRESS OR IMPLIED WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES FOR AVAILABILITY, ACCURACY, TIMELINESS, COMPLETENESS, NON-INFRINGMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Your use of the translations is subject to all use restrictions contained in your Electronic Products License Agreement and by using the translation functionality you agree to forgo any and all claims against ProQuest or its licensors for your use of the translation functionality and any output derived there from. Hide full disclaimer
Details
1 Universidad Nacional de San Agustín de Arequipa, Arequipa, Perú.





