Keystroke Data in Programming Courses

Show full item record

Permalink

http://urn.fi/URN:ISBN:978-951-51-5604-4
Title: Keystroke Data in Programming Courses
Author: Leinonen, Juho
Contributor: University of Helsinki, Faculty of Science, Department of Computer Science
Doctoral Programme in Computer Science
Publisher: Helsingin yliopisto
Date: 2019-11-20
Belongs to series: Department of Computer Science, Series of Publications A - URN:ISSN:1238-8645
URI: http://urn.fi/URN:ISBN:978-951-51-5604-4
http://hdl.handle.net/10138/306786
Thesis level: Doctoral dissertation (article-based)
Abstract: Data collected from the learning process of students can be used to improve education in many ways. Such data can benefit multiple stakeholders of a programming course. Data about students’ performance can be used to detect struggling students who can then be given additional support benefiting the student. If data shows that students have to read a certain section of the material multiple times, it could indicate either that that section is possibly more important than others, or it might be unclear and could be improved, which benefits the teacher. Data collected through surveys can yield insight into students’ motivations for studying. Ultimately, data can increase our knowledge of how students learn benefiting educational researchers. Different kinds of data can be collected in online courses. In programming courses, data is typically collected from tools that are specifically made for learning programming. These tools include Integrated Development Environments (IDEs), program visualization tools, automatic assessment tools, and online learning materials. The granularity of data collected from such tools varies. Fine-grained data is data that is collected frequently, while coarse-grained data is collected less frequently. In a programming course, coarse-grained data might include students’ submissions to exercises, whereas fine-grained data might include students’ actions within the IDE such as editing source code. An example of extremely fine-grained data is keystroke data, which typically includes each key pressed while typing together with a timestamp that tells when exactly the key was pressed. In this work, we study what benefits there are to collecting keystroke data in programming courses. We explore different aspects of keystroke data that could be useful for research and to students and educators. This is studied by conducting multiple quantitative experiments where information about students’ learning or the students themselves is inferred from keystroke data. Most of the experiments are based on examining how fast students are at typing specific character pairs. The results of this thesis show that students can be uniquely identified solely based on their typing whilst they are programming. This information could be used in online courses to verify that the same student completes all the assignments. Excessive collaboration can also be detected automatically based on the processes students take to reach a solution. Additionally, students’ programming experience and future performance in an exam can be inferred from typing, which could be used to detect struggling students. Inferring students’ programming experience is possible even when data is made less accurate so that identifying individuals is no longer feasible.Näppäilydataa voidaan kerätä, kun ihminen kirjoittaa näppäimistöllä. Tässä väitöskirjassa tutkitaan, miten ohjelmointikursseilla kerättyä näppäilydataa voidaan käyttää opetuksen parantamiseen. Tutkimuksessa keskitytään erityisesti hienojakoisen näppäilydatan käyttötarkoituksiin, jotka eivät ole mahdollisia vähemmän hienojakoisella datalla, kuten tehtäväpalautuksilla. Tutkimustulosten perusteella näppäilydatasta voidaan sekä ennustaa opiskelijoiden tulevaa pärjäämistä kokeessa että heidän mahdollista aiempaa ohjelmointikokemustaan. Tulevan pärjäämisen ennustamista voidaan esimerkiksi käyttää lisäopetusta tarvitsevien opiskelijoiden havaitsemiseen. Aiemman ohjelmointikokemuksen arviointia voidaan taas käyttää esimerkiksi kurssin alussa tunnistamaan opiskelijoita, jotka voisivat hypätä helpoimpien tehtävien yli. Näppäilydatasta voidaan tunnistaa ohjelmakoodia kirjoittava opiskelija perustuen näppäilyrytmiin. Opetuksessa tätä voidaan käyttää etäkursseilla varmistamaan, että opiskelijan vastaukset ovat hänen itsensä kirjoittamia. Tämä on erityisen tärkeää kursseilla, joissa koe järjestetään täysin etänä. Näppäilydataa voidaan käyttää ohjelmointiprosessin tarkasteluun, jolloin liiallista yhteistyötä sekä esimerkiksi tehtävien kopiointia voidaan tunnistaa automaattisesti. Koska opiskelijan voi tunnistaa näppäilydatasta, näppäilydataa ei voida jakaa suoraan avoimena datana. Väitöskirjassa tarkastellaan näppäilydatan anonymisointia ja pohditaan siihen liittyvää yksityisyyttä. Väitöskirjan tulosten perusteella näppäilydataa voi anonymisoida niin, että yksittäistä opiskelijaa ei voi enää luotettavasti tunnistaa näppäilyrytmiin perustuen, mutta heidän aiempi ohjelmointikokemuksensa on yhä pääteltävissä datasta. Tällöin datasta on yhä hyötyä tutkijoille, mutta datassa olevien opiskelijoiden yksityisyys on paremmin suojattu.
Subject: Computer Science
Rights: This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.


Files in this item

Total number of downloads: Loading...

Files Size Format View
Keystrok.pdf 363.4Kb PDF View/Open

This item appears in the following Collection(s)

Show full item record