Open Journal Systems

Exploring problem decomposition and program development through block-based programs

Kyungbin Kwon, Jongpil Cheon


Although teachers need to assess computational thinking (CT) for computer science education in K-12, it is not easy for them to evaluate students’ programs based on the perspective. The purpose of this study was to investigate students’ CT skills reflected in their Scratch programs. The context of the study was a middle school coding club where seven students voluntarily participated in a five-week coding activity. A total of eleven Scratch programs were analyzed in two aspects: problem decomposition and program development. Results revealed that students demonstrated proper decompositions of problems, which supported program development processes. However, in some cases, students failed to decompose necessary parts as their projects got sophisticated, which resulted in the failure or errors of programs. Regarding program development, algorythmic thinking had been identified as the area to be improved. Debugging and evaluation of programs were the necessary process students needed to practice. Implications for teaching CT skills were discussed.


Computational Thinking; Scratch; Decomposition; Computer Science Education; Block-Based Programming


Aivaloglou, E., & Hermans, F. (2016). How Kids Code and How We Know: An Exploratory Study on the Scratch Repository. Paper presented at the Proceedings of the 2016 ACM Conference on International Computing Education Research, Melbourne, VIC, Australia.

Angeli, C., Voogt, J., Fluck, A., Webb, M., Cox, M., Malyn-Smith, J., & Zagami, J. (2016). A K-6 Computational Thinking Curriculum Framework: Implications for Teacher Knowledge. Journal of Educational Technology & Society, 19(3), 47-57.

Barr, D., Harrison, J., & Conery, L. (2011). Computational Thinking: A Digital Age Skill for Everyone. Learning & Leading with Technology, 38(6), 20-23. doi:citeulike-article-id:10297515

Barr, V., & Stephenson, C. (2011). Bringing computational thinking to K-12: what is Involved and what is the role of the computer science education community? ACM Inroads, 2(1), 48-54. doi:10.1145/1929887.1929905

Bau, D., Gray, J., Kelleher, C., Sheldon, J., & Turbak, F. (2017). Learnable programming: blocks and beyond. Communications of the ACM, 60(6), 72-80. doi:10.1145/3015455

Brennan, K., & Resnick, M. (2012). New frameworks for studying and assessing the development of computational thinking. Paper presented at the Proceedings of the 2012 annual meeting of the American Educational Research Association, Vancouver, Canada.

Buss, A., & Gamboa, R. (2017). Teacher Transformations in Developing Computational Thinking: Gaming and Robotics Use in After-School Settings. In P. J. Rich & C. B. Hodges (Eds.), Emerging Research, Practice, and Policy on Computational Thinking (pp. 189-203). Cham: Springer International Publishing.

CSTA, & ISTE. (2011). Operational definition of computational thinking for Ke12 education. Retrieved from

Davies, S. P. (1993). Models and theories of programming strategy. International Journal of Man-Machine Studies, 39(2), 237-267. doi:10.1006/imms.1993.1061

Google, & Gallup. (2015). Searching for Computer Science: Access and Barriers in U.S. K-12 Education. Retrieved from

Grover, S., & Basu, S. (2017). Measuring Student Learning in Introductory Block-Based Programming: Examining Misconceptions of Loops, Variables, and Boolean Logic. Paper presented at the Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education, Seattle, Washington, USA.

Kazimoglu, C., Kiernan, M., Bacon, L., & MacKinnon, L. (2012). Learning Programming at the Computational Thinking Level via Digital Game-Play. Procedia Computer Science, 9, 522-531. doi:10.1016/j.procs.2012.04.056

Kim, B., Kim, T., & Kim, J. (2013). Paper-and-Pencil Programming Strategy toward Computational Thinking for Non-Majors: Design Your Solution. Journal of Educational Computing Research, 49(4), 437-459. doi:10.2190/EC.49.4.b

Kwon, K. (2017). Novice programmer's misconception of programming reflected on problem-solving plans. International Journal of Computer Science Education in Schools, 1(4), 14-24. doi:10.21585/ijcses.v1i4.19

Kwon, K., Lee, S. J., & Chung, J. (2018). Computational concepts reflected on Scratch programs. International Journal of Computer Science Education in Schools, 2(3). doi:10.21585/ijcses.v2i3.33

Lee, Y. (2010). Developing computer programming concepts and skills via technology-enriched language-art projects: A case study. Journal of Educational Multimedia and Hypermedia, 19(3), 307-326.

Liu, C.-C., Cheng, Y.-B., & Huang, C.-W. (2011). The effect of simulation games on the learning of computational problem solving. Computers & Education, 57(3), 1907-1918. doi:10.1016/j.compedu.2011.04.002

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. doi:10.1016/j.chb.2014.09.012

Maloney, J., Resnick, M., Rusk, N., Silverman, B., & Eastmond, E. (2010). The Scratch Programming Language and Environment. ACM Transactions on Computing Education, 10(4), 1-15. doi:10.1145/1868358.1868363

Mayer, R. E. (1981). The Psychology of How Novices Learn Computer Programming. ACM Computing Surveys, 13(1), 121-141. doi:10.1145/356835.356841

Meerbaum-Salant, O., Armoni, M., & Ben-Ari, M. (2013). Learning computer science concepts with Scratch. Computer Science Education, 23(3), 239-264. doi:10.1080/08993408.2013.832022

Moreno-León, J., Robles, G., & Román-González, M. (2015). Dr. Scratch: Automatic analysis of scratch projects to assess and foster computational thinking. RED. Revista de Educación a Distancia(46), 1-23.

Pea, R. D. (1986). Language-independent conceptual" bugs" in novice programming. Journal of Educational Computing Research, 2(1), 25-36. doi:10.2190/689T-1R2A-X4W4-29J2

Reigeluth, C. M. (1999). The elaboration theory: Guidance for scope and sequence decisions. In C. M. Reigeluth (Ed.), Instructional design theories and models: A new paradigm of instructional theory (Vol. 2, pp. 425-453). Hillsdale, NJ: Lawrence Erlbaum Associates.

Robertson, J. (2011). The educational affordances of blogs for self-directed learning. Computers & Education, 57(2), 1628-1644. doi:10.1016/j.compedu.2011.03.003

Robins, A., Rountree, J., & Rountree, N. (2003). Learning and Teaching Programming: A Review and Discussion. Computer Science Education, 13(2), 137-172. doi:10.1076/csed.

Sáez-López, J.-M., Román-González, M., & Vázquez-Cano, E. (2016). Visual programming languages integrated across the curriculum in elementary school: A two year case study using “Scratch†in five schools. Computers & Education, 97, 129-141. doi:10.1016/j.compedu.2016.03.003

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

Smith, N., Sutcliffe, C., & Sandvik, L. (2014). Code Club: bringing programming to UK primary schools through Scratch. Paper presented at the 45th ACM Technical Symposium on Computer Science Education (SIGCSE 14), Atlanta, GA.

Wang, Y., Li, H., Feng, Y., Jiang, Y., & Liu, Y. (2012). Assessment of programming language learning based on peer code review model: Implementation and experience report. Computers & Education, 59(2), 412-422. doi:10.1016/j.compedu.2012.01.007

Wing, J. M. (2006). Computational thinking. Communications of the ACM, 49(3), 33-35. doi:10.1145/1118178.1118215

Full Text: PDF

DOI: 10.21585/ijcses.v3i1.54


  • There are currently no refbacks.

Copyright (c) 2019 Kyungbin Kwon, Jongpil Cheon