A learning trajectory for developing computational thinking in prospective mathematics teachers through Python programming in Google Colab

Authors

  • Edi Irawan Tadris Matematika, Universitas Islam Negeri Kiai Ageng Muhammad Besari Ponorogo, East Java 63471, Indonesia https://orcid.org/0000-0003-4600-7075
  • Moh. Khoridatul Huda Pendidikan Guru Madrasah Ibtidaiyah, Universitas Islam Raden Rahmat, East Java 65163, Indonesia https://orcid.org/0009-0004-9283-3225
  • Ratni Purwasih Pendidikan Guru Sekolah Dasar, Institut Keguruan dan Ilmu Pendidikan (IKIP) Siliwangi, West Java 40521, Indonesia

DOI:

https://doi.org/10.35316/alifmatika.2025.v7i1.34-52

Keywords:

Computational Thinking, Google Colab, Hypothetical Learning, Learning Trajectory, Prospective Math Teacher, Python Programming

Abstract

Computational thinking (CT) is a fundamental skill that needs to be developed by prospective mathematics teachers to improve problem-solving and logical reasoning. Integrating programming into mathematics learning is an effective approach to training this skill. This study aimed to design a hypothetical learning trajectory (HLT) for developing CT using Python programming on Google Colab. This study used a didactical design research (DDR) framework consisting of three stages: prospective analysis, metapedadidactic analysis, and retrospective analysis. The research participants were prospective mathematics teacher students enrolled in a computer programming course. Data were collected through observation, code artefacts, and reflective interviews. The results showed that HLT, designed in stages, improved the four main components of CT: decomposition, abstraction, pattern recognition, and algorithmic thinking. The students experienced improvements in breaking down problems, devising more efficient solutions, recognising patterns in code structures, and systematically designing algorithms. In addition, Google Colab supports learning by providing a collaborative and accessible programming environment. However, minor syntax errors and lack of attention to indentation were found. This study recommends using structured debugging strategies and project-based learning in optimizing CT development. The findings indicate that the integration of programming into the education of prospective mathematics teachers can equip them with essential CT skills to support technology-based mathematics teaching.

Downloads

Download data is not yet available.

References

Aho, A. V. (2012). Computation and Computational Thinking. The Computer Journal, 55(7), 832–835. https://doi.org/10.1093/comjnl/bxs074

Andrews-Larson, C., Wawro, M., & Zandieh, M. (2017). A Hypothetical Learning Trajectory for Conceptualizing Matrices as Linear Transformations. International Journal of Mathematical Education in Science and Technology, 48(6), 809–829. https://doi.org/10.1080/0020739X.2016.1276225

Angeli, C., & Giannakos, M. (2020). Computational Thinking Education: Issues and Challenges. Computers in Human Behavior, 105(106185), 1–8. https://doi.org/10.1016/j.chb.2019.106185

Antonides, J., & Battista, M. T. (2022). A Learning Trajectory for Enumerating Permutations: Applying and Elaborating a Theory of Levels of Abstraction. The Journal of Mathematical Behavior, 68, 101010. https://doi.org/10.1016/j.jmathb.2022.101010

Badan Standar, Kurikulum, dan Asesmen Pendidikan Kementerian Pendidikan Dasar dan Menengah Republik Indonesia. (2025). Naskah Akademik Pembelajaran Koding dan Kecerdasan Artifisial pada Pendidikan Dasar dan Menengah. Pusat Kurikulum dan Pembelajaran & Pusat Standar dan Kebijakan Pendidikan Kemendikdasmen.

Bai, H., Wang, X., & Zhao, L. (2021). Effects of the Problem-Oriented Learning Model on Middle School Students’ Computational Thinking Skills in a Python Course. Frontiers in Psychology, 12(1), 1–14. https://doi.org/10.3389/fpsyg.2021.771221

Cansu, F. K., & Cansu, S. K. (2019). An Overview of Computational Thinking. International Journal of Computer Science Education in Schools, 3(1), 17–30. https://doi.org/10.21585/ijcses.v3i1.53

Choi, W. C., & Choi, I. C. (2024). The Influence of Codecombat on Computational Thinking in Python Programming Learning at Primary School. 2024 5th International Conference on Education Development and Studies, 26–32. https://doi.org/10.1145/3669947.3669951

Clements, D. H., & Sarama, J. (2024). Systematic Review of Learning Trajectories in Early Mathematics. ZDM – Mathematics Education, 14. https://doi.org/10.1007/s11858-024-01644-1

Clements, D. H., Sarama, J., Baroody, A. J., & Joswick, C. (2020). Efficacy of a Learning Trajectory Approach Compared to a Teach-to-Target Approach for Addition and Subtraction. ZDM, 52(4), 637–648. https://doi.org/10.1007/s11858-019-01122-z

Corbin, J. M., & Strauss, A. L. (2015). Basics of Qualitative Research: Techniques and Procedures for Developing Grounded Theory (Fourth edition). SAGE.

De Jesús, S., & Martinez, D. (2020). Applied Computational Thinking with Python: Design Algorithmic Solutions for Complex and Challenging Real-World Problems. Packt Publishing.

Denzin, N. K., & Lincoln, Y. S. (Eds.). (2018). The SAGE Handbook of Qualitative Research (Fifth edition). SAGE.

Dong, Y., Catete, V., Jocius, R., Lytle, N., Barnes, T., Albert, J., Joshi, D., Robinson, R., & Andrews, A. (2019). PRADA: A Practical Model for Integrating Computational Thinking in K-12 Education. Proceedings of the 50th ACM Technical Symposium on Computer Science Education, 906–912. https://doi.org/10.1145/3287324.3287431

Downey, A. (2024). Think Python: How to Think Like a Computer Scientist (Third edition). O’Reilly Media, Inc.

Ferreira, R., Canesche, M., Jamieson, P., Neto, O. P. V., & Nacif, J. A. M. (2024). Examples and Tutorials on Using Google Colab and Gradio to Create Online Interactive Student‐Learning Modules. Computer Applications in Engineering Education, 32(4), e22729. https://doi.org/10.1002/cae.22729

Fitzgerald, S., Lewandowski, G., McCauley, R., Murphy, L., Simon, B., Thomas, L., & Zander, C. (2008). Debugging: Finding, Fixing and Flailing, a Multi-Institutional Study of Novice Debuggers. Computer Science Education, 18(2), 93–116. https://doi.org/10.1080/08993400802114508

Gane, B. D., Israel, M., Elagha, N., Yan, W., Luo, F., & Pellegrino, J. W. (2021). Design and Validation of Learning Trajectory-Based Assessments for Computational Thinking in Upper Elementary Grades. Computer Science Education, 31(2), 141–168. https://doi.org/10.1080/08993408.2021.1874221

Grover, S., & Pea, R. (2018). Computational Thinking: A Competency Whose Time Has Come. In S. Sentance, E. Barendsen, & C. Schulte (Eds.), Computer Science Education: Perspectives on Teaching and Learning in School. Bloomsbury Academic. https://doi.org/10.5040/9781350057142

Guillod, J. (2024). Python Programming for Mathematics (1st ed.). Chapman and Hall/CRC. https://doi.org/10.1201/9781003565451

Hsiao, T.-C., Chuang, Y.-H., Chang, C.-Y., Chen, T.-L., Zhang, H.-B., & Chang, J.-C. (2023). Combining Building Block Process with Computational Thinking Improves Learning Outcomes of Python Programming with Peer Assessment. Sage Open, 13(4). https://doi.org/10.1177/21582440231217715

Ilic, U., Haseski, H. I., & Tugtekin, U. (2018). Publication Trends Over 10 Years of Computational Thinking Research. Contemporary Educational Technology, 9(2), 131–153. https://doi.org/10.30935/cet.414798

Irawan, E. (2024). Keterampilan Computational Thinking Mahasiswa Melalui Penerapan Desain Didaktis Dengan Memanfaatkan Perangkat Lunak-R pada Mata Kuliah Statistika [PhD Thesis, Universitas Pendidikan Indonesia]. https://repository.upi.edu/

Irawan, E., & Herman, T. (2023). Trends in Research on Interconnection of Mathematics and Computational Thinking. AIP Conference Proceedings, 2805, 1–9. https://doi.org/10.1063/5.0148018

Irawan, E., Rosjanuardi, R., & Prabawanto, S. (2024a). Promoting Computational Thinking Through Programming Trends, Tools, and Educational Approaches: A Systematic Review. Jurnal Teori Dan Aplikasi Matematika, 8(4), 1327–1348. https://doi.org/10.31764/jtam.v8i4.26407

Irawan, E., Rosjanuardi, R., & Prabawanto, S. (2024b). Research Trends of Computational Thinking in Mathematics Learning: A Bibliometric Analysis from 2009 to 2023. Eurasia Journal of Mathematics, Science and Technology Education, 20(3), 1–16. https://doi.org/10.29333/ejmste/14343

Jansen, P. (2025). TIOBE Index. Tiobe. https://www.tiobe.com/tiobe-index/

Jesús, S. de, & Martinez, D. (2023). Applied Computational Thinking with Python: Algorithm Design for Complex Real-World Problems (Second edition). Packt Publishing Ltd.

Kamak, L. P., & Mago, V. (2023). Assessing the Impact of Using Python to Teach Computational Thinking for Remote Schools in a Blended Learning Environment. In P. Zaphiris & A. Ioannou (Eds.), Learning and Collaboration Technologies (pp. 482–500). Springer Nature Switzerland. https://doi.org/10.1007/978-3-031-34550-0_35

Kim, J., Kim, M., Yu, H., Kim, Y., & Kim, J. (2019). Effect of Data Visualization Education with Using Python on Computational Thinking of Six Grade in Elementary School. Journal of The Korean Association of Information Education, 23(3), 197–206.

Kong, S.-C., Lai, M., & Sun, D. (2020). Teacher Development in Computational Thinking: Design and Learning Outcomes of Programming Concepts, Practices and Pedagogy. Computers & Education, 151, 103872. https://doi.org/10.1016/j.compedu.2020.103872

Kuroki, M. (2021). Using Python and Google Colab to Teach Undergraduate Microeconomic Theory. International Review of Economics Education, 38, 100225. https://doi.org/10.1016/j.iree.2021.100225

Kuswardi, Y., Nurhasanah, F., Firdaus, N. U. A., Usodo, B., Chrisnawati, H. E., Sutopo, S., & Shahrill, M. (2024). A Learning Trajectory for Statistics Through the Traditional Game of Congklak to Enhance Mathematical Reasoning Skills. International Journal of Pedagogy and Teacher Education, 8(1), Article 1. https://doi.org/10.20961/ijpte.v8i1.90547

Lin, X., Ma, Y., Ma, W., Liu, Y., & Tang, W. (2021). Using Peer Code Review to Improve Computational Thinking in a Blended Learning Environment: A Randomized Control Trial. Computer Applications in Engineering Education, 29(6), 1825–1835. https://doi.org/10.1002/cae.22425

Liu, D., Feng, Y., Yan, Y., & Xu, B. (2023). Towards Understanding Bugs in Python Interpreters. Empirical Software Engineering, 28(1), 19. https://doi.org/10.1007/s10664-022-10239-x

Llerena-Izquierdo, J., Mendez-Reyes, J., Ayala-Carabajo, R., & Andrade-Martinez, C. (2024). Innovations in Introductory Programming Education: The Role of AI with Google Colab and Gemini. Education Sciences, 14(12), 1330. https://doi.org/10.3390/educsci14121330

Naik, P. G., Naik, G. R., & Patil, M. B. (2021). Conceptualizing Python in Google Colab. Shashwat Publication.

Palts, T., & Pedaste, M. (2020). A Model for Developing Computational Thinking Skills. Informatics in Education, 19(1), 113–128. https://doi.org/10.15388/infedu.2020.06

Papert, S. (1980). Mindstorms: Children, Computers, and Powerful Ideas. Basic Books.

Papert, S. (1996). An Exploration in the Space of Mathematics Educations. International Journal of Computers for Mathematical Learning, 1(1). https://doi.org/10.1007/BF00191473

Rais, D., & Xuezhi, Z. (2024). Elevating Student Engagement and Academic Performance: A Quantitative Analysis of Python Programming Integration in the" Merdeka Belajar" Curriculum. Journal on Mathematics Education, 15(2), 495–516.

Ren, H., Yang, L., Jiang, L., Bai, Y., Lu, W., & Chang, J. (2021). A Computational-Thinking-Oriented Progressive Teaching Mode for Python Course. 2021 IEEE 3rd International Conference on Computer Science and Educational Informatization (CSEI), 81–84. https://doi.org/10.1109/CSEI51395.2021.9477642

Rianasari, V. F., & Guzon, A. F. H. (2024). Designing Learning Trajectory to Support Preservice Mathematics Teachers’ Skills in Creating and Implementing Realistic Mathematics Tasks. Journal on Mathematics Education, 15(3), 701–716. https://doi.org/10.22342/jme.v15i3.pp701-716

Rich, K. M., Franklin, D., Strickland, C., Isaacs, A., & Eatinger, D. (2022). A Learning Trajectory for Variables Based in Computational Thinking Literature: Using Levels of Thinking to Develop Instruction. Computer Science Education, 32(2), 213–234. https://doi.org/10.1080/08993408.2020.1866938

Rich, K. M., Strickland, C., Binkowski, T. A., Moran, C., & Franklin, D. (2017). K-8 Learning Trajectories Derived from Research Literature: Sequence, Repetition, Conditionals. Proceedings of the 2017 ACM Conference on International Computing Education Research, 182–190. https://doi.org/10.1145/3105726.3106166

Román-González, M., Moreno-León, J., & Robles, G. (2019). Combining Assessment Tools for a Comprehensive Evaluation of Computational Thinking Interventions. In S.-C. Kong & H. Abelson (Eds.), Computational Thinking Education (pp. 79–98). Springer Singapore. https://doi.org/10.1007/978-981-13-6528-7_6

Saha, A. (2015). Doing Math with Python: Use Programming to Explore Algebra, Statistics, Calculus, and More! No Starch Press.

Shute, V. J., Sun, C., & Asbell-Clarke, J. (2017). Demystifying computational thinking. Educational Research Review, 22, 142–158. https://doi.org/10.1016/j.edurev.2017.09.003

Simon, M. A. (1995). Reconstructing Mathematics Pedagogy from a Constructivist Perspective. Journal for Research in Mathematics Education, 26(2), 114–145. https://doi.org/10.5951/jresematheduc.26.2.0114

Simon, M. A. (2020). Hypothetical Learning Trajectories in Mathematics Education. In S. Lerman (Ed.), Encyclopedia of Mathematics Education. Springer International Publishing. https://doi.org/10.1007/978-3-030-15789-0

Simon, M. A., Kara, M., Placa, N., & Avitzur, A. (2018). Towards an Integrated Theory of Mathematics Conceptual Learning and Instructional Design: The Learning Through Activity Theoretical Framework. The Journal of Mathematical Behavior, 52, 95–112. https://doi.org/10.1016/j.jmathb.2018.04.002

Simon, M. A., Placa, N., Kara, M., & Avitzur, A. (2018). Empirically-Based Hypothetical Learning Trajectories for Fraction Concepts: Products of the Learning Through Activity Research Program. The Journal of Mathematical Behavior, 52, 188–200. https://doi.org/10.1016/j.jmathb.2018.03.003

Simon, M. A., & Tzur, R. (2004). Explicating the Role of Mathematical Tasks in Conceptual Learning: An Elaboration of the Hypothetical Learning Trajectory. Mathematical Thinking and Learning, 6(2), 91–104. https://doi.org/10.1207/s15327833mtl0602_2

Strickroth, S. (2024). Scalable Feedback for Student Live Coding in Large Courses Using Automatic Error Grouping. Proceedings of the 2024 on Innovation and Technology in Computer Science Education V. 1, 499–505. https://doi.org/10.1145/3649217.3653620

Sun, L., & Zhou, L. (2023). Does Text-Based Programming Improve K-12 Students’ Ct Skills? Evidence from a Meta-Analysis and Synthesis of Qualitative Data in Educational Contexts. Thinking Skills and Creativity, 49, 101340.

Suryadi, D. (2013). Didactical Design Research (DDR) to Improve the Teaching of Mathematics. Far East Journal of Mathematical Education, 10(1), 91–107.

Suryadi, D. (2019). Penelitian Desain Didaktis (DDR) dan Implementasinya. Gapura Press.

Tang, X., Yin, Y., Lin, Q., Hadad, R., & Zhai, X. (2020). Assessing Computational Thinking: A Systematic Review of Empirical Studies. Computers & Education, 148(1), 1–22. https://doi.org/10.1016/j.compedu.2019.103798

Tekdal, M. (2021). Trends and Development in Research on Computational Thinking. Education and Information Technologies, 26(5), 6499–6529. https://doi.org/10.1007/s10639-021-10617-w

Vallejo, W., Díaz-Uribe, C., & Fajardo, C. (2022). Google Colab and Virtual Simulations: Practical E-Learning Tools to Support the Teaching of Thermodynamics and to Introduce Coding to Students. ACS Omega, 7(8), 7421–7429. https://doi.org/10.1021/acsomega.2c00362

Wei, X., Lin, L., Meng, N., Tan, W., Kong, S.-C., & Kinshuk. (2021). The Effectiveness of Partial Pair Programming on Elementary School Students’ Computational Thinking Skills and Self-Efficacy. Computers & Education, 160(104023), 1–65. https://doi.org/10.1016/j.compedu.2020.104023

Weintrop, D., Beheshti, E., Horn, M., Orton, K., Jona, K., Trouille, L., & Wilensky, U. (2015). Defining Computational Thinking for Mathematics and Science Classrooms. Journal of Science Education and Technology, 25(1), 127–147. https://doi.org/10.1007/s10956-015-9581-5

Wing, J. M. (2006). Computational Thinking. Communications of the ACM, 49(3), 33–35. https://doi.org/10.1145/1118178.1118215

Wing, J. M. (2011). Research Notebook: Computational Thinking—What and Why? Thelink, 1–8.

Wing, J. M. (2017). Computational Thinking’s Influence on Research and Education for All. Italian Journal of Educational Technology, 25(2), 7–14. https://doi.org/10.17471/2499-4324/922

Yang, S., Baird, M., O’Rourke, E., Brennan, K., & Schneider, B. (2024). Decoding Debugging Instruction: A Systematic Literature Review of Debugging Interventions. ACM Transactions on Computing Education, 24(4), 1–44. https://doi.org/10.1145/3690652

Ye, H., Liang, B., Ng, O.-L., & Chai, C. S. (2023). Integration of Computational Thinking in K-12 Mathematics Education: A Systematic Review on CT-Based Mathematics Instruction and Student Learning. International Journal of STEM Education, 10(3), 1–26. https://doi.org/10.1186/s40594-023-00396-w

Zhuang, Y. Y., Kao, C.-W., & Yen, W.-H. (2025). A Static Analysis Approach for Detecting Array Shape Errors in Python. Journal of Information Science & Engineering, 41(1). https://doi.org/10.6688/JISE.202501_41(1).0006

Downloads

Published

2025-06-15

How to Cite

Irawan, E., Huda, M. K., & Purwasih, R. (2025). A learning trajectory for developing computational thinking in prospective mathematics teachers through Python programming in Google Colab. Alifmatika: Jurnal Pendidikan Dan Pembelajaran Matematika, 7(1), 34–52. https://doi.org/10.35316/alifmatika.2025.v7i1.34-52