Supporting Acquisition of Programming Skills in Introductory Programming Education: Environments for Practicing Programming and Recording and Analysis of Exercise Sessions

dc.contributorAalto-yliopistofi
dc.contributorAalto Universityen
dc.contributor.advisorIhantola, Petri, D.Sc. (Tech), Aalto University, Department of Computer Science and Engineering, Finland
dc.contributor.advisorKaravirta, Ville, D.Sc. (Tech), Aalto University, Department of Computer Science and Engineering, Finland
dc.contributor.authorHelminen, Juha
dc.contributor.departmentTietotekniikan laitosfi
dc.contributor.departmentDepartment of Computer Science and Engineeringen
dc.contributor.labLearning + Technology Group (LeTech)en
dc.contributor.schoolPerustieteiden korkeakoulufi
dc.contributor.schoolSchool of Scienceen
dc.contributor.supervisorMalmi, Lauri, Prof., Aalto University, Department of Computer Science and Engineering, Finland
dc.date.accessioned2014-05-22T09:00:08Z
dc.date.available2014-05-22T09:00:08Z
dc.date.dateaccepted2014-04-23
dc.date.defence2014-06-06
dc.date.issued2014
dc.description.abstractThe work in this thesis falls under two themes. First, we have experimented with a number of novel tools to lower the barrier to start practicing programming skills. Specifically, we present experiences on using Python novice environments that reduce the complexity of getting started with practicing programming in the following two ways. First, only a limited set of key functionality is provided in an integrated exercise environment. Second, only web technologies are used to improve portability and ease of access. Additionally, we present experiences on using a special type of program construction exercises, as well as, improvements to the automated feedback provided in these exercises. Finally, we present an application for practicing Python programming on mobile touch devices that is based on these exercises. As for the second theme, we have carried out automated recording of students' exercise sessions and explored what can be learned from such data. Particularly, we show how to visualize program construction exercise sessions as a graph in order to reveal common patterns and anomalies. We identified two overall patterns of constructing programs: line-by-line and control structures first. We also identified behavior that seems to be indicative of difficulties: backtracking, going in circles, and excessive, trial-and-error use of feedback. Additionally, we use this type of data to evaluate the effect of different types of feedback in program construction exercises. Students who received execution-based feedback needed on average more steps and took longer to solve an exercise than those who got line-based feedback. On the other hand, execution-based feedback was requested less frequently and the respective code was more commonly executable. Finally, we make use of automatically recorded data on programming sessions to identify and quantify how students use an interactive Python console, as well as, to study how frequently and which kinds of execution errors they encounter. Students made use of the console both for testing their code and for exploring language features. A variety of error types were observed while only a minority of those accounted for the majority of occurrences. As the key results of this thesis, many of the studied approaches to supporting the acquisition of programming skills have been successfully used on programming courses together with automated recording of exercise sessions that, in turn, has been made use of to identify and quantify common patterns and difficulties for the benefit of teaching and education research.en
dc.description.abstractVäitöskirjan työ jakautuu kahden teeman alle. Ensinnäkin työssä on tutkittu ohjelmoinnin harjoittelun aloittamiskynnyksen madaltamista uudenlaisilla ohjelmatyökaluilla. Työssä esitetään kokemuksia sellaisista aloittelijan Python-ympäristöistä, jotka vähentävät ohjelmoinnin harjoittelun aloittamisen mutkikkuutta seuraavalla kahdella tavalla.Ensinnäkin näissä tarjotaan vain rajallinen määrä avaintoimintoja integroidussa harjoitusympäristössä. Toisekseen näissä käytetään vain web-teknologioita siirrettävyyden ja käytön helpottamiseksi. Lisäksi työssä esitetään kokemuksia uudenlaisten ohjelman rakennustehtävien opetuskäytöstä sekä parannuksia näissä annettavaan automaattiseen palautteeseen. Työssä esitetään myös näihin tehtäviin perustuva sovellus Python-ohjelmoinnin harjoitteluun kosketusnäytöllisillä mobiililaitteilla. Opiskelijoiden työskentelyä on myös tallennettu automatisoidusti ja tutkittu mitä tällaisesta datasta voi oppia. Työssä näytetään kuinka rakennustehtävien ratkomista voidaan havainnollistaa verkkona, jotta saadaan näkyville yleisiä malleja ja poikkeavuuksia. Työssä tunnistetaan kaksi yleismallia rakentamiselle: rivi kerrallaan ja kontrollirakenteet ensin. Myös vaikeuksiin viittaavaa käyttäytymistä havaittiin: peruuttaminen, ympyrää kiertäminen ja liiallinen, yritys ja erehdys -tyyppinen palautteen käyttö. Tämäntyyppistä dataa käytetään myös ohjelman rakennustehtävien erityyppisten palautteiden vaikutuksen arviointiin. Opiskelijat, jotka saivat suorituspohjaista palautetta, tarvitsivat keskimäärin enemmän askeleita ja käyttivät enemmän aikaa tehtävän ratkaisemiseen kuin ne, jotka saivat rivipohjaista palautetta. Toisaalta suorituspohjaista palautetta pyydettiin harvemmin ja vastaava ohjelmakoodi oli useammin suoritettavissa. Ohjelmointiharjoittelusta automatisoidusti tallennettua dataa hyödynnettiin sen tunnistamisessa ja kvantifioinnissa kuinka opiskelijat käyttävät interaktiivista Python-konsolia sekä suoritusvirheiden tutkimisessa. Opiskelijat hyödynsivät konsolia sekä koodinsa testaamiseen että kielen ominaisuuksien tutkimiseen. Vaihtelevia virhetyyppejä havaittiin, mutta pieni joukko yleisimpiä virhetyyppejä kattoi enemmistön esiintymistä. Väitöskirjan päätulos on, että monia tutkittuja lähestymistapoja ohjelmointitaitojen kehittämisen tukemiseen on onnistuneesti käytetty ohjelmointikursseilla yhdessä automatisoidun työskentelyn tallentamisen kanssa, jota vuorostaan on hyödynnetty yleisten mallien ja vaikeuksien tunnistamisessa sekä kvantifioinnissa opetuksen ja opetustutkimuksen edistämiseksi.fi
dc.format.extent116 + app. 64
dc.format.mimetypeapplication/pdfen
dc.identifier.isbn978-952-60-5688-3 (electronic)
dc.identifier.isbn978-952-60-5687-6 (printed)
dc.identifier.issn1799-4942 (electronic)
dc.identifier.issn1799-4934 (printed)
dc.identifier.issn1799-4934 (ISSN-L)
dc.identifier.urihttps://aaltodoc.aalto.fi/handle/123456789/13159
dc.identifier.urnURN:ISBN:978-952-60-5688-3
dc.language.isoenen
dc.opnBrusilovsky, Peter, Prof., University of Pittsburgh, USA
dc.publisherAalto Universityen
dc.publisherAalto-yliopistofi
dc.relation.haspart[Publication 1]: Juha Helminen and Lauri Malmi. Jype – A Program Visualization and Programming Exercise Tool for Python. In Proceedings of the ACM Symposium on Software Visualization (SOFTVIS’10), Salt Lake City, Utah, USA, pages 153–162, October 2010. doi:10.1145/1879211.1879234.
dc.relation.haspart[Publication 2]: Juha Helminen, Petri Ihantola, Ville Karavirta, and Lauri Malmi. How Do Students Solve Parsons Programming Problems? – An Analysis of Interaction Traces. In Proceedings of the Eighth Annual International Computing Education Research Conference (ICER ’12), Auckland, New Zealand, pages 119–126, September 2012. doi:10.1145/2361276.2361300.
dc.relation.haspart[Publication 3]: Ville Karavirta, Juha Helminen, and Petri Ihantola. A Mobile Learning Application for Parsons Problems with Automatic Feedback. In Proceedings of the 12th Koli Calling International Conference on Computing Education Research (Koli Calling ’12), Tahko, Finland, pages 11–18, November 2012. doi:10.1145/2401796.2401798.
dc.relation.haspart[Publication 4]: Juha Helminen, Petri Ihantola, Ville Karavirta, and Satu Alaoutinen. How Do Students Solve Parsons Programming Problems? – Execution-Based vs. Line-Based Feedback. In Proceedings of the International Conference on Learning and Teaching in Computing and Engineering (LaTiCE ’13), Macau, China, pages 55–61, March 2013. doi:10.1109/LaTiCE.2013.26.
dc.relation.haspart[Publication 5]: Juha Helminen, Petri Ihantola, and Ville Karavirta. Recording and Analyzing In-Browser Programming Sessions. In Proceedings of the 13th Koli Calling International Conference on Computing Education Research (Koli Calling ’13), Koli, Finland, pages 13–22, November 2013. doi:10.1145/2526968.2526970.
dc.relation.haspart[Publication 6]: Petri Ihantola, Juha Helminen, and Ville Karavirta. How to Study Programming on Mobile Touch Devices – Interactive Python Code Exercises. In Proceedings of the 13th Koli Calling International Conference on Computing Education Research (Koli Calling ’13), Koli, Finland, pages 51–58, November 2013. doi:10.1145/2526968.2526974.
dc.relation.ispartofseriesAalto University publication series DOCTORAL DISSERTATIONSen
dc.relation.ispartofseries69/2014
dc.revBen-Ari, Mordechai, Prof., Weizmann Institute of Science, Israel
dc.revJoy, Mike, Associate Prof., University of Warwick, UK
dc.subject.keywordintroductory programming educationen
dc.subject.keywordautomated assessmenten
dc.subject.keywordprogram visualizationen
dc.subject.keywordnovice programming environmenten
dc.subject.keywordprogram construction exerciseen
dc.subject.keywordmobile learningen
dc.subject.keywordprogramming processen
dc.subject.keywordprogramming sessionen
dc.subject.keywordohjelmoinnin perusopetusfi
dc.subject.keywordautomaattinen arviointifi
dc.subject.keywordohjelmavisualisaatiofi
dc.subject.keywordaloittelijan ohjelmointiympäristöfi
dc.subject.keywordohjelman rakennustehtäväfi
dc.subject.keywordmobiilioppiminenfi
dc.subject.keywordohjelmointiprosessifi
dc.subject.keywordohjelmointisessiofi
dc.subject.otherComputer scienceen
dc.subject.otherEducationen
dc.titleSupporting Acquisition of Programming Skills in Introductory Programming Education: Environments for Practicing Programming and Recording and Analysis of Exercise Sessionsen
dc.titleOhjelmointitaitojen kehittämisen tukeminen ohjelmoinnin perusopetuksessa: ohjelmoinnin harjoitteluympäristöt ja työskentelyn tallentaminen ja analysointifi
dc.typeG5 Artikkeliväitöskirjafi
dc.type.dcmitypetexten
dc.type.ontasotDoctoral dissertation (article-based)en
dc.type.ontasotVäitöskirja (artikkeli)fi
local.aalto.digiauthask
local.aalto.digifolderAalto_64624
Files
Original bundle
Now showing 1 - 1 of 1
No Thumbnail Available
Name:
isbn9789526056883.pdf
Size:
930.96 KB
Format:
Adobe Portable Document Format