Computational concepts reflected on Scratch programs


  • Kyungbin Kwon Indiana University
  • Sang Joon Lee Mississippi State University
  • Jaehwa Chung Korea National Open University


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


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.


Download data is not yet available.


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. DOI:

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 DOI:

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 DOI:

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 DOI:

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

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. DOI:

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 DOI:

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. DOI:

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 DOI:

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 DOI:

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 DOI:

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 DOI:

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 DOI:

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. DOI:

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 DOI:

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 DOI:

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 DOI:

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 DOI:

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 DOI:

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

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

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 DOI:



How to Cite

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