Skip to main content

An Epistemic Model-Based Tutor for Imperative Programming

  • Conference paper
  • First Online:
Artificial Intelligence in Education (AIED 2021)

Part of the book series: Lecture Notes in Computer Science ((LNAI,volume 12749))

Included in the following conference series:

Abstract

We developed a tutor for imperative programming in C++. It covers algorithm formulation, program design and coding – all three stages involved in writing a program to solve a problem. The design of the tutor is epistemic, i.e., true to real-life programming practice. The student works through all the three stages of programming in interleaved fashion, and within the context of a single code canvas. The student has the sole agency to compose the program and write the code. The tutor uses goals and plans as prompts to scaffold the student through the programming process designed by an expert. It provides drill-down immediate feedback at the abstract, concrete and bottom-out levels at each step. So, by the end of the session, the student is guaranteed to write the complete and correct program for a given problem. We used model-based architecture to implement the tutor because of the ease with which it facilitates adding problems to the tutor. In a preliminary study, we found that practicing with the tutor helped students solve problems with fewer erroneous actions and less time.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 69.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 89.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Gomes, A., Mendes, A.J.: SICAS: interactive system for algorithm development and simulation. In: Computers and Education - Towards an Interconnected Society, pp. 159–166 (2001)

    Google Scholar 

  2. Carlisle, M., Wilson, T., Humphries, J., Hadfield, S.: RAPTOR: a visual programming environment for teaching algorithmic problem solving. ACM SIGCSE Bull. 37(1), 176–180 (2005)

    Article  Google Scholar 

  3. Kumar, A.N.: Model-based reasoning for domain modeling in a web-based intelligent tutoring system to help students learn to debug C++ programs. In: Cerri, S.A., Gouardères, G., Paraguaçu, F. (eds.) ITS 2002. LNCS, vol. 2363, pp. 792–801. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-47987-2_79

    Chapter  MATH  Google Scholar 

  4. Davis, R.: Diagnostic reasoning based on structure and behavior. Artif. Intell. 24, 347–410 (1984)

    Article  Google Scholar 

  5. Reiser, B., Anderson, J., Farrell, R.: Dynamic student modelling in an intelligent tutor for lisp programming. In: Proceedings of the Ninth International Joint Conference on Artificial Intelligence, pp. 8–14 (1985)

    Google Scholar 

  6. Johnson, W.L.: Intention-Based Diagnosis of Errors in Novice Programs. Morgan Kaufman, Palo Alto (1986)

    MATH  Google Scholar 

  7. Bonar, J., Cunningham, R.: BRIDGE: tutoring the programming process, in intelligent tutoring systems: lessons learned. In: Psotka, J., Massey, L., Mutter, S. (eds.) Lawrence Erlbaum Associates, Hillsdale (1988)

    Google Scholar 

  8. Lane, C., VanLehn, K.: Teaching the tacit knowledge of programming to novices with natural language tutoring. Comput. Sci. Educ. 15(3), 183–201 (2005)

    Article  Google Scholar 

  9. Guzdial, M., Hohmann, L., Konneman, M., Walton, C., Soloway, E.: Supporting programming and learning-to-program with an integrated CAD and scaffolding workbench. Interact. Learn. Environ. 6(1&2), 143–179 (1998)

    Google Scholar 

  10. Jin, W.: Pre-programming analysis tutors help students learn basic programming concepts. In: Proceedings of the 39th SIGCSE Technical Symposium on Computer Science Education (SIGCSE 2008), New York, NY, USA, pp. 276–280. Association for Computing Machinery (2008)

    Google Scholar 

  11. Jin, W., Corbett, A., Lloyd, W., Baumstark, L., Rolka, C.: Evaluation of guided-planning and assisted-coding with task relevant dynamic hinting. In: Trausan-Matu, S., Boyer, K.E., Crosby, M., Panourgia, K. (eds.) ITS 2014. LNCS, vol. 8474, pp. 318–328. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-07221-0_40

    Chapter  Google Scholar 

  12. Barr, V., Trytten, D.: Using Turing’s craft Codelab to support CS1 students as they learn to program. ACM Inroads 7(2), 67–75 (2016)

    Google Scholar 

  13. Hu, M., Winikoff, M., Cranefield, S.: A process for novice programming using goals and plans. In: Proceedings of the Fifteenth Australasian Computing Education Conference (ACE 2013), vol. 136, pp. 3–12. Australian Computer Society, Inc. (2013)

    Google Scholar 

  14. Soloway, E.: Learning to program = learning to construct mechanisms and explanations. Commun. ACM 29(9), 850–858 (1986)

    Article  Google Scholar 

  15. 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 (ACE 2018), New York, NY, USA, pp. 53–62. Association for Computing Machinery (2018). https://doi.org/10.1145/3160489.3160492

  16. Keuning, H., Jeuring, J., Heeren, B.: A systematic literature review of automated feedback generation for programming exercises. ACM Trans. Comput. Educ. 19(1), 1–43 (2018)

    Google Scholar 

  17. Le, N.T., Strickroth, S., Gross, S., Pinkwart, N.: A review of AI-supported tutoring approaches for learning programming. In: Nguyen, N., van Do, T., le Thi, H. (eds.) Advanced Computational Methods for Knowledge Engineering, pp. 267–279. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-319-00293-4_20

    Chapter  Google Scholar 

  18. Price, T.W., Brown, N.C., Lipovac, D., Barnes, T., Kölling, M.: Evaluation of a frame-based programming editor. In: Proceedings of the 2016 ACM Conference on International Computing Education Research (ICER 2016), New York, NY, USA, pp. 33–42. Association for Computing Machinery (2016). https://doi.org/10.1145/2960310.2960319

  19. Hooshyar, D., Ahmad, R.B., Yousefi, M., Yusop, F.D., Horng, S.-J.: A flowchart-based intelligent tutoring system for improving problem-solving skills of novice programmers. J. Comput. Assist. Learn. 31(4), 345–361 (2015). https://doi.org/10.1111/jcal.12099

    Article  Google Scholar 

  20. Scott, A., Watkins, M., McPhee, D.: E-learning for novice programmers – a dynamic visualization and problem solving tool. In: 3rd International Conference Information and Communication Technologies: From Theory to Applications, ICTTA, 7–11 April, Damascus, Syria, pp. 1–6 (2008)

    Google Scholar 

  21. Gegg-Harrison, T.S.: Exploiting program schemata in a prolog tutoring system. Ph.d. thesis, Duke University, Durham (1993)

    Google Scholar 

  22. Weragama, D., Reye, J.: Analysing student programs in the PHP intelligent tutoring system. Int. J. Artific. Intell. Edu. 24(2), 162–188 (2014)

    Google Scholar 

  23. Hartanto, B., Reye, J.: CSTutor: an intelligent tutoring system that supports natural learning. In: Proceedings of the Conference on Computer Science Education Innovation and Technology, pp. 19–26 (2013)

    Google Scholar 

  24. Sykes, E.: Design, development and evaluation of the java intelligent tutoring system. Technol. Instr. Cogn. Learn. 8(1), 25–65 (2010)

    Google Scholar 

  25. Holland, J., Mitrovic, A., Martin, B.: J-LATTE: a constraint-based tutor for Java. In: Proceedings of the Conference on Computers in Education, pp. 142–146 (2009)

    Google Scholar 

  26. Gross, S., Pinkwart, N.: Towards an integrative learning environment for java programming. In: Proceedings of the IEEE Conference on Advanced Learning Technologies, pp. 24–28 (2015)

    Google Scholar 

  27. Gerdes, A., Heeren, B., Jeuring, J., Thomas van Binsbergen. , L.: Ask-Elle: an adaptable programming tutor for Haskell giving automated feedback. Int. J. Artif. Intell. Educ. 2016, 1–36 (2016)

    Google Scholar 

  28. Brusilovsky, P., Malmi, L., Hosseini, R., Guerra, J., Sirkiä, T., Pollari-Malmi, K.: An integrated practice system for learning programming in python: design and evaluation. Res. Pract. Technol. Enhanc. Learn. 13(1), 1–40 (2018). https://doi.org/10.1186/s41039-018-0085-9

    Article  Google Scholar 

  29. Chen, S., Morris, S.: Iconic programming for flowcharts. In: Java, Turing, ETC’, Conference on Innovation and Teaching Computer Science Education (ITiCSE), Caparica, Portugal, ACM, pp. 104–107 (2005)

    Google Scholar 

Download references

Acknowledgments

Partial support for this work was provided by the National Science Foundation under grant DUE-1432190.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Amruth N. Kumar .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2021 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Kumar, A.N. (2021). An Epistemic Model-Based Tutor for Imperative Programming. In: Roll, I., McNamara, D., Sosnovsky, S., Luckin, R., Dimitrova, V. (eds) Artificial Intelligence in Education. AIED 2021. Lecture Notes in Computer Science(), vol 12749. Springer, Cham. https://doi.org/10.1007/978-3-030-78270-2_38

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-78270-2_38

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-78269-6

  • Online ISBN: 978-3-030-78270-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics