Thesis Research: Evaluation of Data-Driven Hint Generation for Learning Programming

For my thesis work, I ran a series of studies that investigated how we can best design data-driven feedback and hints to help students learn programming. First, I ran a classroom study to investigate student help-seeking needs and beliefs; second, I ran a usability study to determine how different feedback types affected student work; third, I ran a classroom study to determine the actual affect of hints/feedback on learning.

Thesis Dissertation

Thesis Proposal

Rivers, K. (2015). Designing a Data-Driven Tutor Authoring Tool for CS Educators. In Proceedings of the eleventh annual International Conference on International Computing Education Research. pp. 277-278. [poster] (Doctorial Consortium)

Pre-Thesis Research: ITAP, the Intelligent Teaching Assistant for Programming

We've developed ITAP, a system that takes solution spaces composed of student programs and traverses them to generate next-step hints for students who need help while working.

Rivers, K. and Koedinger, K.R. (2015). Data-Driven Hint Generation in Vast Solution Spaces: A Self-Improving Python Programming Tutor. International Journal of Artificial Intelligence in Education, 1-28. [The final publication is available at Springer via]

Rivers, K. and Koedinger, K.R. (2014). Automating Hint Generation with Solution Space Path Construction. In Proceedings of the 12th International Conference on Intelligent Tutoring Systems (pp. 329-339). [slides]

Rivers, K. and Koedinger, K. (2014). Open-Ended Tutoring for Programming: Building Next-Step Hints into an Online Development Environment. At the Second Workshop on AI-supported Education for Computer Science (AIEDCS).

Rivers, K. (2014). Automating Hint Generation with Solution Space Path Construction. At the Seventh Annual inter-Science of Learning Center Student and Post-doc Conference.

Rivers, K., and Koedinger, K. (2013). Automatic Generation of Programming Feedback: A Data-Driven Approach. In Proceedings of the Workshops at the 16th International Conference on Artificial Intelligence in Education AIED 2013 (pp. 4.50-4.59). [slides]

Rivers, K., and Koedinger, K. (2012). A Canonicalizing Model for Building Programming Tutors. In Proceedings of the 11th International Conference on Intelligent Tutoring Systems (pp. 591-593). (Young Researcher's Track) [slides]

Side Projects with Collaborators

Rivers, K., Harpstead, E., and Koedinger, K. (2016) 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. [slides] The final publication is available for free via this link in the ACM Digital library.

Ihantola, P., Vihavainen, A., Ahadi, A., Butler, M., Börstler, J., Edwards, S., Isohanni, E., Korhonen, A., Petersen, A., Rivers, K., Rubio, M., Sheard, J., Skupas, B., Spacco, J., Szabo, C., Toll, D. (2015). Educational Data Mining and Learning Analytics in Programming: Literature Review and Case Studies. In Proceedings of the 2015 ITiCSE on Working Group Reports. pp. 41-63.

Spacco, J., Fossati, D., Stamper, J. and Rivers, K. (2013). Towards improving programming habits to create better computer science course outcomes. In Proceedings of the 18th ACM conference on Innovation and technology in computer science education. pp. 243-248.

Hovemeyer, D., Hertz, M., Denny, P., Spacco, J., Papancea, A., Stamper, J., and Rivers, K. (2013). CloudCoder: building a community for creating, assigning, evaluating and sharing programming exercises. In Proceeding of the 44th ACM technical symposium on Computer science education. pp. 742.

Sudol, L.A., Rivers, K., and Harris, T.K. (2012). Calculating Probabilistic Distance to Solution in a Complex Problem Solving Domain. In Proceedings of the Fifth International Conference on Educational Data Mining, pp. 144-147.