







Vol.4 , No. 2, Publication Date: Jun. 13, 2017, Page: 16-23
[1] | Hieu Bui, Faculty of Information Technology, Ho Chi Minh City University of Transport, Ho Chi Minh City, Vietnam. |
The ability to write code accurately and fluently is a core competency for every engineering student. Introductory programming is an essential part of the curriculum in any engineering discipline in universities. However, for many beginning students, it is very difficult to learn. In particular, these students often get stuck and frustrated when attempting to solve programming exercises. One way to assist beginning programmers to overcome difficulties in learning to program is to use intelligent tutoring systems (ITSs) for programming, which can provide students with personalized hints of students’ solving process in programming exercises. Our goal in this paper is to review and classify analysis techniques that are requested to generate data-driven hints in ITSs for programming. The classification of Data-Driven Hint Generation is the main contribution of this paper. The paper also proposes several future research directions.
Keywords
Intelligent Tutoring System, Intelligent Programming Tutor, Programming Tutor, Programming Tutoring System, Data-Driven Hint Generation, Programming Exercises
Reference
[01] | L. Nguyen-Thinh, “Analysis Techniques for Feedback-Based Educational Systems for Programming,” In Proceedings of the 4th International Conference on Computer Science, Applied Mathematics and Applications, ICCSAMA 2016, pp. 141-152, 2016. |
[02] | Chughtai, Rehman, S. Zhang, and Scotty D. Craig, "Usability evaluation of intelligent tutoring system ITS from a usability perspective," In Proceedings of the Human Factors and Ergonomics Society Annual Meeting, 59(1), pp. 367-371, 2015. |
[03] | K. VanLehn, "The relative effectiveness of human tutoring, intelligent tutoring systems, and other tutoring systems," Journal of Educational Psychologist 46(4), pp. 197-221, 2011. |
[04] | M. Gómez-Albarrán, "The teaching and learning of programming: a survey of supporting software tools, " The Computer Journal 48(2), p.p.130-144, 2005. |
[05] | Jin, Wei, T. Barnes, J. Stamper, M. J. Eagle, Matthew W. Johnson, and L. Lehmann, "Program representation for automatic hint generation for a data-driven novice programming tutor," International Conference on Intelligent Tutoring Systems, pp. 304-309, 2012. |
[06] | L. Timotej and I. Bratko, "Data-driven program synthesis for hint generation in programming tutors," International Conference on Intelligent Tutoring Systems, pp. 306-311, 2014. |
[07] | R. Kelly and K. R. Koedinger, "Data-driven hint generation in vast solution spaces: a self-improving python programming tutor," International Journal of Artificial Intelligence in Education, p.p.1-28, 2015. |
[08] | P. Thomas and T. Barnes, "Creating data-driven feedback for novices in goal-driven programming projects," International Conference on Artificial Intelligence in Education, pp. 856-859, 2015. |
[09] | P. Thomas and T. Barnes, "An Exploration of Data-Driven Hint Generation in an Open-Ended Programming Problem," Educational Data Mining (Workshops), 2015. |
[10] | P. Chris, M. Sahami, J. Huang and L. Guibas, "Autonomously generating hints by inferring problem solving policies," Proceedings of the Second ACM Conference on Learning@ Scale, pp. 195-204, 2015. |
[11] | G. Alex, B. Heeren, J. Jeuring and L. Binsbergen, "Ask-Elle: an adaptable programming tutor for Haskell giving automated feedback," International Journal of Artificial Intelligence in Education, pp. 1-36, 2016. |
[12] | P. Thomas, Y. Dong and T. Barnes, "Generating data-driven hints for open-ended programming," Proceedings of the 9th International Conference on Educational Data Mining, International Educational Data Mining Society, pp. 191-198, 2016. |
[13] | P. Benjamin, J. Jensen and B. Hammer, "Execution Traces as a Powerful Data Representation for Intelligent Tutoring Systems for Programming," Proceedings of the 9th International Conference on Educational Data Mining, 2016. |
[14] | F. Paul, I. Watson and P. Denny, "Inferring Student Coding Goals Using Abstract Syntax Trees," International Conference on Case-Based Reasoning, pp. 139-153, 2016. |
[15] | W. B. Park, Building intelligent interactive tutors: Student-centered strategies for revolutionizing e-learning, Morgan Kaufmann, 2010. |
[16] | L. R. Maria and T. T. Chen, "Digital creativity: Research themes and framework," Journal of Computers in Human Behavior 42, pp. 12-19, 2015. |
[17] | S. G. Soares and J. Jorge, "Interoperable intelligent tutoring systems as open educational resources," Journal of IEEE Transactions on Learning Technologies 6(3), pp. 271-282, 2013. |
[18] | W. D. Samanthi, "Intelligent tutoring system for learning PHP," eprints.qut.edu.au, 2013. [Online]: Available: http://eprints.qut.edu.au/63202/1/Dinesha%20Samanthi_Weragama_Thesis.pdf. [Accessed: Feb. 12, 2014]. |
[19] | H. Budi, "Incorporating anchored learning in a C# intelligent tutoring system," eprints.qut.edu.au, 2014. [Online]: Available: http://eprints.qut.edu.au/78834/1/Budi_Hartanto_Thesis.pdf. [Accessed: Dec. 12, 2014]. |
[20] | C. Konstantina and M. Virvou, "Student Modeling for Personalized Education: A Review of the Literature," in Advances in Personalized Web-Based Education, pp. 1-24, 2015. |
[21] | V. Kurt, "The behavior of tutoring systems," International journal of artificial intelligence in education 16(3), pp. 227-265, 2006. |
[22] | G. Alex, “Ask-Elle: a Haskell Tutor,” www.botkes.nl/wp-content/uploads, 2012. [Online]: Available: http://www.botkes.nl/wp-content/uploads/HaskellTutor.pdf. [Accessed: Dec. 20, 2013]. |
[23] | R. Vasile and D. Ştefănescu, "Non-intrusive assessment of learners’ prior knowledge in dialogue-based intelligent tutoring systems," Journal of Smart Learning Environments 3(1), 2016. |
[24] | J. C. Nesbit, Q. L. A. Liu and O. O. Adesope, "Work in Progress: Intelligent Tutoring Systems in Computer Science and Software Engineering Education," Proceeding 122nd Am. Soc. Eng. Education Ann, 2015. |
[25] | M. T. Irfan and V. N. Gudivada, "Cognitive Computing Applications in Education and Learning," Handbook of Statistics 35, pp. 283-300, 2016. |
[26] | H. Keuning, B. Heeren and J. Jeuring, "Strategy-based feedback in a programming tutor," Proceedings of the Computer Science Education Research Conference, pp. 43-54, 2014. |
[27] | J. Hong, "Guided programming and automated error analysis in an intelligent Prolog tutor," International Journal of Human-Computer Studies 61(4), pp. 505-534, 2004. |
[28] | J. R. Anderson and E. Skwarecki, "The automated tutoring of introductory computer programming," Communications of the ACM 29(9), pp. 842-849, 1986. |
[29] | P. Miller, J. Pane, G. Meter and S. Vorthmann, "Evolution of novice programming environments: The structure editors of Carnegie Mellon University," Journal of Interactive Learning Environments 4(2), pp. 140-158, 1994. |
[30] | W. Jin, A. Corbett, W. Lloyd, L. Baumstark and C. Rolka, "Evaluation of guided-planning and assisted-coding with task relevant dynamic hinting," International Conference on Intelligent Tutoring Systems, pp. 318-328, 2014. |
[31] | R. Singh, "Accessible Programming using Program Synthesis," people.csail.mit.edu, 2014. [Online]: Available: http://people.csail.mit.edu/rishabh/papers/rishabh_thesis.pdf. [Accessed: Dec. 30, 2015]. |
[32] | S. Terman, "GroverCode: Code Canonicalization and Clustering Applied to Grading," up.csail.mit.edu/other-pubs, 2016. [Online]: Available: http://up.csail.mit.edu/other-pubs/seterman-thesis.pdf. [Accessed: July. 28, 2016]. |
[33] | D. Perelman, S. Gulwani and D. Grossman, "Test-driven synthesis for automated feedback for introductory computer science assignments," Proceedings of Data Mining for Educational Assessment and Feedback (ASSESS 2014), 2014. |
[34] | S. Gross, B. Mokbel, B. Hammer and N. Pinkwart, "How to select an example? a comparison of selection strategies in example-based learning," International Conference on Intelligent Tutoring Systems, pp. 340-347, 2014. |
[35] | K. Zimmerman and C. R. Rupakheti, "An Automated Framework for Recommending Program Elements to Novices (N)," Automated Software Engineering (ASE), 30th IEEE/ACM International Conference on, pp. 283-288, 2015. |
[36] | P. Freeman, I. Watson and P. Denny, "Inferring Student Coding Goals Using Abstract Syntax Trees," International Conference on Case-Based Reasoning, pp. 139-153, 2016. |
[37] | T. Barnes, and J. Stamper, "Toward automatic hint generation for logic proof tutoring using historical student data," International Conference on Intelligent Tutoring Systems, pp. 373-382, 2008. |
[38] | D. Fossati, B. D. Eugenio, S. Ohlsson, C. W. Brown, L. Chen and D. G. Cosejo, "I learn from you, you learn from me: How to make iList learn from students," Journal of AIED, pp. 491-498, 2009. |
[39] | D. Fossati, B. D. Eugenio, S. Ohlsson, C. Brown and L. Chen, "Data driven automatic feedback generation in the iList intelligent tutoring system," Journal of Technology, Instruction, Cognition and Learning 10(1), pp. 5-26, 2015. |
[40] | H. Keuning, "Strategy-based feedback for imperative programming exercises," dspace.ou.nl/bitstream/1820/5388/1, 2014. [Online]: Available: dspace.ou.nl/bitstream/1820/5388/1/INF_20140617_Keuning.pdf. [Accessed: July. 20, 2015]. |
[41] | K. Rivers and K. R. Koedinger, "Automatic generation of programming feedback: A data-driven approach," The First Workshop on AI-supported Education for Computer Science (AIEDCS 2013), vol. 50, 2013. |
[42] | K. Rivers and K. R. Koedinger, "Automating hint generation with solution space path construction," International Conference on Intelligent Tutoring Systems, pp. 329-339, 2014. |
[43] | A. Nguyen, C. Piech, J. Huang and L. Guibas, "Codewebs: scalable homework search for massive open online programming courses," Proceedings of the 23rd international conference on World Wide Web, pp. 491-502, 2014. |
[44] | T. Akutsu, "Tree edit distance problems: Algorithms and applications to bioinformatics," Journal of IEICE transactions on information and systems 93(2), pp. 208-218, 2010. |
[45] | L. Luo and Q. Zeng, "SolMiner: mining distinct solutions in programs," Proceedings of the 38th International Conference on Software Engineering Companion, pp. 481-490, 2016. |
[46] | R. Hosseini, A. Vihavainen and P. Brusilovsky, “Exploring Problem Solving Paths in a Java Programming Course,” Psychology of Programming Interest Group Conference, PPIG, pp. 65–76, 2014. |
[47] | P. Blikstein, M. Worsley, C. Piech, M. Sahami, S. Cooper and D. Koller, "Programming pluralism: Using learning analytics to detect patterns in the learning of computer programming," Journal of the Learning Sciences 23(4), pp. 561-599, 2014. |
[48] | A. Vihavainen, M. Luukkainen and P. Ihantola, "Analysis of source code snapshot granularity levels," Proceedings of the 15th Annual Conference on Information technology education, pp. 21-26, 2014. |
[49] | D. Hovemeyer, David, A. Hellas, A. Petersen and J. Spacco, "Control-Flow-Only Abstract Syntax Trees for Analyzing Students' Programming Progress," Proceedings of the 2016 ACM Conference on International Computing Education Research, pp. 63-72, 2016. |
[50] | A. Vihavainen, M. Luukkainen and J. Kurhila, "Multi-faceted support for MOOC in programming," Proceedings of the 13th annual conference on Information technology education, pp. 171-176, 2012. |
[51] | B. Hieu and N. Y, “Analysis Techniques for Data-Driven Hint Generation for Code-Writing Intelligent Tutoring Systems,” IPASJ International Journal of Information Technology (IIJIT), 5(3), 2017. |