Abstract
Learning to code on Massive Open Online Courses (MOOCs) has become more and more popular among novice students while inferring how the students learn programming on MOOCs is a challenging task. To solve this challenge, we build a novel Intelligent Programming Tutor (IPT) which integrates the Automated Program Repair (APR) and student cognitive model. We improve an efficient APR engine, which can not only obtain repair results but also identify the types of programming errors. Based on APR, we extend the Conjunctive Factor Model (CFM) by using programming error classification as cognitive skill representation to support the student cognitive model on learning programming. We validate our IPT with the real dataset collected from a Python programming course. The results show that compared with the original CFM, our model can represent programming learning outcomes of students and predict their future performance more reliably. We also compare our student cognitive model with the state-of-the-art Deep Knowledge Tracing (DKT) model. Our model requires less training data and is higher interpretable than the DKT model.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
References
Cen, H., Koedinger, K., Junker, B.: Comparing two IRT models for conjunctive skills. In: Woolf, B.P., Aïmeur, E., Nkambou, R., Lajoie, S. (eds.) ITS 2008. LNCS, vol. 5091, pp. 796–798. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-69132-7_111
Crow, T., Luxton-Reilly, A., Wuensche, B.: Intelligent tutoring systems for programming education: a systematic review. In: Proceedings of the 20th Australasian Computing Education Conference, pp. 53–62. ACM Press, Brisbane (2018). https://doi.org/10.1145/3160489.3160492
D’Antoni, L., Samanta, R., Singh, R.: Qlose: program repair with quantitative objectives. In: Chaudhuri, S., Farzan, A. (eds.) CAV 2016. LNCS, vol. 9780, pp. 383–401. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-41540-6_21
Gulwani, S., Radicek, I., Zuleger, F.: Automated clustering and program repair for introductory programming assignments. In: Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 465–480. ACM Press, Philadelphia (2018). https://doi.org/10.1145/3192366.3192387
Kasurinen, J., Nikula, U.: Estimating programming knowledge with Bayesian knowledge tracing. In: Proceedings of the 14th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education, pp. 313–317. ACM Press, Paris (2009). https://doi.org/10.1145/1562877.1562972
Long, F., Rinard, M.: Automatic patch generation by learning correct code. In: Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 298–312. ACM Press, St. Petersburg (2016). https://doi.org/10.1145/2837614.2837617
Mechtaev, S., Yi, J., Roychoudhury, A.: Angelix: scalable multiline program patch synthesis via symbolic analysis. In: Proceedings of the 38th International Conference on Software Engineering, pp. 691–701. ACM Press, Austin (2016). https://doi.org/10.1145/2884781.2884807
Nesbit, J.C., Adesope, O.O., Liu, Q., Ma, W.: How effective are intelligent tutoring systems in computer science education? In: Proceedings of the 14th IEEE International Conference on Advanced Learning Technologies, pp. 99–103. IEEE Computer Society, Athens (2014). https://doi.org/10.1109/ICALT.2014.38
Piech, C., Sahami, M., Koller, D., Cooper, S., Blikstein, P.: Modeling how students learn to program. In: Proceedings of the 43rd ACM Technical Symposium on Computer Science Education, pp. 153–160. ACM Press, Raleigh (2012). https://doi.org/10.1145/2157136.2157182
Rivers, K., Harpstead, E., Koedinger, K.R.: Learning curve analysis for programming: which concepts do students struggle with? In: Proceedings of the 2016 ACM Conference on International Computing Education Research, pp. 143–151. ACM Press, Melbourne (2016). https://doi.org/10.1145/2960310.2960333
Singh, R., Gulwani, S., Solar-Lezama, A.: Automated feedback generation for introductory programming assignments. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 15–26. ACM Press, Seattle (2013). https://doi.org/10.1145/2491956.2462195
Wang, L., Sy, A., Liu, L., Piech, C.: Deep knowledge tracing on programming exercises. In: Proceedings of the Fourth ACM Conference on Learning @ Scale, pp. 201–204. ACM Press, Cambridge (2017). https://doi.org/10.1145/3051457.3053985
Yi, J., Ahmed, U.Z., Karkare, A., Tan, S.H., Roychoudhury, A.: A feasibility study of using automated program repair for introductory programming assignments. In: Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering, pp. 740–751. ACM Press, Paderborn (2017). https://doi.org/10.1145/3106237.3106262
Yudelson, M., Hosseini, R., Vihavainen, A., Brusilovsky, P.: Investigating automated student modeling in a Java MOOC. In: Proceedings of the 7th International Conference on Educational Data Mining, pp. 261–264. International Educational Data Mining Society (IEDMS), London (2014)
Acknowledgments
This work is supported in part by the National Key Research and Development Program of China (Funding No. 2018YFB1004502), the National Natural Science Foundation of China (Grant No. 61532004) and the State Key Laboratory of Software Development Environment (Funding No. SKLSDE-2017ZX-03).
Author information
Authors and Affiliations
Corresponding authors
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Singapore Pte Ltd.
About this paper
Cite this paper
Liang, Y., Wu, W., Wu, L., Wang, M. (2019). Inferring How Novice Students Learn to Code: Integrating Automated Program Repair with Cognitive Model. In: Jin, H., Lin, X., Cheng, X., Shi, X., Xiao, N., Huang, Y. (eds) Big Data. BigData 2019. Communications in Computer and Information Science, vol 1120. Springer, Singapore. https://doi.org/10.1007/978-981-15-1899-7_4
Download citation
DOI: https://doi.org/10.1007/978-981-15-1899-7_4
Published:
Publisher Name: Springer, Singapore
Print ISBN: 978-981-15-1898-0
Online ISBN: 978-981-15-1899-7
eBook Packages: Computer ScienceComputer Science (R0)