
Bloom, B. S., Engelhart, M. D., Furst, E. J., Hill, W. H., and
Krathwohl, D. R. (1956). Taxonomy of Educational
Objectives: Handbook 1 Cognitive Domain. Long-
mans, London.
Braun, V. and Clarke, V. (2006). Using thematic analysis
in psychology. Qualitative Research in Psychology,
3(2):77–101.
Brown, N. C. and Altadmri, A. (2014). Investigating
novice programming mistakes: educator beliefs vs.
student data. In Proceedings of the Tenth Annual Con-
ference on International Computing Education Re-
search, ICER ’14, page 43–50, New York, NY, USA.
Association for Computing Machinery.
Chiodini, L., Moreno Santos, I., Gallidabino, A., Tafliovich,
A., Santos, A. L., and Hauswirth, M. (2021). A cu-
rated inventory of programming language misconcep-
tions. In Proceedings of the 26th ACM Conference on
Innovation and Technology in Computer Science Ed-
ucation V. 1, ITiCSE ’21, page 380–386, New York,
NY, USA. Association for Computing Machinery.
Crow, T., Luxton-Reilly, A., and Wuensche, B. (2018). In-
telligent tutoring systems for programming education:
a systematic review. In Proceedings of the 20th Aus-
tralasian Computing Education Conference, ACE ’18,
page 53–62, New York, NY, USA. Association for
Computing Machinery.
Du Boulay, B. (1986). Some difficulties of learning to pro-
gram. Journal of Educational Computing Research,
2(1):57–73.
Finnie-Ansley, J., Denny, P., Becker, B. A., Luxton-Reilly,
A., and Prather, J. (2022). The robots are coming: Ex-
ploring the implications of openai codex on introduc-
tory programming. In Proceedings of the 24th Aus-
tralasian Computing Education Conference, ACE ’22,
page 10–19. Association for Computing Machinery.
Goldman, K., Gross, P., Heeren, C., Herman, G., Kaczmar-
czyk, L., Loui, M. C., and Zilles, C. (2008). Identi-
fying important and difficult concepts in introductory
computing courses using a delphi process. In Pro-
ceedings of the 39th SIGCSE Technical Symposium
on Computer Science Education, SIGCSE ’08, page
256–260, New York, NY, USA. Association for Com-
puting Machinery.
Hellas, A., Leinonen, J., Sarsa, S., Koutcheme, C., Ku-
janp
¨
a
¨
a, L., and Sorva, J. (2023). Exploring the re-
sponses of large language models to beginner pro-
grammers’ help requests. In Proceedings of the 2023
ACM Conference on International Computing Educa-
tion Research - Volume 1, ICER ’23, page 93–105,
New York, NY, USA. Association for Computing Ma-
chinery.
Kallia, M. and Sentance, S. (2019). Learning to use func-
tions: The relationship between misconceptions and
self-efficacy. In Proceedings of the 50th ACM Tech-
nical Symposium on Computer Science Education,
SIGCSE ’19, page 752–758, New York, NY, USA.
Association for Computing Machinery.
Kohn, T. (2017). Teaching Python Programming to
Novices: Addressing Misconceptions and Creating a
Development Environment. ETH Z
¨
urich.
Lahtinen, E., Ala-Mutka, K., and J
¨
arvinen, H.-M. (2005).
A study of the difficulties of novice programmers.
SIGCSE Bull., 37(3):14–18.
Le, N.-T., Loll, F., and Pinkwart, N. (2013). Operational-
izing the continuum between well-defined and ill-
defined problems for educational technology. IEEE
Transactions on Learning Technologies, 6(3):258–
270.
Le, N.-T. and Pinkwart, N. (2014). Towards a classifica-
tion for programming exercises. In Trausan-Matu, S.,
Boyer, K., Crosby, M., and Panourgia, K., editors,
Proceedings of the 2nd Workshop on AI-supported
Education for Computer Science at the 12th Inter-
national Conference on Intelligent Tutoring, Systems
(ITS), Berlin, Heidelberg. Springer-Verlag.
Luxton-Reilly, A., Simon, Albluwi, I., Becker, B. A., Gian-
nakos, M., Kumar, A. N., Ott, L., Paterson, J., Scott,
M. J., Sheard, J., and Szabo, C. (2018). Introductory
programming: a systematic literature review. In Pro-
ceedings Companion of the 23rd Annual ACM Con-
ference on Innovation and Technology in Computer
Science Education, ITiCSE 2018 Companion, page
55–106, New York, NY, USA. Association for Com-
puting Machinery.
McCracken, M., Almstrum, V., Diaz, D., Guzdial, M., Ha-
gan, D., Kolikant, Y. B.-D., Laxer, C., Thomas, L.,
Utting, I., and Wilusz, T. (2001). A multi-national,
multi-institutional study of assessment of program-
ming skills of first-year cs students. SIGCSE Bull.,
33(4):125–180.
Qian, Y. and Lehman, J. (2017). Students’ misconceptions
and other difficulties in introductory programming: A
literature review. ACM Trans. Comput. Educ., 18(1).
Rigby, L., Denny, P., and Luxton-Reilly, A. (2020). A miss
is as good as a mile: Off-by-one errors and arrays in
an introductory programming course. In Proceedings
of the Twenty-Second Australasian Computing Edu-
cation Conference, ACE’20, page 31–38, New York,
NY, USA. Association for Computing Machinery.
Rivers, K. and 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:37–64.
Robins, A. (2010). Learning edge momentum: a new ac-
count of outcomes in cs1. Computer Science Educa-
tion, 20(01):37–71.
Robins, A., Rountree, J., and Rountree, N. (2003). Learning
and teaching programming: A review and discussion.
Computer Science Education, 13(02):137–172.
Sleeman, D., Putnam, R. T., Baxter, J., and Kuspa, L.
(1986). Pascal and high school students: A study of
errors. Journal of Educational Computing Research,
2(1):5–23.
Sorva, J. (2012). Visual program simulation in introductory
programming education. School of Science, Aalto
University.
Learning to Program: Mapping Errors and Misconceptions of Python Novices to Support the Design of Intelligent Programming Tutors
231