Advances in assessment of programming skills
Loading...
Journal Title
Journal ISSN
Volume Title
School of Science |
Doctoral thesis (article-based)
| Defence date: 2012-08-24
Checking the digitized thesis and permission for publishing
Instructions for the author
Instructions for the author
Unless otherwise stated, all rights belong to the author. You may download, display and print this publication for Your own personal use. Commercial use is prohibited.
Author
Date
2012
Major/Subject
Mcode
Degree programme
Language
en
Pages
221
Series
Aalto University publication series DOCTORAL DISSERTATIONS, 98/2012
Abstract
This thesis concerns assessment techniques used in university level programming education. The motivation is in improving existing assessment methods to yield more detailed or fundamentally different kinds of information which can be used to provide higher quality feedback to the student. One central theme in this thesis is the use of program reading and tracing skills in different aspects of programming. Tracing is a critical skill in reading and writing code and debugging. Simple tracing exercises can be used to test understanding of programming language constructs and program execution. We present results from an international study of student competence in tracing program code in the end of their first programming course. The results highlight that while students are expected to have elementary skills in program construction, some of them lack knowledge of execution of programs of the same difficulty. The effect of students' annotations and solving strategies on tracing performance was analyzed further. Tracing exercises can also be used to test understanding of data structures and algorithms. Visual algorithm simulation is a method in which a student manipulates data structure visualizations with a mouse, trying to simulate the steps of a given algorithm. A successful simulation is evidence of understanding the core concepts of that algorithm. Automatic assessment and delivery of visual algorithm simulation problems is implemented in the tool TRAKLA2. In this thesis we present a technique that improves TRAKLA2's assessment, trying to interpret errors in student simulations using information on known misconceptions and by simulating careless errors. Another topic studied in this thesis is whether mutation testing can be applied to evaluating the adequacy of software tests made by students. In mutation testing the effectiveness of a test suite in discovering errors is evaluated by seeding errors into the program under test. A well constructed test suite should find most such errors quite easily. Code coverage analysis, the method used in available assessment platforms, can yield results that give the students false understanding of the quality of their testing. Feedback from programming exercises assessed by unit tests has traditionally been in the form of text. Explaining more complicated object hierarchies textually can be complicated to understand. The last topic covered is using visualization to convey information either in a domain specific visual format or in a form of a generic visualization. An empirical study of student performance comparing the two types of input against detailed textual feedback is presented as a part of the thesis.Väitöskirjassa käsitellään ohjelmoinnin opetuksessa käytettäviä arviointimenetelmiä yliopisto-opetuksessa. Motivaationa työlle on kehittää nykyisiä menetelmiä tuottamaan yksityiskohtaisempaa tai olennaisesti uudentyyppistä informaatiota, jonka pohjalta opiskelijoille voitaisiin antaa korkealaatuisempaa palautetta. Yksi keskeisistä teemoista työssa on ohjelmakoodin lukemisen ja mentaalisesti simuloidun koodisuorituksen (jäljitys, tracing) soveltaminen ohjelmoitaessa. Jäljitys on keskeinen taito sekä ohjelmakoodin tuottamisen, ymmärtämisen, että virheiden korjaamisen kannalta. Jäljitystehtäviä voidaan käyttää ohjelmakoodin ja sen suorituksen ymmärtämisen arvioinnissa. Väitöskirjassa esitetään tuloksia kansainvälisestä tutkimuksesta, jossa opiskelijoilla, joiden oletetaan pystyvän rakentamaan toimivia ohjelmia, todettiin olevan vaikeuksia simuloida monimutkaisuudeltaan samankaltaisen koodin suoritusta. Lisäksi tutkittiin opiskelijan käyttämien apumerkintöjen ja ratkaisustrategioiden vaikutusta jäljitykseen. Jäljitystehtäviä voidaan käyttää myös tietorakenne- ja algoritmitietouden mittaukseen. Visuaalinen algoritmisimulaatio on menetelmä, jossa opiskelija manipuloi hiirellä tietorakennevisualisaatioita yrittäen simuloida jonkin algoritmin toimintaa. Onnistunut simulaatio osoittaa ymmärrystä algoritmin toimintaperiaatteista. Algoritmisimulaatiotehtävien jakelu ja automaattinen tarkastus on toteutettu TRAKLA2 työkalussa. Väitöskirjassa esitellään parannus TRAKLA2:n arvostelualgoritmeihin, joka pyrkii tulkitsemaan opiskelijoiden virheitä tunnettujen väärinkäsitysten ja huolimattomuusvirheiden kautta. Väitöskirjassa tutkitaan lisäksi voitaisiinko mutaatiotestausta käyttää opiskelijoiden tuottamien yksikkötestien arviointiin. Mutaatiotestauksessa testien riittävyyttä arvioidaan kylvämällä satunnaisvirheitä ohjelmaan ja kokeilemalla löytääkö testijoukko nämä virheet. Hyvin rakennettu testisetti löytää pääosan tällaisistä virheistä. Koodikattavuusanalyysi, yleisemmin käytetty riittävyyden mitta, voi tuottaa arvostelukäytössä valheellisen positiivisia tuloksia. Yksikkötesteillä tuotettu palaute on perinteisesti annettu opiskelijalle tekstimuotoisena. Monimutkaisempien oliohierarkioiden kuvaaminen sanallisesti johtaa helposti hankalasti ymmärrettävään lopputulokseen. Väitöskirjassa tutkitaan vielä voitaisiinko tämäntyyppistä palautetta antaa visuaalisessa muodossa. Kahden eri visualisaatiotyypin ja sanallisen palautteen vaikutusta tehtävien ratkontaan tutkittiin empiirisessä kokeessa.Description
Supervising professor
Malmi, Lauri, ProfessorThesis advisor
Korhonen, Ari, D.Sc (Tech)Keywords
teaching programming, tracing program code, visual algorithm simulation, automated assessment, visual feedback, testing, mutation analysis, ohjelmoinnin opetus, ohjelmakoodin suorituksen simulointi, visuaalinen algoritmisimulaatio, automaattinen arviointi, visuaalinen palaute, testaus, mutaatiotestaus
Parts
- [Publication 1]: Lauri Malmi, Ville Karavirta, Ari Korhonen, Jussi Nikander, Otto Seppälä, Panu Silvasti. Visual Algorithm Simulation Exercise System with Automatic Assessment: TRAKLA2. Informatics in Education, 3(2) pages 267-289, 2004.
- [Publication 2]: Raymond Lister, Elizabeth S. Adams, Sue Fitzgerald, William Fone, John Hamer, Mårten Lindholm, Robert McCartney, Jan Erik Moström, Kate Sanders, Otto Seppälä, Beth Simon, Lynda Thomas. A Multi-National Study of Reading and Tracing Skills in Novice Programmers. SIGCSE Bulletin, 36(4), pages 119-150, 2004.
- [Publication 3]: Robert McCartney, Jan Erik Moström, Kate Sanders, Otto Seppälä. Take Note: the Effectiveness of Novice Programmers' Annotations on Examinations. Informatics in Education, 4(1), pages 69-86, 2005.
- [Publication 4]: Otto Seppälä, Lauri Malmi, and Ari Korhonen. Observations on Student Misconceptions : A Case Study of the Build-Heap Algorithm. Computer Science Education, 16(3), pages 241-255, September 2006.
- [Publication 5]: Otto Seppälä. Modelling Student Behavior in Algorithm Simulation Exercises with Code Mutation. In Proceedings of the 6th Annual Finnish / Baltic Sea Conference on Computer Science Education, pages 109-114, November 2006.
- [Publication 6]: Petri Ihantola, Tuukka Ahoniemi, Ville Karavirta and Otto Seppälä. Review of Recent Systems for Automatic Assessment of Programming Assignments. In Proceedings of the 10th Koli Calling International Conference on Computing Education Research, pages 86-93, 2010.
- [Publication 7]: Kalle Aaltonen, Petri Ihantola and Otto Seppälä. Mutation Analysis vs. Code Coverage in Automated Assessment of Students' Testing Skills. In Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion (SPLASH '10), pages 153-160, 2010.
- [Publication 8]: Petri Ihantola, Ville Karavirta and Otto Seppälä. Automated Visual Feedback from Programming Assignments. In Proceedings of the 6th Program Visualization Workshop (PVW'11), Darmstadt, Germany, pages 87-95, 2011.