Methodological Process for the Teaching of Computer Programming based on Computational Thinking: Case Study


In academia, it is common to identify the problem solving process based on computational thinking, as the traditional method of programming teaching. However, students would first have to develop the four types of thinking involved in this process, in order to develop successfully the programming skills. Therefore is required from the beginning of the learning process a method that provides students with a contextualization, allowing the configuration of their own language, which propitiates the development of analytical thinking for the construction of solutions for increasingly complex problems. This paper describes a methodological process of computer programming teaching based on the computational thinking process, by integrating components that promote the development of analytical thinking. Finally, we present a case study with STEM undergraduate students as participants.

[1] Franklin D. Putting the Computer Science in Computing Education Research. Commun ACM. New York, NY, USA: ACM; 2015;58: 34–36.

[2] Bocconi S, Chioccariello A, Dettori G, Ferrari A, Engelhardt K, Kampylis P, et al. EXPLORING THE FIELD OF COMPUTATIONAL THINKING AS A 21ST CENTURY SKILL. EDULEARN16 Proceedings. IATED; 2016. pp. 4725–4733.

[3] P EEJ, Wong B, Berry M. The Roehampton Annual Computing Education Report. 2015 data from England [Internet]. University of Roehampton; 2016 Dec. Available: 311595274_The_Roehampton_Annual_Computing_Education_Report_2015_data_ from_England/links/5850296608ae4bc8993b6845.pdf.

[4] Pappas IO, Giannakos MN, Jaccheri L. Investigating Factors Influencing Students’ Intention to Dropout Computer Science Studies. Proceedings of the 2016 ACM Conference on Innovation and Technology in Computer Science Education - ITiCSE ’16. 2016. doi:10.1145/2899415.2899455

[5] Dolado AR, Arana LS. Metodología de programación. Principios y aplicaciones. Editorial Club Universitario; 2004.

[6] Wing JM. Computational thinking. Commun ACM. 2006;49: 33–35.

[7] Weintrop D, Beheshti E, Horn M, Orton K, Jona K, Trouille L, et al. Defining Computational Thinking for Mathematics and Science Classrooms. J Sci Educ Technol. Springer Netherlands; 2016;25: 127–147.

[8] Barr V. Bringing Computational Thinking to K-12: What is involved and what is thye role of the computer science education community? ACM Inroads. 2011;2: 48–54.

[9] Computational Thinking for Educators - Course [Internet]. [cited 28 Jul 2017]. Available:

[10] Aggarwal A, Gardner-McCune C, Touretzky DS. Evaluating the Effect of Using Physical Manipulatives to Foster Computational Thinking in Elementary School. Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education. ACM; 2017. pp. 9–14.

[11] Ho C-H. Some phenomena of problem decomposition strategy for design thinking: differences between novices and experts. Design Studies. 2001;22: 27–45.

[12] Kalelioglu F, Gülbahar Y, Kukul V. A framework for computational thinking based on a systematic research review. Baltic Journal of Modern Computing. University of Latvia; 2016;4: 583.

[13] del Carmen González Torres FTM&. M. Aprendizaje autorregulado: presente y futuro de la investigación. Revista Electrónica de Investigación Psicoeducativa. 2004;2: 1– 34.

[14] Melgar SA. El pensamiento: Una definición interconductual. Revista de Investigación en Psicología. Julio, 2000;3: 24–38.

[15] Nosich GM. Aprender a pensar: pensamiento analítico para estudiantes. Pearson Educación; 2003.

[16] Cairo O. Metodología de la programación. ALFAOMEGA GRUPO EDITOR S.A. DE C.V., editor. 2003.

[17] Yadav A, Stephenson C, Hong H. Computational Thinking for Teacher Education. Communications of the ACM. april,2017;60: 55–62.

[18] Buhr PA. Understanding Control Flow: Concurrent Programming Using