Abstract
In this study, we investigated the debugging process that early childhood preservice teachers used during block-based programing. Its purpose was to provide insights into how to prepare early childhood teachers to integrate computer science into instruction. This study reports the types of errors that early childhood preservice teachers commonly made and how they debugged the errors. Findings are discussed in relation to research and practice that could benefit from debugging instruction. This study provides directions for future computer science education research that aims to prepare teachers for programming, computational thinking, and STEM education. Though this study used robotics as a programming context, findings on early childhood preservice teachers’ debugging processes could be applicable to other contexts involving block-based programming.
Similar content being viewed by others
References
Ahmadzadeh, M., Elliman, D., & Higgins, C. (2005). An analysis of patterns of debugging among novice computer science students. In Proceedings of the 10th annual SIGCSE conference on innovation and technology in computer science education (pp. 84–88). New York: ACM. https://doi.org/10.1145/1067445.1067472.
Ahmadzadeh, M., Elliman, D., & Higgins, C. (2007). The impact of improving debugging skill on programming ability. Innovation in Teaching and Learning in Information and Computer Sciences, 6(4), 72–87. https://doi.org/10.11120/ital.2007.06040072.
Akcaoglu, M. (2014). Learning problem-solving through making games at the game design and learning summer program. Educational Technology Research and Development, 62(5), 583–600. https://doi.org/10.1007/s11423-014-9347-4.
Araki, K., Furukawa, Z., & Cheng, J. (1991). A general framework for debugging. IEEE Software, 8(3), 14–20. https://doi.org/10.1109/52.88939.
Belland, B. R. (2014). Scaffolding: Definition, current debates, and future directions. In J. M. Spector, M. D. Merrill, J. Elen, & M. J. Bishop (Eds.), Handbook of research on educational communications and technology (pp. 505–518). New York: Springer. http://link.springer.com/chapter/10.1007/978-1-4614-3185-5_39.
Belland, B. R. (2017). Instructional scaffolding in STEM education: Strategies and efficacy evidence. http://www.springer.com/us/book/9783319025643.
Bers, M. U. (2010). The tangibleK robotics program: Applied computational thinking for young children. Early Childhood Research and Practice, 12(2), n2.
Bers, M. U., Flannery, L., Kazakoff, E. R., & Sullivan, A. (2014). Computational thinking and tinkering: Exploration of an early childhood robotics curriculum. Computers and Education, 72, 145–157. https://doi.org/10.1016/j.compedu.2013.10.020.
Bers, M. U., Seddighin, S., & Sullivan, A. (2013). Ready for robotics: Bringing together the T and E of STEM in early childhood teacher education. Journal of Technology and Teacher Education, 21(3), 355.
Bjork, E. L., & Bjork, R. A. (2011). Making things hard on yourself, but in a good way: Creating desirable difficulties to enhance learning. In M. A. Gernsbacher, R. W. Pew, L. M. Hough, & J. R. Pomerantz (Eds.), Psychology and the real world: Essays illustrating fundamental contributions to society (pp. 56–64). New York: Worth Publishers.
Brennan, K., & Resnick, M. (2012). Using artifact-based interviews to study the development of computational thinking in interactive media design. In Presented at the American Educational Research Association annual meeting, Vancouver, BC, Canada.
Carver, S. M., & Risinger, S. C. (1987). Improving children’s debugging skills. In G. M. Olson, S. Sheppard, & E. Soloway (Eds.), Empirical studies of programmers: Second workshop (pp. 147–171). Westport, CT: Ablex Publishing.
Chiu, C.-F., & Huang, H.-Y. (2015). Guided debugging practices of game based programming for novice programmers. International Journal of Information and Education Technology, 5(5), 343–347. https://doi.org/10.7763/IJIET.2015.V5.527.
Chmiel, R., & Loui, M. C. (2004). Debugging: From novice to expert. SIGCSE Bulletin, 36, 17–21.
Committee for the Workshops on Computational Thinking, and National Research Council. (2010). Report of a workshop on the scope and nature of computational thinking. https://doi.org/10.17226/12840.
Fitzgerald, S., Lewandowski, G., McCauley, R., Murphy, L., Simon, B., Thomas, L., et al. (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.
Fitzgerald, S., McCauley, R., Hanks, B., Murphy, L., Simon, B., & Zander, C. (2010). Debugging from the student perspective. IEEE Transactions on Education, 53(3), 390–396. https://doi.org/10.1109/TE.2009.2025266.
Gould, J. D. (1975). Some psychological evidence on how people debug computer programs. International Journal of Man–Machine Studies, 7(2), 151–182. https://doi.org/10.1016/S0020-7373(75)80005-8.
Greiff, S., Wüstenberg, S., Csapó, B., Demetriou, A., Hautamäki, J., Graesser, A. C., et al. (2014). Domain-general problem solving skills and education in the 21st century. Educational Research Review, 13, 74–83. https://doi.org/10.1016/j.edurev.2014.10.002.
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. https://doi.org/10.1080/08993408.2015.1033142.
Gugerty, L., & Olson, G. (1986). Debugging by skilled and novice programmers. In Proceedings of the SIGCHI conference on human factors in computing systems (pp. 171–174). New York: ACM. https://doi.org/10.1145/22627.22367.
Hiebert, J., & Grouws, D. A. (2007). The effects of classroom mathematics teaching on students’ learning. In F. K. Lester (Ed.), Second handbook of research on mathematics teaching and learning (pp. 371–404). Charlotte, NC: Information Age Publishing.
Jadud, M. C. (2005). A first look at novice compilation behaviour using BlueJ. Computer Science Education, 15(1), 25–40. https://doi.org/10.1080/08993400500056530.
Jadud, M. C. (2006). Methods and tools for exploring novice compilation behaviour. In Proceedings of the second international workshop on computing education research (pp. 73–84). New York: ACM. https://doi.org/10.1145/1151588.1151600.
Jonassen, D. H. (2000). Toward a design theory of problem solving. Educational Technology Research and Development, 48(4), 63–85. https://doi.org/10.1007/BF02300500.
Jonassen, D. H. (2011). Learning to solve problems: A handbook for designing problem-solving learning environments. New York: Routledge.
K12 Computer Science Framework Steering Committee. (2016). K-12 computer science framework. http://www.k12cs.org.
Kapur, M. (2010). Productive failure in mathematical problem solving. Instructional Science, 38(6), 523–550. https://doi.org/10.1007/s11251-009-9093-x.
Kapur, M. (2011). A further study of productive failure in mathematical problem solving: Unpacking the design components. Instructional Science, 39(4), 561–579.
Kapur, M. (2014a). Comparing learning from productive failure and vicarious failure. Journal of the Learning Sciences, 23(4), 651–677. https://doi.org/10.1080/10508406.2013.819000.
Kapur, M. (2014b). Productive failure in learning math. Cognitive Science, 38(5), 1008–1022. https://doi.org/10.1111/cogs.12107.
Katz, I. R., & Anderson, J. R. (1987). Debugging: An analysis of bug-location strategies. Human–Computer Interaction, 3(4), 351.
Kazakoff, E., & Bers, M. (2012). Programming in a robotics context in the kindergarten classroom: The impact on sequencing skills. Journal of Educational Multimedia and Hypermedia, 21(4), 371–391.
Kim, C., Kim, D., Yuan, J., Hill, R. B., Doshi, P., & Thai, C. N. (2015). Robotics to promote elementary education pre-service teachers’ STEM engagement, learning, and teaching. Computers & Education, 91, 14–31. https://doi.org/10.1016/j.compedu.2015.08.005.
Kim, C., Yuan, J., Oh, J., Shin, M., & Hill, R. B. (2016). Productive struggle during inquiry learning. Paper presented at the European Association for Research on Learning & Instruction (EARLI) SIG 20 & SIG 26 Meetings, Ghent, Belgium.
Kim, C., Yuan, J., Vasconcelos, L., Shin, M., & Hill, R. B. (2017). Prospective elementary teachers’ debugging during block-based visual programming. Paper presented at the American Educational Research Association (AERA) Annual Meeting, San Antonio, TX, USA.
Klahr, D., & Carver, S. M. (1988). Cognitive objectives in a LOGO debugging curriculum: Instruction, learning, and transfer. Cognitive Psychology, 20(3), 362–404. https://doi.org/10.1016/0010-0285(88)90004-7.
Lee, M. J., Bahmani, F., Kwan, I., LaFerte, J., Charters, P., Horvath, A.,…Ko, A. J. (2014). Principles of a debugging-first puzzle game for computing education. In 2014 IEEE symposium on visual languages and human-centric computing (VL/HCC), Melbourne, Australia (pp. 57–64). https://doi.org/10.1109/VLHCC.2014.6883023.
Lee, M. J., & Ko, A. J. (2015). Comparing the effectiveness of online learning approaches on CS1 learning outcomes. In Proceedings of the eleventh annual international conference on international computing education research (pp. 237–246). New York: ACM. https://doi.org/10.1145/2787622.2787709.
Leedy, P. D., & Ormrod, J. E. (2013). Practical research: Planning and design (p. c2013). Boston: Pearson.
Lin, Y.-T., Wu, C.-C., Hou, T.-Y., Lin, Y.-C., Yang, F.-Y., & Chang, C.-H. (2016). Tracking students’ cognitive processes during program debugging: An eye-movement approach. IEEE Transactions on Education, 59(3), 175–186.
Liu, Z., Zhi, R., Hicks, A., & Barnes, T. (2017). Understanding problem solving behavior of 6–8 graders in a debugging game. Computer Science Education. https://doi.org/10.1080/08993408.2017.1308651.
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. https://doi.org/10.1016/j.chb.2014.09.012.
McCauley, R., Fitzgerald, S., Lewandowski, G., Murphy, L., Simon, B., Thomas, L., et al. (2008). Debugging: A review of the literature from an educational perspective. Computer Science Education, 18(2), 67–92.
Perkins, D. N., Farady, M., Hancock, C., Hobbs, R., Simmons, R., Tuck, T., & Villa, E. (1986). Nontrivial pursuit: The hidden complexity of elementary LOGO programming. Reports: Research/Technical No. ETC-TR86-7. Cambridge, MA: Educational Technology Center.
Perkins, D. N., & Martin, F. (1985). Fragile knowledge and neglected strategies in novice programmers. IR85-22. http://eric.ed.gov/?id=ED295618.
Perkins, D. N., & Martin, F. (1986). Fragile knowledge and neglected strategies in novice programmers. In Papers presented at the first workshop on empirical studies of programmers (pp. 213–229). Norwood, NJ: Ablex Publishing Corp. http://dl.acm.org/citation.cfm?id=21842.28896.
Reiser, B. (2004). Scaffolding complex learning: The mechanisms of structuring and problematizing student work. Journal of the Learning Sciences, 13, 273–304. https://doi.org/10.1207/s15327809jls1303_2.
Schön, D. A. (1983). The reflective practitioner: How professionals think in action. New York: Basic Books.
Schunn, C. D., & Trafton, J. G. (2013). The psychology of uncertainty in scientific data analysis. In G. J. Feist & M. E. Gorman (Eds.), Handbook of the psychology of science (pp. 461–483). New York: Springer.
Silk, E. M., Higashi, R., Shoop, R., & Schunn, C. D. (2009). Designing technology activities that teach mathematics. The Technology Teacher, 69(4), 21–27.
Simon, B., Bouvier, D., Chen, Tzu.-Yi., Lewandowski, G., McCartney, R., & Sanders, K. (2008). Common sense computing (episode 4): Debugging. Computer Science Education, 18(2), 117–133. https://doi.org/10.1080/08993400802114698.
Tsau, S. R. (1996). College students’ diagnostic capabilities in computer programming. The University of Wisconsin-Madison.
VanLehn, K., Siler, S., Murray, C., Yamauchi, T., & Baggett, W. B. (2003). Why do only some events cause learning during human tutoring? Cognition and Instruction, 21(3), 209–249. https://doi.org/10.1207/S1532690XCI2103_01.
Vessey, I. (1985). Expertise in debugging computer systems: A process analysis. International Journal of Man–Machine Studies, 23(5), 459–494. https://doi.org/10.1016/S0020-7373(85)80054-7.
Warshauer, H. K. (2015). Strategies to support productive struggle. Mathematics Teaching in the Middle School, 20(7), 390–393.
Wood, D., Bruner, J., & Ross, G. (1976). The role of tutoring in problem solving. Journal of Child Psychology and Psychiatry, 17, 89–100. https://doi.org/10.1111/j.1469-7610.1976.tb00381.x.
Yadav, A., Gretter, S., Hambrusch, S., & Sands, P. (2016). Expanding computer science education in schools: Understanding teacher experiences and challenges. Computer Science Education, 26(4), 235–254. https://doi.org/10.1080/08993408.2016.1257418.
Yen, C.-Z., Wu, P.-H., & Lin, C.-F. (2012). Analysis of experts’ and novices’ thinking process in program debugging. Communications in Computer and Information Science, 302, 122–134.
Yoon, B.-D., & Garcia, O. N. (1998). Cognitive activities and support in debugging. In Proceedings of the fourth annual symposium on human interaction with complex systems (pp. 160–169). https://doi.org/10.1109/HUICS.1998.659974.
Acknowledgements
This research was supported by the National Science Foundation (NSF) under grant 1712286, and internal grants from the University of Georgia (UGA). But any findings, conclusions, or recommendations are those of the author and do not necessarily represent official positions of NSF or UGA.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Kim, C., Yuan, J., Vasconcelos, L. et al. Debugging during block-based programming. Instr Sci 46, 767–787 (2018). https://doi.org/10.1007/s11251-018-9453-5
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11251-018-9453-5