Questions About Learners' Code: Extending Automated Assessment Towards Program Comprehension

Loading...
Thumbnail Image
Journal Title
Journal ISSN
Volume Title
School of Science | Doctoral thesis (article-based) | Defence date: 2024-05-17
Date
2024
Major/Subject
Mcode
Degree programme
Language
en
Pages
129 + app. 95
Series
Aalto University publication series DOCTORAL THESES, 78/2024
Abstract
Novice programmers have a limited understanding of the program code they produce. Their programs are often based on code snippets from examples and internet searches. Recently and rather suddenly, artificial intelligence has changed programming environments that can now suggest and complete entire programs based on the available context. However, the ability to comprehend and discuss programs is essential in becoming a programmer who is responsible for their work and can reliably solve problems as a member of a team. Many introductory programming courses have hundreds of students per teacher. Therefore, automated systems are often used to produce immediate feedback and assessment for programming exercises. Current systems focus on the created program and its requirements. Unfortunately, their feedback helps students in iterating toward acceptable code rather than acquiring a deep understanding of the program. This dissertation addresses that gap. The dissertation defines and introduces questions about learners' code (QLCs). After a student has submitted a program, they are asked automated, personal QLCs about the structure and the logic of their program. The dissertation describes a system to generate QLCs and contributes three open-source implementations supporting Java, JavaScript, and Python. The empirical contributions of the dissertation are based on multiple studies that research both quantitatively and qualitatively how novice programmers answer various types of QLCs. From the students, who create a correct program, as many as 20% may answer incorrectly about concepts that are critical to systematically reason about their program code. More than half of the students fail to mentally trace the execution of their program. This confirms that novices' program comprehension needs improvement and instructors may overestimate their abilities. The more students answer incorrectly to QLCs, the more they tinker with their code and have less success on the course. Current artificial intelligence systems respond to QLCs better than the average novice. However, they also lapse into humanlike errors producing failed reasoning about the code they generated, which could present an important learning opportunity for the critical use of AI in programming.

Aloittelevilla ohjelmoijilla on puutteellinen ymmärrys ohjelmakoodista, jota he tuottavat. Heidän ohjelmansa perustuvat usein esimerkeistä ja internethauista poimittuihin koodin pätkiin. Hiljattain ja melko yllättäen tekoäly on muuttanut ohjelmointiympäristöjä, jotka pystyvät nyt ehdottamaan ja täydentämään kokonaisia ohjelmia asiayhteyksien perusteella. Ohjelmoijan tulee kuitenkin kantaa vastuu työn tuloksista ja kyetä ratkomaan luotettavasti ongelmia tiimin jäsenenä, joten ohjelmien ymmärtäminen ja niistä keskusteleminen ovat heille välttämättömiä taitoja. Useilla ohjelmoinnin alkeiskursseilla on satoja opiskelijoita yhtä opettajaa kohden. Tämän vuoksi automaattisia järjestelmiä käytetään usein tuottamaan välitöntä palautetta ja arvioimaan ohjelmointitehtäviä. Nykyiset järjestelmät keskittyvät luotuun ohjelmaan ja sen vaatimuksiin. Valitettavasti näiden järjestelmien tuottama palaute auttaa opiskelijaa etenemään pienin askelin kohti hyväksyttävää koodia, eikä niinkään ymmärtämään kunnolla ohjelmansa toiminnan. Tämä väitöskirja käsittelee tätä puutetta. Väitöskirja määrittelee ja esittelee QLC-kysymykset. Palautettuaan ohjelman opiskelijalta kysytään automaattisia henkilökohtaisia QLC-kysymyksiä koskien heidän ohjelmansa rakennetta ja logiikkaa. Väitöskirja kuvaa järjestelmän QLC-kysymysten luomiseksi ja tarjoaa kolme avoimen lähdekoodin toteutusta Java-, JavaScript- ja Python-kielille. Väitöskirjan empiiriset tulokset perustuvat useisiin tutkimuksiin, joissa tutkitaan sekä määrällisesti että laadullisesti, miten vasta-alkajat vastaavat erityyppisiin QLC-kysymyksiin. Niistä opiskelijoista, jotka tuottavat toimivan ohjelman, jopa 20 % voi vastata virheellisesti kysymyksiin, jotka koskevat heidän ohjelmansa toiminnan järjestelmällisen selittämisen kannalta välttämättömiä tietoja. Useampi kuin puolet opiskelijoista epäonnistuu simuloimaan ohjelmansa suorittamista mielessään. Tämä vahvistaa käsitystä siitä, että aloittelevien ohjelmoijien ohjelmakoodin ymmärtämistä tulee kehittää ja ohjaajat saattavat yliarvioida heidän kykyjään. Mitä enemmän opiskelijat vastaavat väärin QLC-kysymyksiin, sitä enemmän he korjailevat suunnittelematta koodiaan ja menestyvät heikommin kurssilla. Tämänhetkiset tekoälyjärjestelmät vastaavat QLC-kysymyksiin paremmin kuin keskimääräinen aloittelija. Kuitenkin nekin sortuvat ihmisen kaltaisiin virheisiin ja tuottavat virheellisiä selityksiä itse luomalleen koodille, mikä voi tarjota mahdollisuuden oppia kriittistä tekoälyn käyttöä ohjelmoinnissa.
Description
Supervising professor
Malmi, Lauri, Prof., Aalto University, Department of Computer Science, Finland
Thesis advisor
Korhonen, Ari, Senior university lecturer, Aalto University, Department of Computer Science, Finland
Keywords
programming education, introductory programming, automated assessment, unproductive success, program comprehension, fragile knowledge, metacognition, ohjelmoinnin alkeisopetus, automaattinen arviointi, tuottamaton menestys, ohjelman ymmärtäminen, hauras tieto, metakognitio
Other note
Parts
  • [Publication 1]: Teemu Lehtinen, André L. Santos, Juha Sorva. Let’s Ask Students About Their Programs, Automatically. In Proceedings of the IEEE/ACM 29th International Conference on Program Comprehension (ICPC), A virtual event, Madrid, Spain, pp. 467-475, May 2021,
    DOI: 10.1109/ICPC52881.2021.00054 View at publisher
  • [Publication 2]: Teemu Lehtinen, Aleksi Lukkarinen, Lassi Haaranen. Students Struggle to Explain Their Own Program Code. In Proceedings of the 26th ACM Conference on Innovation and Technology in Computer Science Education V. 1 (ITiCSE ’21), A virtual event, Germany, pp. 206-212, June 2021.
    DOI: 10.1145/3430665.3456322 View at publisher
  • [Publication 3]: André Santos, Tiago Soares, Nuno Garrido, Teemu Lehtinen. Jask: Generation of Questions About Learners’ Code in Java. In Proceedings of the 27th ACM Conference on Innovation and Technology in Computer Science Education Vol. 1 (ITiCSE ’22), Dublin, Ireland, pp. 117-123, July 2022.
    DOI: 10.1145/3502718.3524761 View at publisher
  • [Publication 4]: Johan Jeuring, Hieke Keuning, Samiha Marwan, Dennis Bouvier, Cruz Izu, Natalie Kiesler, Teemu Lehtinen, Dominic Lohr, Andrew Petersen, Sami Sarsa. Towards Giving Timely Formative Feedback and Hints to Novice Programmers. In Proceedings of the 2022 Working Group Reports on Innovation and Technology in Computer Science Education (ITiCSE-WGR ’22), Dublin, Ireland, pp. 95-115, December 2022.
    DOI: 10.1145/3571785.3574124 View at publisher
  • [Publication 5]: Teemu Lehtinen, Lassi Haaranen, Juho Leinonen. Automated Questionnaires About Students’ JavaScript Programs: Towards Gauging Novice Programming Processes. In Proceedings of the 25th Australasian Computing Education Conference (ACE ’23), Melbourne, VIC, Australia, pp. 49-58, January 2023.
    DOI: 10.1145/3576123.3576129 View at publisher
  • [Publication 6]: Teemu Lehtinen, Otto Seppälä, Ari Korhonen. Automated Questions About Learners’ Own Code Help to Detect Fragile Prerequisite Knowledge. In Proceedings of the 2023 Conference on Innovation and Technology in Computer Science Education V. 1 (ITiCSE 2023), Turku, Finland, pp. 505-511, July 2023.
    DOI: 10.1145/3587102.3588787 View at publisher
  • [Publication 7]: Teemu Lehtinen, Charles Koutcheme, Arto Hellas. Let’s Ask AI About Their Programs: Exploring ChatGPT’s Answers To Program Comprehension Questions. Accepted for publication in Proceedings of the 46th International Conference on Software Engineering (ICSE ’24), Lisbon, Portugal, April 2024.
    DOI: 10.1145/3639474.3640058 View at publisher
Citation