Review of CSEDM Data and Introduction of Two Public CS1 Keystroke Datasets

##plugins.themes.bootstrap3.article.main##

##plugins.themes.bootstrap3.article.sidebar##

Published Mar 15, 2023
John Edwards Kaden Hart Raj Shrestha

Abstract

Analysis of programming process data has become popular in computing education research and educational
data mining in the last decade. This type of data is quantitative, often of high temporal resolution,
and it can be collected non-intrusively while the student is in a natural setting. Many levels of granularity
can be obtained, such as submission, compilation, edit, and keystroke events, with keystroke-level logs
being the most fine-grained of commonly used dataset types. However, the lack of open datasets, especially
at the keystroke level, is notable. There are several reasons for this failing, with the most prominent
being the challenges of deidentification that are peculiar to keystroke log data. In this paper, we present
the public release of two fully deidentified keystroke datasets that are the first of their kind in terms of
both event and metadata richness. We describe our collection technique and properties of the data along
with deidentification techniques that, while not fully relieving researchers of significant effort, at least
reduce and streamline manual work in hopes that researchers will release similar datasets in the future.

How to Cite

Edwards, J., Hart, K., & Shrestha, R. (2023). Review of CSEDM Data and Introduction of Two Public CS1 Keystroke Datasets. Journal of Educational Data Mining, 15(1), 1–31. https://doi.org/10.5281/zenodo.7646659
Abstract 375 | PDF Downloads 326

##plugins.themes.bootstrap3.article.details##

Keywords

datasets, keystrokes, CS1

References
2022. Title 45, PublicWelfare, Department of Health and Human Services, Part 46, Protection of Human Subjects. https://www.hhs.gov/ohrp/regulations-and-policy/regulations/ 45-cfr-46/revised-common-rule-regulatory-text/index.html#46.102 (accessed 13 April, 2022).

AHADI, A., HELLAS, A., IHANTOLA, P., KORHONEN, A., AND PETERSEN, A. 2016. Replication in computing education research: researcher attitudes and experiences. In Proceedings of the 16th Koli calling International Conference on Computing Education Research. Association for Computing Machinery, 2–11.

AHADI, A., HELLAS, A., AND LISTER, R. 2017. A contingency table derived method for analyzing course data. ACM Transactions on Computing Education (TOCE) 17, 3, 1–19.

AHADI, A., LISTER, R., HAAPALA, H., AND VIHAVAINEN, A. 2015. Exploring machine learning methods to automatically identify students in need of assistance. In ICER ’15: Proceedings of the Eleventh Annual International Conference on International Computing Education Research, J. Sheard and Q. Cutts, Eds. Association for Computing Machinery, 121–130.

AHADI, A., LISTER, R., AND VIHAVAINEN, A. 2016. On the number of attempts students made on some online programming exercises during semester and their subsequent performance on final exam questions. In ITiCSE ’16: Proceedings of the 2016 ACM Conference on Innovation and Technology in Computer Science Education. Association for Computing Machinery, 218–223.

ALLEN, L. K., MILLS, C., JACOVINA, M. E., CROSSLEY, S., D’MELLO, S., AND MCNAMARA, D. S. 2016. Investigating boredom and engagement during writing using multiple sources of information: the essay, the writer, and keystrokes. In LAK16: Proceedings of the sixth International Conference on Learning Analytics & Knowledge. Association for Computing Machinery, 114–123.

ALTADMRI, A. AND BROWN, N. C. 2015. 37 million compilations: Investigating novice programming mistakes in large-scale student data. In SIGCSE ’15: Proceedings of the 46th ACM Technical Symposium on Computer Science Education. Association for Computing Machinery, 522–527.

BARNES, T. AND STAMPER, J. 2008. Toward automatic hint generation for logic proof tutoring using historical student data. In International Conference on Intelligent Tutoring Systems, B. P. Woolf, E. Aïmeur, R. Nkambou, and S. Lajoie, Eds. Springer, 373–382.

BECKER, B. A. 2016. A new metric to quantify repeated compiler errors for novice programmers. In ITiCSE ’16: Proceedings of the 2016 ACM Conference on Innovation and Technology in Computer Science Education. Association for Computing Machinery, 296–301.

BIXLER, R. AND D’MELLO, S. 2013. Detecting boredom and engagement during writing with keystroke analysis, task appraisals, and stable traits. In IUI ’13: Proceedings of the 2013 International Conference on Intelligent User Interfaces. Association for Computing Machinery, 225–234.

BLIKSTEIN, P., WORSLEY, M., PIECH, C., SAHAMI, M., COOPER, S., AND KOLLER, D. 2014. Programming pluralism: Using learning analytics to detect patterns in the learning of computer programming. Journal of the Learning Sciences 23, 4, 561–599.

BRAUGHT, G. AND MIDKIFF, J. 2016. Tool design and student testing behavior in an introductory java course. In SIGCSE ’16: Proceedings of the 47th ACM Technical Symposium on Computing Science Education. Association for Computing Machinery, 449–454.

BROWN, N. C., ALTADMRI, A., SENTANCE, S., AND KÖLLING, M. 2018. Blackbox, five years on: An evaluation of a large-scale programming data collection project. In ICER ’18: Proceedings of the 2018 ACM Conference on International Computing Education Research. Association for Computing Machinery, 196–204.

BROWN, N. C. AND KÖLLING, M. 2020. Blackbox mini-getting started with blackbox data analysis. In SIGCSE ’20: Proceedings of the 51st ACM Technical Symposium on Computer Science Education. Association for Computing Machinery, 1387–1387.

BROWN, N. C. C., KÖLLING, M., MCCALL, D., AND UTTING, I. 2014. Blackbox: A large scale repository of novice programmers’ activity. In SIGCSE ’14: Proceedings of the 45th ACM Technical Symposium on Computer Science Education. Association for Computing Machinery, 223–228.

CARTER, A. S. 2012. Supporting the virtual design studio through social programming environments. In ICER ’13: Proceedings of the ninth annual International Conference on International Computing Education Research. Association for Computing Machinery, 157–158.

CARTER, A. S. AND HUNDHAUSEN, C. D. 2017. Using programming process data to detect differences in students’ patterns of programming. In Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education. Association for Computing Machinery, 105–110.

CARTER, A. S., HUNDHAUSEN, C. D., AND ADESOPE, O. 2015. The normalized programming state model: Predicting student performance in computing courses based on programming behavior. In ICER’15: Proceedings of the Eleventh Annual International Conference on International Computing Education Research. Association for Computing Machinery, 141–150.

CARTER, A. S., HUNDHAUSEN, C. D., AND ADESOPE, O. 2017. Blending measures of programming and social behavior into predictive models of student achievement in early computing courses. ACM Transactions on Computing Education (TOCE) 17, 3, 1–20.

CASTRO-WUNSCH, K., AHADI, A., AND PETERSEN, A. 2017. Evaluating neural networks as a method for identifying students in need of assistance. In SIGCSE’17: Proceedings of the 2017 ACM Technical Symposium on Computer Science Education. Association for Computing Machinery, 111–116.

COLLABORATION, O. S. 2015. Estimating the reproducibility of psychological science. Science 349, 6251, aac4716.

CROW, T., LUXTON-REILLY, A., AND WUENSCHE, B. 2018. Intelligent tutoring systems for programming education: a systematic review. In Proceedings of the 20th Australasian Computing Education Conference. Association for Computing Machinery, 53–62.

DWYL. 2022. List of English Words. https://raw.githubusercontent.com/dwyl/ english-words/master/words_alpha.txt (accessed 14 April, 2022).

EDWARDS, J., DITTON, J., SAINJU, B., AND DAWSON, J. 2020. Different assignments as different contexts: predictors across assignments and outcome measures in cs1. In 2020 Intermountain Engineering, Technology and Computing (IETC). IEEE, 1–6.

EDWARDS, J., DITTON, J., TRNINIC, D., SWANSON, H., SULLIVAN, S., AND MANO, C. 2020. Syntax exercises in CS1. In ICER ’20: Proceedings of the 2020 ACM Conference on International Computing Education Research. Association for Computing Machinery, 216–226.

EDWARDS, J., HART, K., AND WARREN, C. 2022. A practical model of student engagement while programming. In Proceedings of the 2022 ACM SIGCSE Technical Symposium on Computer Science Education. Association for Computing Machinery, 558–564.

EDWARDS, J., LEINONEN, J., BIRTHARE, C., ZAVGORODNIAIA, A., AND HELLAS, A. 2020. Programming versus natural language: On the effect of context on typing in cs1. In ICER’20: Proceedings of the 2020 ACM Conference on International Computing Education Research. Association for Computing Machinery, 204–215.

EDWARDS, J., LEINONEN, J., AND HELLAS, A. 2020. A study of keystroke data in two contexts: Written language and programming language influence predictability of learning outcomes. In SIGCSE ’20: Proceedings of the 51st ACM Technical Symposium on Computer Science Education. Association for Computing Machinery, 413–419.

EDWARDS, S. H., SNYDER, J., PÉREZ-QUIÑONES, M. A., ALLEVATO, A., KIM, D., AND TRETOLA, B. 2009. Comparing effective and ineffective behaviors of student programmers. In ICER’09: Proceedings of the fifth International Workshop on Computing Education Research workshop. Association for Computing Machinery, 3–14.

EPP, C., LIPPOLD, M., AND MANDRYK, R. L. 2011. Identifying emotional states using keystroke dynamics. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems. Association for Computing Machinery, 715–724.

ESTEY, A. AND COADY, Y. 2016. Can interaction patterns with supplemental study tools predict outcomes in cs1? In ITiCSE ’16: Proceedings of the 2016 ACM Conference on Innovation and Technology in Computer Science Education. Association for Computing Machinery, 236–241.

ESTEY, A., KEUNING, H., AND COADY, Y. 2017. Automatically classifying students in need of support by detecting changes in programming behaviour. In SIGCSE’17: Proceedings of the 2017 ACM Technical Symposium on Computer Science Education. Association for Computing Machinery, 189–194.

GAO, G., MARWAN, S., AND PRICE, T. W. 2021. Early performance prediction using interpretable patterns in programming process data. In SIGCSE ’21: Proceedings of the 52nd ACM Technical Symposium on Computer Science Education. Association for Computing Machinery, 342–348.

HELLAS, A., LEINONEN, J., AND IHANTOLA, P. 2017. Plagiarism in take-home exams: help-seeking, collaboration, and systematic cheating. In ITiCSE ’17: Proceedings of the 2017 ACM conference on innovation and technology in computer science education. Association for Computing Machinery, 238–243.

HUNDHAUSEN, C. D., OLIVARES, D. M., AND CARTER, A. S. 2017. Ide-based learning analytics for computing education: a process model, critical review, and research agenda. ACM Transactions on Computing Education (TOCE) 17, 3, 1–26.

IHANTOLA, P., VIHAVAINEN, A., AHADI, A., BUTLER, M., BÖRSTLER, J., EDWARDS, S. H., ISOHANNI, E., KORHONEN, A., PETERSEN, A., RIVERS, K., ET AL. 2015. Educational data mining and learning analytics in programming: Literature review and case studies. Proceedings of the 2015 ITiCSE on Working Group Reports, 41–63.

JADUD, M. C. 2006. Methods and tools for exploring novice compilation behaviour. In ICER ’06: Proceedings of the second International Workshop on Computing Education Research. Association for Computing Machinery, 73–84.

JADUD, M. C. AND DORN, B. 2015. Aggregate compilation behavior: Findings and implications from 27,698 users. In ICER ’15: Proceedings of the Eleventh Annual International Conference on International Computing Education Research. Association for Computing Machinery, 131–139.

KAZEROUNI, A. M., EDWARDS, S. H., HALL, T. S., AND SHAFFER, C. A. 2017. Deveventtracker: Tracking development events to assess incremental development and procrastination. In ITiCSE ’17: Proceedings of the 2017 ACM Conference on Innovation and Technology in Computer Science Education. Association for Computing Machinery, 104–109.

KAZEROUNI, A. M., EDWARDS, S. H., AND SHAFFER, C. A. 2017. Quantifying incremental development practices and their relationship to procrastination. In Proceedings of the 2017 ACM Conference on International Computing Education Research, J. Tenenberg and L. Malmi, Eds. Association for Computing Machinery, 191–199.

KOŁAKOWSKA, A. 2016. Towards detecting programmers’ stress on the basis of keystroke dynamics. In 2016 Federated Conference on Computer Science and Information Systems (FedCSIS), M. Ganzha, L. Maciaszek, and M. Paprzycki, Eds. IEEE, 1621–1626.

KOUTCHEME, C., SARSA, S., HELLAS, A., HAARANEN, L., AND LEINONEN, J. 2022. Methodological considerations for predicting at-risk students. In Australasian Computing Education Conference. Association for Computing Machinery, 105–113.

KOVANOVIC, V., GAŠEVIĆ, D., DAWSON, S., JOKSIMOVIC, S., AND BAKER, R. 2015. Does time-ontask estimation matter? implications on validity of learning analytics findings. Journal of Learning Analytics 2, 3, 81–110.

KRISHNAMOORTHY, S., RUEDA, L., SAAD, S., AND ELMILIGI, H. 2018. Identification of user behavioral biometrics for authentication using keystroke dynamics and machine learning. In ICBEA ’18: Proceedings of the 2018 2nd International Conference on Biometric Engineering and Applications. Association for Computing Machinery, 50–57.

KURVINEN, E., HELLGREN, N., KAILA, E., LAAKSO, M.-J., AND SALAKOSKI, T. 2016. Programming misconceptions in an introductory level programming course exam. In ITiCSE ’16: Proceedings of the 2016 ACM Conference on Innovation and Technology in Computer Science Education. Association for Computing Machinery, 308–313.

LEINONEN, A., NYGREN, H., PIRTTINEN, N., HELLAS, A., AND LEINONEN, J. 2019. Exploring the applicability of simple syntax writing practice for learning programming. In SIGCSE ’19: Proceedings of the 50th ACM Technical Symposium on Computer Science Education. Association for Computing Machinery, 84–90.

LEINONEN, J., CASTRO, F. E. V., AND HELLAS, A. 2021. Does the early bird catch the worm? earliness of students’ work and its relationship with course outcomes. In ITiCSE ’21: Proceedings of the 26th ACM Conference on Innovation and Technology in Computer Science Education V. 1. Association for Computing Machinery, 373–379.

LEINONEN, J., CASTRO, F. E. V., AND HELLAS, A. 2022. Time-on-task metrics for predicting performance. In SIGCSE ’22: Proceedings of the 53rd ACM Technical Symposium on Computer Science Education. Association for Computing Machinery, 871–877.

LEINONEN, J., CASTRO, F. E. V., HELLAS, A., ET AL. 2021. Fine-grained versus coarse-grained data for estimating time-on-task in learning programming. In Proceedings of The 14th International Conference on Educational Data Mining (EDM 2021), S. Hsiao, S. Sahebi, F. Bouchet, and J.-J. Vie, Eds. The International Educational Data Mining Society, 648–653.

LEINONEN, J., LEPPÄNEN, L., IHANTOLA, P., AND HELLAS, A. 2017. Comparison of time metrics in programming. In ICER ’17: Proceedings of the 2017 ACM Conference on International Computing Education Research. Association for Computing Machinery, 200–208.

LEINONEN, J., LONGI, K., KLAMI, A., AHADI, A., AND VIHAVAINEN, A. 2016. Typing patterns and authentication in practical programming exams. In ITiCSE ’16: Proceedings of the 2016 ACM Conference on Innovation and Technology in Computer Science Education. Association for Computing Machinery, 160–165.

LEINONEN, J., LONGI, K., KLAMI, A., AND VIHAVAINEN, A. 2016. Automatic inference of programming performance and experience from typing patterns. In SIGCSE ’16: Proceedings of the 47th ACM Technical Symposium on Computing Science Education. Association for Computing Machinery, 132–137.

LONGI, K., LEINONEN, J., NYGREN, H., SALMI, J., KLAMI, A., AND VIHAVAINEN, A. 2015. Identification of programmers from typing patterns. In Proceedings of the 15th Koli Calling conference on computing education research. Association for Computing Machinery, 60–67.

MCCALL, D. AND KÖLLING, M. 2019. A new look at novice programmer errors. ACM Transactions on Computing Education (TOCE) 19, 4, 1–30.

MIHAESCU, M. C. AND POPESCU, P. S. 2021. Review on publicly available datasets for educational data mining. Wiley Interdisciplinary Reviews: Data Mining and Knowledge Discovery 11, 3, e1403.

MONACO, J. V., PEREZ, G., TAPPERT, C. C., BOURS, P., MONDAL, S., RAJKUMAR, S., MORALES, A., FIERREZ, J., AND ORTEGA-GARCIA, J. 2015. One-handed keystroke biometric identification competition. In 2015 International Conference on Biometrics (ICB). IEEE, 58–64.

MORALES, A. AND FIERREZ, J. 2015. Keystroke biometrics for student authentication: A case study. In ITiCSE ’15: Proceedings of the 2015 ACM Conference on Innovation and Technology in Computer Science Education. Association for Computing Machinery, 337–337.

NGUYEN, Q. 2020. Rethinking time-on-task estimation with outlier detection accounting for individual, time, and task differences. In Proceedings of the Tenth International Conference on Learning Analytics & Knowledge. Association for Computing Machinery, 376–381.

PIECH, C., SAHAMI, M., HUANG, J., AND GUIBAS, L. 2015. Autonomously generating hints by inferring problem solving policies. In L@S ’15: Proceedings of the second (2015) ACM Conference on Larning@ Scale. Association for Computing Machinery, 195–204.

PIECH, C., SAHAMI, M., KOLLER, D., COOPER, S., AND BLIKSTEIN, P. 2012. Modeling how students learn to program. In SIGCSE ’12: Proceedings of the 43rd ACM Technical Symposium on Computer Science Education. Association for Computing Machinery, 153–160.

PRICE, T., ZHI, R., AND BARNES, T. 2017. Evaluation of a data-driven feedback algorithm for openended programming. In Proceedings of The 10th International Conference on Educational Data Mining (EDM 2017), X. Hu, T. Barnes, A. Hershkovitz, and L. Paquette, Eds. International Educational Data Mining Society, 192–197.

PRICE, T. W., DONG, Y., AND LIPOVAC, D. 2017. isnap: towards intelligent tutoring in novice programming environments. In SIGCSE’17: Proceedings of the 2017 ACM Technical Symposium on Computer Science Education. Association for Computing Machinery, 483–488.

PRICE, T. W., HOVEMEYER, D., RIVERS, K., GAO, G., BART, A. C., KAZEROUNI, A. M., BECKER, B. A., PETERSEN, A., GUSUKUMA, L., EDWARDS, S. H., ET AL. 2020. Progsnap2: A flexible format for programming process data. In ITiCSE ’20: Proceedings of the 2020 ACM Conference on Innovation and Technology in Computer Science Education. Association for Computing Machinery, 356–362.

RIVERS, K., HARPSTEAD, E., AND KOEDINGER, K. R. 2016. Learning curve analysis for programming: Which concepts do students struggle with? In ICER ’16: Proceedings of the 2016 ACM Conference on International Computing Education Research. Association for Computing Machinery, 143–151.

RIVERS, K. AND KOEDINGER, K. R. 2017. Data-driven hint generation in vast solution spaces: a self-improving python programming tutor. International Journal of Artificial Intelligence in Education 27, 1, 37–64.

RODRIGUEZ-RIVERA, G., TURKSTRA, J., BUCKMASTER, J., LECLAINCHE, K., MONTGOMERY, S., REED, W., SULLIVAN, R., AND LEE, J. 2022. Tracking large class projects in real-time using finegrained source control. In SIGCSE ’22: Proceedings of the 53rd ACM Technical Symposium on Computer Science Education. Association for Computing Machinery, 565–570.

SHRESTHA, R., LEINONEN, J., HELLAS, A., IHANTOLA, P., AND EDWARDS, J. 2022. Codeprocess charts: Visualizing the process of writing code. In Australasian Computing Education Conference. Association for Computing Machinery, 46–55.

SHRESTHA, R., LEINONEN, J., ZAVGORODNIAIA, A., HELLAS, A., AND EDWARDS, J. 2022. Pausing While Programming: Insights From Keystroke Analysis. In ACM International Conference on Software Engineering (ICSE), Software Engineering Education and Training (SEET) track. Association for Computing Machinery, 187–198.

SMITH, R. AND RIXNER, S. 2019. The error landscape: Characterizing the mistakes of novice programmers. In SIGCSE ’19: Proceedings of the 50th ACM Technical Symposium on Computer Science Education. Association for Computing Machinery, 538–544.

SPACCO, J., DENNY, P., RICHARDS, B., BABCOCK, D., HOVEMEYER, D., MOSCOLA, J., AND DUVALL, R. 2015. Analyzing student work patterns using programming exercise data. In SIGCSE ’15: Proceedings of the 46th ACM Technical Symposium on Computer Science Education. Association for Computing Machinery, 18–23.

THOMAS, R., KENNEDY, G., DRAPER, S., MANCY, R., CREASE, M., EVANS, H., AND GRAY, P. 2003. Generic usage monitoring of programming students. In Proceedings of the 20th Annual Conference of the Australasian Society for Computers in Learning in Tertiary Education, G. Crisp, D. Thiele, I. Scholten, S. Barker, and J. Baron, Eds. Vol. 3. ASCILITE.

THOMAS, R. C., KARAHASANOVIC, A., AND KENNEDY, G. E. 2005. An investigation into keystroke latency metrics as an indicator of programming performance. In Proceedings of the 7th Australasian conference on Computing education-Volume 42, A. Young and D. Tolhurst, Eds. Association for Computing Machinery, 127–134.

TIAM-LEE, T. J. AND SUMI, K. 2019. Analysis and prediction of student emotions while doing programming exercises. In International Conference on Intelligent Tutoring Systems, A. Coy, Y. Hayashi, and M. Chang, Eds. Springer, 24–33.

VIHAVAINEN, A., VIKBERG, T., LUUKKAINEN, M., AND PÄRTEL, M. 2013. Scaffolding students’ learning using test my code. In ITiCSE ’13: Proceedings of the 18th ACM Conference on Innovation and Technology in Computer Science Education. Association for Computing Machinery, 117–122.

VINKER, E. AND RUBINSTEIN, A. 2022. Mining code submissions to elucidate disengagement in a computer science mooc. In LAK22: 12th International Learning Analytics and Knowledge Conference. Association for Computing Machinery, 142–151.

VIZER, L. M., ZHOU, L., AND SEARS, A. 2009. Automated stress detection using keystroke and linguistic features: An exploratory study. International Journal of Human-Computer Studies 67, 10, 870–886.

WARREN, J., RIXNER, S., GREINER, J., AND WONG, S. 2014. Facilitating human interaction in an online programming course. In SIGCSE ’14: Proceedings of the 45th ACM Technical Symposium on Computer Science Education. Association for Computing Machinery, 665–670.

WATSON, C., LI, F. W., AND GODWIN, J. L. 2013. Predicting performance in an introductory programming course by logging and analyzing student programming behavior. In 2013 IEEE 13th International Conference on Advanced Learning Technologies (ICALT). IEEE, 319–323.

YAN, L., HU, A., AND PIECH, C. 2019. Pensieve: Feedback on coding process for novices. In SIGCSE ’19: Proceedings of the 50th ACM Technical Symposium on Computer Science Education. Association for Computing Machinery, 253–259.

ZAVGORODNIAIA, A., SHRESTHA, R., LEINONEN, J., HELLAS, A., AND EDWARDS, J. 2021. Morning or evening? an examination of circadian rhythms of cs1 students. In 2021 IEEE/ACM 43rd International Conference on Software Engineering: Software Engineering Education and Training (ICSESEET). IEEE, 261–272.
Section
Special Issue on CSEDM: Educational Data Mining for Computing Education