ASPA : a static analyser to support learning and continuous feedback on the first programming course
Luukkainen, Roope (2020)
Diplomityö
Luukkainen, Roope
2020
School of Engineering Science, Tietotekniikka
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi-fe2020062245317
https://urn.fi/URN:NBN:fi-fe2020062245317
Tiivistelmä
For decades there have been arguments how to teach programming in the first programming course (CS1). In addition, supportive intervention methods to improve students' learning and methods to improve assessment process have been widely studied. There are various successful methods to each topic separately, but only a few of them fit for both. In general, varying software tools have been beneficial for both, but they are usually in English and dedicated for a specific course. In LUT University CS1 course with Python is lectured in Finnish. Therefore, ASPA (Abstrakti SyntaksiPuu Analysaattori) was created to satisfy needs for both Finnish and English feedback. ASPA is a static analyser tool, which utilises abstract syntax trees to detect coding convention violations from students' Python file submissions. Feedback is beneficial for the student while studying programming topics and for course staff while assessing student submissions. ASPA and its functionality were validated by expert evaluations, user testing and analysing course submissions. Ohjelmoinnin perusopetuksesta oikeasta totetustavasta on argumentoitu jo vuosikymmeniä. Lisäksi keinoja parantaa opiskelijoiden oppimista ja opetushenkilöstön töiden tarkastusprosessia on tutkittu laajalti. Monet menetelmät toimivat jompaankumpaan tarpeeseen, mutta vain harvat menetelmät edistävät kumpaakin. Näistä harvoista menetelmistä suurin osa hyödyntää jonkinlaista ohjelmistoa. Moni työkalu on saatavilla vain englanniksi ja on lisäksi suunnattu vain tietylle kurssille. LUT-yliopiston Ohjelmoinnin peruskurssin opetuskieli on kuitenkin suomi. Ongelma ratkaistiin kehitettämällä uusi työkalu, ASPA (Abstrakti SyntaksiPuu Analysaattori), joka mahdollistaa palautteen saamisen sekä suomeksi että englanniksi. ASPA on staattinen koodianalysaattori, joka hyödyntää abstraktia syntaksipuuta analysoidessaan opiskelijoiden Python tiedostoja. Palaute on hyödyllistä sekä opiskelijan oppimisen että kurssihenkilöstön arviointiprosessin kannalta. ASPAn toiminnallisuuden validointi suoritettiin asiantuntija- ja testikäyttäjä-arvioinneilla sekä aiempia kurssisuoritteita analysoimalla.