Open Journal Systems

Computational concepts reflected on Scratch programs

Kyungbin Kwon, Sang Joon Lee, Jaehwa Chung


Evaluating the quality of students’ programs is necessary for better teaching and learning.  Although many innovative learning environments for computer science have been introduced, the scarcity of program evaluation frames and tools is a demanding issue in the teaching practice.  This study examined the quality of students’ Scratch programs by utilizing Dr. Scratch and by analyzing codes based on four computational concepts: conditions, loops, abstractions, and variables.  Twenty-three Scratch programs from two classes were examined.  Dr. Scratch results revealed that Scratch programs demonstrated a middle level of competency in computational thinking.  The analysis of computational concepts suggested that students had a sufficient understanding of the main concepts and demonstrated computing competency by applying the concepts into their programs.  The study also discussed inefficient programming habits, instructional issues utilizing Scratch, and the importance of problem decomposition skills.


Scratch; block-based programming; computer science education; novice programmer; computational thinking


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.

Arzarello, F., Chiappini, G. P., Lemut, E., Malara, N., & Pellerey, M. (1993). Learning Programming as a Cognitive Apprenticeship Through Conflicts. In E. Lemut, B. du Boulay, & G. Dettori (Eds.), Cognitive Models and Intelligent Environments for Learning Programming (pp. 284-298). Berlin, Heidelberg: Springer.

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

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. doi:10.3102/0034654317710096

Chao, P.-Y. (2016). Exploring students' computational practice, design and performance of problem-solving through a visual programming environment. Computers & Education, 95, 202-215. doi:10.1016/j.compedu.2016.01.010

Cooper, S., & Cunningham, S. (2010). Teaching computer science in context. ACM Inroads, 1(1), 5-8. doi:10.1145/1721933.1721934

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.

Grover, S., Pea, R., & Cooper, S. (2015). Designing for deeper learning in a blended computer science course for middle school students. Computer Science Education, 25(2), 199-237. doi:10.1080/08993408.2015.1033142

Kohn, T. (2017a). Variable Evaluation: an Exploration of Novice Programmers' Understanding and Common Misconceptions. Paper presented at the ACM SIGCSE Technical Symposium on Computer Science Education, Seattle, Washington, USA.

Kohn, T. (2017b). Variable Evaluation: an Exploration of Novice Programmers' Understanding and Common Misconceptions. Paper presented at the Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education, Seattle, Washington, USA.

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

Lahtinen, E., Ala-Mutka, K., & Järvinen, H.-M. (2005). A study of the difficulties of novice programmers. ACM SIGCSE Bulletin, 37(3), 14-18. doi:10.1145/1151954.1067453

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

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

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, J., & Robles, G. (2014, 22-25 Oct. 2014). Automatic detection of bad programming habits in scratch: A preliminary study. Paper presented at the 2014 IEEE Frontiers in Education Conference (FIE) Proceedings.

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.

Resnick, M., Maloney, J., Monroy-Hernandez, A., Rusk, N., Eastmond, E., Brennan, K., . . . Kafai, Y. (2009). Scratch: programming for all. Communications of the ACM, 52(11), 60-67. doi:10.1145/1592761.1592779

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

Samurcay, R. (1989). The concept of variable in programming: Its meaning and use in problem-solving by novice programmers. In E. Soloway & J. C. Spohrer (Eds.), Studying the novice programmer (pp. 161-178). Hillsdale, NJ: Lawrence Erlbaum.

Shi, N., Cui, W., Zhang, P., & Sun, X. (2018). Evaluating the Effectiveness Roles of Variables in the Novice Programmers Learning. Journal of Educational Computing Research, 56(2), 181-201. doi:10.1177/0735633117707312

Su, A. Y. S., Yang, S. J. H., Hwang, W., Huang, C. S. J., & Tern, M. (2014). Investigating the role of computer-supported annotation in problem-solving-based teaching: An empirical study of a Scratch programming pedagogy. British Journal of Educational Technology, 45(4), 647-665. doi:10.1111/bjet.12058

Topalli, D., & Cagiltay, N. E. (2018). Improving programming skills in engineering education through problem-based game projects with Scratch. Computers & Education, 120, 64-74. doi:10.1016/j.compedu.2018.01.011

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

Winslow, L. E. (1996). Programming pedagogy - a psychological overview. ACM SIGCSE Bulletin, 28(3), 17-22. doi:10.1145/234867.234872

Yadav, A., Hong, H., & Stephenson, C. (2016). Computational Thinking for All: Pedagogical Approaches to Embedding 21st Century Problem Solving in K-12 Classrooms. TechTrends, 60(6), 565-568. doi:10.1007/s11528-016-0087-7

Full Text: PDF

DOI: 10.21585/ijcses.v2i3.33


  • There are currently no refbacks.

Copyright (c) 2018 Kyungbin Kwon, Sang Joon Lee, Jaehwa Chung