Using programming-process data of introductory programming courses: finding solver types, giving feedback, and detecting plagiarism

Laen...
Pisipilt

Kuupäev

Ajakirja pealkiri

Ajakirja ISSN

Köite pealkiri

Kirjastaja

Tartu Ülikooli Kirjastus

Abstrakt

Aja jooksul on programmeerimisest kujunenud oluline oskus, mida õpivad erineva tausta ja eelneva programmeerimiskogemusega üliõpilased paljudelt erialadelt. Samas on jätkuvalt probleemiks suur väljalangevus. Seetõttu on oluline välja selgitada, kuidas üliõpilaste lähenemised erinevad programmeerimise õppimisel, ning leida tõhusaid viise nende toetamiseks, eriti kursuse alguses. Selle doktoritöö eesmärk oli välja selgitada, kuidas saab programmeerimisprotsessi andmeid kasutada üliõpilaste lahendajatüüpide leidmiseks, nende toetamiseks sissejuhatavatel programmeerimiskursustel ja plagiaadijuhtumite tuvastamiseks. Uurimistöö näitas, et üliõpilasi saab jaotada lahendajatüüpidesse programmeerimise käitumismustrite põhjal ning mustrid on sarnased nii algajate kui ka mittealgajate seas. Oluline tulemus on hilise programmi käivitamisega alustamise seos madalamate kontrolltöö tulemustega. Samas said mõned lahendajatüübid sarnaseid tulemusi hoolimata erinevatest käitumismustritest, mis viitab mitmekesisusele. Oluline on märkida, et erinevalt esimesest kontrolltööst ilmnesid gruppide vahel suuremad erinevused teise kontrolltöö tulemustes ning kuulumine lahendajatüüpidesse ei ole kursuse kestel püsiv. Lisaks selgus, et programmeerimisprotsessi logide põhjal antud tagasiside lühendas märgatavalt algajate ülesannete lahendamise aega ja parandas kontrolltöö testi tulemusi, mis kontrollib koodi lugemise oskust. Logide põhjal plagiaadi tuvastamiseks sobivad püsivuse tõttu üldised stiilitunnused. Programmeerimiskeele süntaksiga seotud valikud aga ei ole püsivad. Doktoritöö tulemuste põhjal on oluline soovitus kasutada õpetamisel lähenemist, mis julgustab üliõpilasi oma programme sageli käivitama, nii et see oleks loomulik osa koodi kirjutamise protsessist. Algajate koodi lugemise oskuste parandamiseks on tõhus kasutada logidel põhinevat tagasisidet. See on eriti oluline tehisintellekti ajastul, mil tugevate koodi lugemise oskuste arendamine on üha vajalikum.
Over time, programming has become a crucial skill learned by students from diverse backgrounds and disciplines with varying levels of prior experience, yet high dropout rates remain a significant challenge. Therefore, it is essential to explore how students differ in learning approaches while programming and identify effective ways to support them, particularly at the beginning of the course. This thesis aimed to explore how programming-process data can be utilized to profile and support students in introductory programming courses and to identify plagiarism instances. This research showed that students can be grouped into solver types based on their behavior patterns in programming, with similar patterns appearing among both beginners and non-beginners. A notable discovery is that the late start of the first execution of the program is associated with lower performance. Another finding is that some groups achieved comparable results despite differences in behavior patterns, which emphasizes the diversity. It is essential to note that, compared to the first midterm exam, groups had more notable differences in the second midterm scores, and solver types are not persistent during an introductory programming course. Furthermore, the feedback derived from programming log data decreased the time required by beginners for solving programming tasks and improved their exam test results, which focused on code reading skills. The study showed that, unlike programming style features, general style features are stable and well-suited for plagiarism detection based on log data. Based on the results of this thesis, an important recommendation is to promote a teaching approach that encourages students to run their programs frequently as an integral part of the coding process. In addition, it is effective to use log-based feedback to improve beginners' code-reading abilities. It is essential in the era of AI, when it is increasingly necessary to develop strong code-reading skills.

Kirjeldus

Doktoritöö elektrooniline versioon ei sisalda publikatsioone

Märksõnad

doktoritööd

Viide