Using Technology to Support Teaching Computer Science: A Study with Middle School Students
Yizhou Qian 1  
More details
Hide details
College of Education, Purdue University, West Lafayette, USA
Publish date: 2018-08-12
EURASIA J. Math., Sci Tech. Ed 2018;14(12):em1610
Expansion of computer science education in K-12 schools is driving the need for quality computer science teachers. Effective computer science teachers need both knowledge of computer science and pedagogical content knowledge (PCK), which includes an understanding of student misconceptions. In this study, by integrating an automated assessment system, we identified common misconceptions of Chinese middle school students in an introductory programming course. We found that students’ limited English ability and existing math knowledge contributed to their misconceptions in learning to program. We also noted that Chinese students with better English ability made fewer programming mistakes. This finding differs from previous studies on English speakers that found that students’ English ability had negative impacts on the learning of programming commands. Our results suggest that computer science teachers should integrate appropriate technology into instruction to support identifying and addressing specific student misconceptions. We recommend that teacher training programs in computer science pay attention to developing teachers’ technological pedagogical content knowledge (TPACK), the knowledge for effective teaching with technology.
Alrwaished, N., Alkandari, A., & Alhashem, F. (2017). Exploring in- and pre-service science and mathematics teachers’ technology, pedagogy, and content knowledge (TPACK): What next? Eurasia Journal of Mathematics, Science and Technology Education, 13(9), 6113–6131.
Altadmri, A., & Brown, N. C. C. (2015). 37 million compilations: Investigating novice programming mistakes in large-scale student data. In Proceedings of the 46th ACM Technical Symposium on Computer Science Education (pp. 522–527). New York, New York, USA: ACM Press.
Becker, B. A. (2016). An effective approach to enhancing compiler error messages. In Proceedings of the 47th ACM Technical Symposium on Computing Science Education - SIGCSE ‘16 (pp. 126–131).
Bell, T., Andreae, P., & Robins, A. (2014). A case study of the introduction of computer science in NZ schools. ACM Transactions on Computing Education, 14(2), 1–31.
Bennedsen, J., & Caspersen, M. E. (2005). An investigation of potential success factors for an introductory model-driven programming course. In Proceedings of the 2005 international workshop on Computing education research - ICER ‘05 (pp. 155–163). New York, New York, USA: ACM Press.
Bonar, J., & Soloway, E. (1985). Preprogramming knowledge: A major source of misconceptions in novice programmers. Human-Computer Interaction, 1(2), 133–161.
Brown, N. C. C., & Altadmri, A. (2017). Novice java programming mistakes: Large-scale data vs. educator beliefs. ACM Transactions on Computing Education, 17(2), 7:1--7:21.
Brown, N. C. C., Sentance, S., Crick, T., & Humphreys, S. (2014). Restart: The resurgence of computer science in uk schools. ACM Transactions on Computing Education, 14(2), 1–22.
Bruckman, A., & Edwards, E. (1999). Should we leverage natural-language knowledge? An analysis of user errors in a natural-language-style programming language. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems- CHI ‘99 (pp. 207–214). New York, NY, USA.
Carlsen, W. (1999). Domains of teacher knowledge. In J. Gess-Newsome & N. G. Lederman (Eds.), Examining pedagogical content knowledge: The construct and its implications for science education (pp. 133–144). Kluwer Academic Publishers.
Clancy, M. (2004). Misconceptions and attitudes that interfere with learning to program. In S. Fincher & M. Petre (Eds.), Computer Science Education Research (pp. 85–100). London, UK: Taylor & Francis Group.
Clancy, M. J., & Linn, M. C. (1999). Patterns and pedagogy. ACM SIGCSE Bulletin, 31(1), 37–42.
De-La-Fuente-Valentín, L., Pardo, A., & Delgado Kloos, C. (2013). Addressing drop-out and sustained effort issues with large practical groups using an automated delivery and assessment system. Computers & Education, 61(1), 33–42.
Derksen, S., & Keselman, H. J. (1992). Backward, forward and stepwise automated subset selection algorithms: Frequency of obtaining authentic and noise variables. British Journal of Mathematical and Statistical Psychology, 45(2), 265–282.
Douce, C., Livingstone, D., & Orwell, J. (2005). Automatic test-based assessment of programming. Journal on Educational Resources in Computing, 5(3), 4:1-13.
Fisler, K., Krishnamurthi, S., & Siegmund, J. (2016). Modernizing plan-composition studies. In Proceedings of the 47th ACM Technical Symposium on Computing Science Education - SIGCSE ‘16 (pp. 211–216). New York, New York, USA: ACM Press.
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.
Gal-ezer, J., & Stephenson, C. (2014). A tale of two countries: Successes and challenges in K-12 computer science education in Israel and the United States. ACM Transactions on Computing Education, 14(2), 8:1-8:18.
Gerdes, A., Heeren, B., Jeuring, J., & van Binsbergen, L. T. (2017). Ask-Elle: An adaptable programming tutor for haskell giving automated feedback. International Journal of Artificial Intelligence in Education, 27(1), 65–100.
Gonzalez, M. J., & González-Ruiz, I. (2017). Behavioural intention and pre-service mathematics teachers’ technological pedagogical content knowledge. EURASIA Journal of Mathematics, Science and Technology Education, 13(3), 601–620.
Graham, C. R. (2011). Theoretical considerations for understanding technological pedagogical content knowledge (TPACK). Computers & Education, 57(3), 1953–1960.
Guo, P. J. (2013). Online python tutor: Embeddable web-based program visualization for CS education. SIGCSE 2013 - Proceedings of the 44th ACM Technical Symposium on Computer Science Education, 579–584.
Guzdial, M. (2015). Learner-centered design of computing education: Research on computing for everyone. Synthesis Lectures on Human-Centered Informatics, 8(6), 1–165. S00684ED1V01Y201511HCI033.
Guzdial, M. (2016). Bringing computer science to U.S. schools, state by state. Communications of the ACM, 59(5), 24–25.
Hill, H. C., Ball, D. L., & Schilling, S. G. (2008). Unpacking pedagogical content knowledge : Conceptualizing and measuring teachers’ topic-specific knowledge of students. Journal for Research in Mathematics Education, 39(4), 372–400.
Hubwieser, P., Magenheim, J., Mühling, A., & Ruf, A. (2013). Towards a conceptualization of pedagogical content knowledge for computer science. Proceedings of the Ninth Annual International ACM Conference on International Computing Education Research - ICER ‘13, 1–8.
Jang, S. J., & Chen, K. C. (2010). From PCK to TPACK: Developing a transformative model for pre-service science teachers. Journal of Science Education and Technology, 19(6), 553–564.
Jonassen, D. H. (1991). Objectivism versus constructivism: Do we need a new philosophical paradigm? Educational Technology Research and Development, 39(3), 5–14.
Koehler, M. J., & Mishra, P. (2009). What is Technological Pedagogical Content Knowledge (TPACK)? Contemporary Issues in Technology and Teacher Education, 9(1), 60–70.
Kolikant, Y. B.-D., & Mussai, M. (2008). “So my program doesn’t run!” Definition, origins, and practical expressions of students’ (mis)conceptions of correctness. Computer Science Education, 18(2), 135–151.
Lister, R., Simon, B., Thompson, E., Whalley, J. L., & Prasad, C. (2006). Not seeing the forest for the trees: novice programmers and the SOLO taxonomy. In Proceedings of the 11th annual SIGCSE conference on Innovation and technology in computer science education - ITICSE ‘06 (Vol. 38, pp. 118–122). New York, New York, USA: ACM Press.
Ma, L., Ferguson, J., Roper, M., & Wood, M. (2011). Investigating and improving the models of programming concepts held by novice programmers. Computer Science Education, 21(1), 57–80.
McCauley, R., Fitzgerald, S., Lewandowski, G., Murphy, L., Simon, B., Thomas, L., & Zander, C. (2008). Debugging: a review of the literature from an educational perspective. Computer Science Education, 18(2), 67–92.
Miller, C. S. (2014). Metonymy and reference-point errors in novice programming. Computer Science Education, 24(2–3), 123–152.
Mishra, P., & Koehler, M. J. (2006). Technological pedagogical content knowledge: A framework for teacher knowledge. Teachers College Record.
Qian, Y., & Lehman, J. (2017). Students’ misconceptions and other difficulties in introductory programming: A literature review. ACM Transactions on Computing Education, 18(1), 1:1-1:24.
Qian, Y., & Lehman, J. D. (2016). Correlates of success in introductory programming: A study with middle school students. Journal of Education and Learning, 5(2), 73–83.
Ragonis, N., & Ben-Ari, M. (2005). A long-term investigation of the comprehension of OOP concepts by novices. Computer Science Education, 15(3), 203–221.
Rivers, K., & Koedinger, K. R. (2017). Data-driven hint generation in vast solution spaces: A self-improving Python programming tutor. International Journal of Artificial Intelligence in Education, 27(1), 37–64.
Sadler, P. M., Sonnert, G., Coyle, H. P., Cook-Smith, N., & Miller, J. L. (2013). The influence of teachers’ knowledge on student learning in middle school physical science classrooms. American Educational Research Journal, 50(5), 1020–1049.
Saeli, M., Perrenet, J., Jochems, W. M. G., & Zwaneveld, B. (2011). Teaching programming in secondary school: A pedagogical content knowledge perspective. Informatics in Education, 10(1), 73–88. Retrieved from
Schmidt, D. A., Baran, E., Thompson, A. D., Mishra, P., Koehler, M. J., & Shin, T. S. (2009). Technological pedagogical content knowledge (TPACK): The development and validation of an assessment instrument for preservice teachers. Journal of Research on Technology in Education, 42(2), 123–149.
Shulman, L. (1986). Those who understand: Knowledge growth in teaching. Educational Researcher, 15(2), 4–14.
Shulman, L. (1987). Knowledge and teaching: Foundation of the new reform. Harvard Educational Review, 57(1), 1–21.
Smith, J. P., diSessa, A. A., & Roschelle, J. (1994). Misconceptions reconceived: A constructivist analysis of knowledge in transition. Journal of the Learning Sciences, 3(2), 115–163. s15327809jls0302_1.
Sorva, J. (2013). Notional machines and introductory programming education. ACM Transactions on Computing Education, 13(2), 1–31.
Sorva, J., Karavirta, V., & Malmi, L. (2013). A review of generic program visualization systems for introductory programming education. ACM Transactions on Computing Education, 13(4), 1–64.
Sweller, J. (1988). Cognitive load during problem solving: Effects on learning. Cognitive Science, 12(2), 257–285.
Taber, K. S. (2013). Modeling learners and learning in science education. New York: Springer.
Taber, K. S. (2014). Alternative Conceptions/Frameworks/Misconceptions. In R. Gunstone (Ed.), Encyclopedia of Sci. Education (pp. 1–5). Dordrecht: Springer Netherlands.
Webb, M., Davis, N., Bell, T., Katz, Y., Reynolds, N., Chambers, D. P., & Sysło, M. M. (2017). Computer science in K-12 school curricula of the 2lst century: Why, what and when? Education and Information Technologies, 22(2), 445–468.
Yadav, A., Berges, M., Sands, P., & Good, J. (2016). Measuring computer science pedagogical content knowledge: An exploratory analysis of teaching vignettes to measure teacher knowledge. Proceedings of the 11th Workshop in Primary and Secondary Computing Education, (October), 92–95.