Skip to main content

Inferring How Novice Students Learn to Code: Integrating Automated Program Repair with Cognitive Model

  • Conference paper
  • First Online:
Big Data (BigData 2019)

Part of the book series: Communications in Computer and Information Science ((CCIS,volume 1120))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

Notes

  1. 1.

    https://www.educoder.net.

References

  1. 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

    Chapter  Google Scholar 

  2. 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

  3. 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

    Chapter  Google Scholar 

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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)

    Google Scholar 

Download references

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

Authors

Corresponding authors

Correspondence to Yu Liang , Wenjun Wu , Lisha Wu or Meng Wang .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer Nature Singapore Pte Ltd.

About this paper

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics