Ohjelmointitehtävien ratkaisu ChatGPT:llä ja sen vaikutukset ohjelmoinnin opetukseen
Rytilahti, Juuso (2024-06-29)
Ohjelmointitehtävien ratkaisu ChatGPT:llä ja sen vaikutukset ohjelmoinnin opetukseen
Rytilahti, Juuso
(29.06.2024)
Lataukset:
Julkaisu on tekijänoikeussäännösten alainen. Teosta voi lukea ja tulostaa henkilökohtaista käyttöä varten. Käyttö kaupallisiin tarkoituksiin on kielletty.
avoin
Julkaisun pysyvä osoite on:
https://urn.fi/URN:NBN:fi-fe2024072562216
https://urn.fi/URN:NBN:fi-fe2024072562216
Tiivistelmä
Laajojen kielimallien yleistyminen ja niiden suorituskyvyn nousu muuttaa myös
ohjelmoinnin opetusta. Tässä tutkielmassa perehdytään ChatGPT:n kyvykkyyteen
suomenkielisissä ohjelmoinnin perusteiden tehtävissä ja siihen, miten se voi vaikuttaa
ohjelmoinnin perusteiden opetukseen. Tämä tutkielma esittää ChatGPT:n kyvykkyyden
ratkaista sanallisia ohjelmoinnin tehtäviä suomeksi Pythonilla. Tutkielmassa
käsitellään myös sitä kuinka kuinka ChatGPT vaikuttaa ohjelmoinnin perusteiden
opetukseen. Tutkimus tehtiin keväällä 2023.
Tutkimuksessa simuloitiin ChatGPT:tä käyttävää oppilasta. Siinä käsiteltiin kahta
erilaista lähestymistapaa, kumpaakin testattiin GPT-3.5:llä ja GPT-4:llä. Ensimmäisessä
lähestymistavassa simuloitiin oppilasta, joka omaa hieman perustietoja
ohjelmoinnista. Toinen lähestymistapa simuloi täysin ohjelmoinnista tietämätöntä
opiskelijaa. Tutkimuksessa saatu lopputulos vaihteli hieman valitun työkalun ja lähestymistavan
mukaan, oppilaan saavuttaessa kurssin loppupisteistä 63.5%-86.2%
riippuen valitusta lähestymistavasta. Työkalua hyödyntävä opiskelija olisi myös voinut
läpäistä kaikki kolme kurssilla käytössä ollutta loppukoetta. On myös huomattava,
että mikäli vain kurssin ohjelmointitehtävät otettiin huomioon, ChatGPT:llä
avustettu oppilas olisi voinut vastata 107 (75.9%) tai jopa 139 (98.6%) kurssin 141
ohjelmointitehtävästä. Tutkielmassa tarkastellaan myös ChatGPT:n tekemiä yleisiä
virheitä konkreettisten esimerkkien kautta.
Tämä tutkielma sisältää myös pohdintaa siitä, kuinka laajan kielimallin käyttöä huijaamiseen
voitaisiin vaikeuttaa muokkaamalla ohjelmoinnin tehtäviä, ja kuinka haasteellista
se on. Havainnollistavana esimerkkinä käytetään tehtävää, jonka ratkaisu ei
vaadi suoraan ohjelmointia. Lisäksi tutkielmassa reflektoidaan laajojen kielimallien
vaikutusta ohjelmoinnin opetukseen nyt ja tulevaisuudessa. The emergence of large language models and their raised capabilities also affects the
teaching of programming. This thesis shows ChatGPT’s performance and ability
to solve verbal programming exercises written in Finnish with the programming
language Python. More broadly, it is also explored how ChatGPT affects to the
teaching of fundamentals of programming. The study was conducted during the
Spring of 2023.
The research was conducted by simulating a student utilizing ChatGPT. We opted
for two different approaches, which were tested with GPT-3.5 and GPT-4 models.
The first approach simulated an amateur programmer with some prior programming
knowledge. The second approach simulated a student without even a basic knowledge
or understanding of programming. The performance varied, simulated student
gaining between 63.5% and 86.2% of the course’s total score. The tool-assisted students
were also able to pass 3 different versions of the course’s exam. Notably, if
focused only on programming exercises, the simulated student could answer correctly
107 (75.9%) to 139 (98.6%) of the course’s 141 programming exercises. The
study also highlights the most common mistakes made by the models with concrete
examples.
This thesis also includes a reflection on how one could try to make cheating with
a large language model more difficult by modifying the assignments and how hard
this is to achieve. An exercise, which solving does not require programming directly
is used as an illustrative example. Additionally, the discussion section contains
some general reflection on the impact of large language models on the teaching of
programming now and in the future.
ohjelmoinnin opetusta. Tässä tutkielmassa perehdytään ChatGPT:n kyvykkyyteen
suomenkielisissä ohjelmoinnin perusteiden tehtävissä ja siihen, miten se voi vaikuttaa
ohjelmoinnin perusteiden opetukseen. Tämä tutkielma esittää ChatGPT:n kyvykkyyden
ratkaista sanallisia ohjelmoinnin tehtäviä suomeksi Pythonilla. Tutkielmassa
käsitellään myös sitä kuinka kuinka ChatGPT vaikuttaa ohjelmoinnin perusteiden
opetukseen. Tutkimus tehtiin keväällä 2023.
Tutkimuksessa simuloitiin ChatGPT:tä käyttävää oppilasta. Siinä käsiteltiin kahta
erilaista lähestymistapaa, kumpaakin testattiin GPT-3.5:llä ja GPT-4:llä. Ensimmäisessä
lähestymistavassa simuloitiin oppilasta, joka omaa hieman perustietoja
ohjelmoinnista. Toinen lähestymistapa simuloi täysin ohjelmoinnista tietämätöntä
opiskelijaa. Tutkimuksessa saatu lopputulos vaihteli hieman valitun työkalun ja lähestymistavan
mukaan, oppilaan saavuttaessa kurssin loppupisteistä 63.5%-86.2%
riippuen valitusta lähestymistavasta. Työkalua hyödyntävä opiskelija olisi myös voinut
läpäistä kaikki kolme kurssilla käytössä ollutta loppukoetta. On myös huomattava,
että mikäli vain kurssin ohjelmointitehtävät otettiin huomioon, ChatGPT:llä
avustettu oppilas olisi voinut vastata 107 (75.9%) tai jopa 139 (98.6%) kurssin 141
ohjelmointitehtävästä. Tutkielmassa tarkastellaan myös ChatGPT:n tekemiä yleisiä
virheitä konkreettisten esimerkkien kautta.
Tämä tutkielma sisältää myös pohdintaa siitä, kuinka laajan kielimallin käyttöä huijaamiseen
voitaisiin vaikeuttaa muokkaamalla ohjelmoinnin tehtäviä, ja kuinka haasteellista
se on. Havainnollistavana esimerkkinä käytetään tehtävää, jonka ratkaisu ei
vaadi suoraan ohjelmointia. Lisäksi tutkielmassa reflektoidaan laajojen kielimallien
vaikutusta ohjelmoinnin opetukseen nyt ja tulevaisuudessa.
teaching of programming. This thesis shows ChatGPT’s performance and ability
to solve verbal programming exercises written in Finnish with the programming
language Python. More broadly, it is also explored how ChatGPT affects to the
teaching of fundamentals of programming. The study was conducted during the
Spring of 2023.
The research was conducted by simulating a student utilizing ChatGPT. We opted
for two different approaches, which were tested with GPT-3.5 and GPT-4 models.
The first approach simulated an amateur programmer with some prior programming
knowledge. The second approach simulated a student without even a basic knowledge
or understanding of programming. The performance varied, simulated student
gaining between 63.5% and 86.2% of the course’s total score. The tool-assisted students
were also able to pass 3 different versions of the course’s exam. Notably, if
focused only on programming exercises, the simulated student could answer correctly
107 (75.9%) to 139 (98.6%) of the course’s 141 programming exercises. The
study also highlights the most common mistakes made by the models with concrete
examples.
This thesis also includes a reflection on how one could try to make cheating with
a large language model more difficult by modifying the assignments and how hard
this is to achieve. An exercise, which solving does not require programming directly
is used as an illustrative example. Additionally, the discussion section contains
some general reflection on the impact of large language models on the teaching of
programming now and in the future.