References
- Albrecht, E., & Grabowski, J. (2020). Sometimes it’s just sloppiness studying students’ programming errors and misconceptions [Paper presentation]. Annual Conference on Innovation and Technology in Computer Science Education, ITiCSE, 340–345. https://doi.org/https://doi.org/10.1145/3328778.3366862
- Altadmri, A., & Brown, N. C. C. (2015). 37 million compilations: Investigating novice programming mistakes in large-scale student data [Paper presentation]. Proceedings of the 46th ACM Technical Symposium on Computer Science Education, 522–527. https://doi.org/https://doi.org/10.1145/2676723.2677258
- Becker, B. A. (2016). An effective approach to enhancing compiler error messages [Paper presentation]. Proceedings of the 47th ACM Technical Symposium on Computing Science Education – SIGCSE ’16, 126–131. https://doi.org/https://doi.org/10.1145/2839509.2844584
- Bennedsen, J., & Caspersen, M. E. (2005). An investigation of potential success factors for an introductory model-driven programming course [Paper presentation]. Proceedings of the 2005 International Workshop on Computing Education Research – ICER ’05, 155–163. https://doi.org/https://doi.org/10.1145/1089786.1089801
- Bergin, S., & Reilly, R. (2005). Programming: Factors that influence success. ACM SIGCSE Bulletin, 37(1), 411–415. https://doi.org/https://doi.org/10.1145/1047124.1047480
- Brown, N. C. C., & Altadmri, A. (2017). Novice java programming mistakes: Large-scale data vs. educator beliefs. ACM Transactions on Computing Education, 17(2), 1–21. https://doi.org/https://doi.org/10.1145/2994154
- 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.
- Carter, K., & Ormrod, J. (1982). Acquisition of formal operations by intellectually gifted children. Gifted Child Quarterly, 26(3), 110–114. https://doi.org/https://doi.org/10.1177/001698628202600304
- Clancy, M. J. (2004). Misconceptions and attitudes that interfere with learning to program. In S. Fincher & M. Petre (Eds.), Computer science education research (pp. 85–100). Taylor & Francis Group.
- Clancy, M. J., & Linn, M. C. (1999). Patterns and pedagogy. ACM SIGCSE Bulletin, 31(1), 37–42. https://doi.org/https://doi.org/10.1145/384266.299673
- College Board. (2016). AP computer science principles. https://advancesinap.collegeboard.org/stem/computer-science-principles
- Denny, P., Luxton-Reilly, A., Tempero, E., & Hendrickx, J. (2011a). Understanding the syntax barrier for novices [Paper presentation]. Proceedings of the 16th Annual Joint Conference on Innovation and Technology in Computer Science Education – ITiCSE ’11, 208. https://doi.org/https://doi.org/10.1145/1999747.1999807
- Denny, P., Luxton-Reilly, A., Tempero, E., & Hendrickx, J. (2011b). CodeWrite: Supporting student-driven practice of Java [Paper presentation]. SIGCSE’11 – Proceedings of the 42nd ACM Technical Symposium on Computer Science Education, 471–476. https://doi.org/https://doi.org/10.1145/1953163.1953299
- Douce, C., Livingstone, D., & Orwell, J. (2005). Automatic test-based assessment of programming. Journal on Educational Resources in Computing, 5(3), 4–13. https://doi.org/https://doi.org/10.1145/1163405.1163409
- Edwards, S. H., Kandru, N., & Rajagopal, M. B. M. (2017). Investigating static analysis errors in student Java programs [Paper presentation]. https://doi.org/https://doi.org/10.1145/3105726.3106182
- Fisler, K., Krishnamurthi, S., & Siegmund, J. (2016). Modernizing plan-composition studies [Paper presentation]. Proceedings of the 47th ACM Technical Symposium on Computing Science Education – SIGCSE ’16, 211–216. https://doi.org/https://doi.org/10.1145/2839509.2844556
- 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. https://doi.org/https://doi.org/10.1080/08993400802114508
- Ginat, D., Menashe, E., & Taya, A. (2013). Novice difficulties with interleaved pattern composition. In I. Diethelm & R. T. Mittermeir (Eds.), Informatics in schools. Sustainable informatics education for pupils of all ages (pp. 57–67). Springer.
- Grover, S., & Basu, S. (2017). Measuring student learning in introductory block-based programming: Examining misconceptions of loops, variables, and Boolean logic [Paper presentation]. Proceedings of the Conference on Integrating Technology into Computer Science Education, ITiCSE, 267–272. https://doi.org/https://doi.org/10.1145/3017680.3017723
- 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/https://doi.org/10.1080/08993408.2015.1033142
- Guzdial, M. (2015). Learner-Centered Design of Computing Education: Research on Computing for Everyone. Synthesis Lectures on Human-Centered Informatics, 8(6), 1–165. https://doi.org/https://doi.org/10.2200/S00684ED1V01Y201511HCI033
- Hristova, M., Misra, A., Rutter, M., & Mercuri, R. (2003). Identifying and correcting Java programming errors for introductory computer science students [Paper presentation]. Proceedings of the 34th SIGCSE Technical Symposium on Computer Science Education, 153–156. https://doi.org/https://doi.org/10.1145/611892.611956
- Huitt, W., & Hummel, J. (2003). Piaget’s theory of cognitive development. Educational Psychology Interactive, 3(2), 1–5. https://intranet.newriver.edu/images/stories/library/stennett_psychology_articles/Piagets%20Theory%20of%20Cognitive%20Development.pdf
- Ihantola, P., Ahoniemi, T., Karavirta, V., & Seppälä, O. (2010). Review of recent systems for automatic assessment of programming assignments [Paper presentation]. Proceedings of the 10th Koli Calling International Conference on Computing Education Research – Koli Calling ’10. https://doi.org/https://doi.org/10.1145/1930464.1930480
- Jackson, J., Cobb, M., & Carver, C. (2005). Identifying top Java errors for novice programmers [Paper presentation]. Proceedings Frontiers in Education 35th Annual Conference, T4C-T4C. https://doi.org/https://doi.org/10.1109/FIE.2005.1611967
- Kaczmarczyk, L. C., Petrick, E. R., East, J. P., & Herman, G. L. (2010). Identifying student misconceptions of programming [Paper presentation]. Proceedings of the 41st ACM Technical Symposium on Computer Science Education, 107–111. https://doi.org/https://doi.org/10.1145/1734263.1734299
- Kohn, T. (2019). The error behind the message: Finding the cause of error messages in python [Paper presentation]. SIGCSE 2019 – Proceedings of the 50th ACM Technical Symposium on Computer Science Education, 524–530. https://doi.org/https://doi.org/10.1145/3287324.3287381
- Lister, R., Adams, E. S., Fitzgerald, S., Fone, W., Hamer, J., Lindholm, M., Mccartney, R., Moström, J. E., Sanders, K., Seppälä, O., Simon, B., & Thomas, L. (2004). A multi-national study of reading and tracing skills in novice programmers [Paper presentation]. Proceedings of the Conference on Integrating Technology into Computer Science Education, ITiCSE, 119–150. https://doi.org/https://doi.org/10.1145/1044550.1041673
- 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 [Paper presentation]. Proceedings of the 11th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education – ITICSE ’06, 38(3), 118–122. https://doi.org/https://doi.org/10.1145/1140124.1140157
- McCall, D., Kölling, M. (2014). Meaningful categorisation of novice programmer errors. ieeexplore.ieee.org. http://kar.kent.ac.uk/43796/
- 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. https://doi.org/https://doi.org/10.1080/08993400802114581
- MOE of China. (2018). New national curriculum standards for high school education. Retrieved April 20, 2020 from http://www.moe.gov.cn/srcsite/A26/s8001/201801/t20180115_324647.html
- Muller, O., Ginat, D., & Haberman, B. (2007). Pattern-oriented instruction and its influence on problem decomposition and solution construction [Paper presentation]. Proceedings of the 12th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education, 151–155. https://doi.org/https://doi.org/10.1145/1268784.1268830
- Pettit, R. S., Homer, J., & Gee, R. (2017). Do enhanced compiler error messages help students? [Paper presentation]. Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education – SIGCSE ’17, 465–470. https://doi.org/https://doi.org/10.1145/3017680.3017768
- Piaget, J. (1964). Cognitive development in children: Piaget development and learning. Journal of Research in Science Teaching, 2(3), 176–186. https://doi.org/https://doi.org/10.1002/tea.3660020306
- Prather, J., Pettit, R., McMurry, K., Peters, A., Homer, J., & Cohen, M. (2018). Metacognitive difficulties faced by novice programmers in automated assessment tools [Paper presentation]. ICER 2018 – Proceedings of the 2018 ACM Conference on International Computing Education Research, 41–50. https://doi.org/https://doi.org/10.1145/3230977.3230981
- Python Documentation. (2019). Errors and exceptions. Retrieved March 20, 2020, from https://docs.python.org/3.7/tutorial/errors.html
- Qian, Y., Hambrusch, S., Yadav, A., Gretter, S., & Li, Y. (2020). Teachers’ perceptions of student misconceptions in introductory programming. Journal of Educational Computing Research, 58(2), 364–397. https://doi.org/https://doi.org/10.1177/0735633119845413
- Qian, Y., & Lehman, J. (2017). Students’ misconceptions and other difficulties in introductory programming: A literature review. ACM Transactions on Computing Education, 18(1), 1–24. https://doi.org/https://doi.org/10.1145/3077618
- Qian, Y., & Lehman, J. (2018). Using technology to support teaching computer science: A study with middle school students. EURASIA Journal of Mathematics, Science and Technology Education, 14(12), 1–13. https://doi.org/https://doi.org/10.29333/ejmste/94227
- Qian, Y., & Lehman, J. (2020). An investigation of high school students’ errors in introductory programming: A data-driven approach. Journal of Educational Computing Research, 58(5), 919–945. https://doi.org/https://doi.org/10.1177/0735633119887508
- 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. https://doi.org/https://doi.org/10.1080/08993400500224310
- 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. https://doi.org/https://doi.org/10.3102/0002831213477680
- Sajaniemi, J., & Kuittinen, M. (2005). An experiment on using roles of variables in teaching introductory programming. Computer Science Education, 15(1), 59–82. https://doi.org/https://doi.org/10.1080/08993400500056563
- Schorsch, T. (1995). CAP: An automated self-assessment tool to check Pascal programs for syntax, logic and style errors. ACM SIGCSE Bulletin, 27(1), 168–172. https://doi.org/https://doi.org/10.1145/199691.199769
- Shulman, L. (1986). Those who understand: Knowledge growth in teaching. Educational Researcher, 15(2), 4–14. https://doi.org/https://doi.org/10.3102/0013189X015002004
- Simon, A. L.-R., Ajanovski, V. V., Fouh, E., Gonsalvez, C., Leinonen, J., Parkinson, J., Poole, M., & Thota, N. (2019). Pass rates in introductory programming and in other STEM disciplines [Paper presentation]. Annual Conference on Innovation and Technology in Computer Science Education, ITiCSE, 53–71. https://doi.org/https://doi.org/10.1145/3344429.3372502
- Sirkia, T., & Sorva, J. (2012). Exploring programming misconceptions: An analysis of student mistakes in visual program simulation exercises [Paper presentation]. 12th Koli Calling International Conference on Computing Education Research, 19–28. https://doi.org/https://doi.org/10.1145/2401796.2401799
- Sleeman, D., Putnam, R. T., Baxter, J., & Kuspa, L. (1986). Pascal and high school students: A study of errors. Journal of Educational Computing Research, 2(1), 5–23. https://doi.org/https://doi.org/10.2190/2XPP-LTYH-98NQ-BU77
- Smith, R., & Rixner, S. (2019). The error landscape: Characterizing the mistakes of novice programmers [Paper presentation]. SIGCSE 2019 – Proceedings of the 50th ACM Technical Symposium on Computer Science Education, 538–544. https://doi.org/https://doi.org/10.1145/3287324.3287394
- Soloway, E. (1986). Learning to program = learning to construct mechanisms and explanations. Communications of the ACM, 29(9), 850–858. https://doi.org/https://doi.org/10.1145/6592.6594
- Sorva, J. (2013). Notional machines and introductory programming education. ACM Transactions on Computing Education, 13(2), 1–31. https://doi.org/https://doi.org/10.1145/2483710.2483713
- Spohrer, J. C., & Soloway, E. (1986). Novice mistakes: Are the folk wisdoms correct? Communications of the ACM, 29(7), 624–632. https://doi.org/https://doi.org/10.1145/6138.6145
- Tabet, N., Gedawy, H., Alshikhabobakr, H., & Razak, S. (2016). From Alice to python. Introducing text-based programming in middle schools [Paper presentation]. Proceedings of the 2016 ACM Conference on Innovation and Technology in Computer Science Education, July, pp. 124–129. https://doi.org/https://doi.org/10.1145/2899415.2899462
- Taylor, C., Zingaro, D., Porter, L., Webb, K. C., Lee, C. B., & Clancy, M. (2014). Computer science concept inventories: Past and future. Computer Science Education, 24(4), 253–276. https://doi.org/https://doi.org/10.1080/08993408.2014.970779
- Teague, D., Lister, R. (2014). Programming: Reading, writing and reversing. Proceedings of the 2014 Conference on Innovation & Technology in Computer Science Education, 285–290. https://doi.org/https://doi.org/10.1145/2591708.2591712
- Watson, C., & Li, F. W. B. (2014). Failure rates in introductory programming revisited [Paper presentation]. Proceedings of the 2014 Conference on Innovation & Technology in Computer Science Education – ITiCSE ’14. https://doi.org/https://doi.org/10.1145/2591708.2591749
- 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. https://doi.org/https://doi.org/10.1007/s10639-016-9493-x
- Yadav, A., & Berges, M. (2019). Computer science pedagogical content knowledge: Characterizing teacher performance. ACM Transactions on Computing Education, 19(3), 1–24. https://doi.org/https://doi.org/10.1145/3303770