In the current programming education, in order to assess the true ability of learners, instructors still have no choice but to monitor their answering process, standing by them. However, this is impractical for freshman training in educational institutions and newcomer training in companies. Because of the practicality, a large number of learners are assessed at once using written tests or Web tests. They usually inquire of learners whether they know algorithms and grammar. If not, they assess only the behavior of source codes they submit, at best. Under the training based on such assessment, in reality, not a few learners fail to acquire the skill of writing source codes. It implies that the attainment of programming skills cannot be assessed only by tests on knowledge and submitted source codes. This paper proposes a method for analyzing learners’ understanding that focuses on their thinking process of pr ogramming. The proposed method focuses on a code puzzle in which learners arrange fragments of a program code to satisfy given requirements. It aims to estimate the learner’s perspective on how fragments are built up to achieve the requirements. Learners with low understanding are assumed to be different from those with high in terms of the consistency of arranging ways to compose code fragments for specific blocks in source codes. For the discrimination, the method builds a model using a hidden Markov model. The internal state obtained from this model would help instructors grasp the learner’s understanding level. The results of an experiment present that the hidden Markov model produces meaningful values, which enable instructors to interpret the understanding of individual learners.
KeywordsProgramming EducationLearning AnalyticsComputational ThinkingCode PuzzleHidden Markov Model
Asai, S. (2019). Identification of Factors Affecting Cognitive Load in Programming Learning with Decision Tree. Journal of Computers, 14, 624-633. https://doi.org/10.17706/jcp.14.11.624-633
Baum, L. E., & Petrie, T. (1966). Statistical Inference for Probabilistic Functions of Finite State Markov Chains. The Annals of Mathematical Statistics, 37, 1554-1563. https://doi.org/10.1214/aoms/1177699147
Blikstein, P., Worsley, M., Piech, C., Sahami, M., Cooper, S., & Koller, D. (2014). Programming Pluralism: Using Learning Analytics to Detect Patterns in the Learning of Computer Programming. Journal of the Learning Sciences, 23, 561-599. https://doi.org/10.1080/10508406.2014.954750
Crow, T., Luxton-Reilly, A., & Wuensche, B. (2018). Intelligent Tutoring Systems for Programming Education. In R. Mason, & Simon (Eds.), Proceedings of the 20th Australasian Computing Education Conference (pp. 53-62). Association for Computing Machinery. https://doi.org/10.1145/3160489.3160492
Futamura , Y., Kawai, T., Horikoshi, H., & Tsutsumi, M. (1981). Development of Computer Programs by Problem Analysis Diagram (PAD). In S. Jeffrey, & L. G. Stucki (Eds.), Proceedings of the 5th International Conference on Software Engineering (pp. 325-332). Association for Computing Machinery.
Guo, P. J. (2015). Codeopticon: Real-Time, One-To-Many Human Tutoring for Computer Programming. In C. Latulipe, B. Hartmann, & T. Grossman (Eds.), Proceedings of the 28th Annual ACM Symposium on User Interface Software & Technology (pp. 599-608). Association for Computing Machinery. https://doi.org/10.1145/2807442.2807469
Hellas, A., Ajanovski, V. V., Knutas, A., Ihantola, P., Gutica, M., Leinonen, J., Liao, S. N., Petersen, A., Hynninen, T., & Messom, C. (2019, May 20). Predicting Academic Performance: A Systematic Literature Review. In G. Rossling, & B. Scharlau (Eds.), Proceedings Companion of the 23rd Annual ACM Conference on Innovation and Technology in Computer Science Education (pp. 175-199). Association for Computing Machinery. https://doi.org/10.1145/3293881.3295783 https://research.monash.edu/en/publications/predicting-academic-performance-a-systematic-literature-review
Ihantola, P., Sorva, J., & Vihavainen, A. (2014). Automatically Detectable Indicators of Programming Assignment Difficulty. In B. Rutherfoord, L. Li, S. Van de Ven, & A. Settle (Eds.), Terry Steinbach, Proceedings of the 15th Annual Conference on Information Technology Education (pp. 33-38). Association for Computing Machinery. https://doi.org/10.1145/2656450.2656476
Ito, H., Shimakawa, H., & Harada, F. (2021). Advanced Comprehension Analysis Using Code Puzzle. In E. Ziemba, & W. Chmielarz (Eds.), Information Technology for Management: Towards Business Excellence (pp. 45-64). Springer. https://doi.org/10.1007/978-3-030-71846-6_3
Jadud, M. C. (2006). Methods and Tools for Exploring Novice Compilation Behaviour. In R. J. Anderson, S. Fincher, & M. Guzdial (Eds.), Proceedings of the 2006 2nd International Workshop on Computing Education Research (pp. 73-84). Association for Computing Machinery. https://doi.org/10.1145/1151588.1151600
Johnson, W. L., & Gladwin, L. A. (1987). Intention-Based Diagnosis of Novice Programming Errors. IEEE Expert, 2, 94. https://doi.org/10.1109/MEX.1987.4307101
Kaplan, A. (2021). Higher Education at the Crossroads of Disruption: The University of the 21st Century. Emerald Publishing. https://doi.org/10.1108/9781800715011
Kato, T., Kambayashi, Y., Terawaki, Y., & Kodama, Y. (2018). Analysis of Students’ Behaviors in Programming Exercises Using Deep Learning. In V. Uskov, R. Howlett, & L. Jain (Eds.), Smart Education and e-Learning 2017 (pp. 38-47). Springer. https://doi.org/10.1007/978-3-319-59451-4_4
Lane, H. C., & VanLehn, K. (2005). Intention-Based Scoring: An Approach to Measuring Success at Solving the Composition Problem. ACM SIGCSE Bulletin, 37, 373-377. https://doi.org/10.1145/1047344.1047471
Luo, J., & Wang, T. (2020). Analyzing Students’ Behavior in Blended Learning Environment for Programming Education. In Proceedings of the 2020 2nd World Symposium on Software Engineering (pp. 179-185). Association for Computing Machinery. https://doi.org/10.1145/3425329.3425346
Marion, B., Impagliazzo, J., St. Clair, C., Soroka, B., & Whitfield, D. (2007). Assessing Computer Science Programs. In I. Russell, S. M. Haller, J. D. Dougherty, & S. H. Rodger (Eds.), Proceedings of the 38th SIGCSE Technical Symposium on Computer Science Education (pp. 131-132). Association for Computing Machinery. https://doi.org/10.1145/1227310.1227358
McCracken, M., Almstrum, V., Diaz, D., Guzdial, M., Hagan, D., Kolikant, Y. B.-D., Laxer, C., Thomas, L., Utting, I., & Wilusz, T. (2001). A Multi-National, Multi-Institutional Study of Assessment of Programming Skills of First-Year CS Students. ACM SIGCSE Bulletin, 33, 125-180. https://doi.org/10.1145/572139.572181
Mysore, A., & Guo, P. J. (2018). Porta: Profiling Software Tutorials Using Operating-System-Wide Activity Tracing. In P. Baudisch, A. Schmidt, & A. Wilson (Eds.), Proceedings of the 31st Annual ACM Symposium on User Interface Software and Technology (pp. 201-212). Association for Computing Machinery. https://doi.org/10.1145/3242587.3242633
Nesbit, J., Liu, L., Liu, Q., & Adesope, O. (2015). Work in Progress: Intelligent Tutoring Systems in Computer Science and Software Engineering Education. In 2015 ASEE Annual Conference and Exposition Proceedings (pp. 26.1754.1-26.1754.12). American Society for Engineering Education. https://doi.org/10.18260/p.25090
Nikula, U., Gotel, O., & Kasurinen, J. (2011, October 31). A Motivation Guided Holistic Rehabilitation of the First Programming Course. ACM Transactions on Computing Education, 11, Article No. 24. https://doi.org/10.1145/2048931.2048935 https://eric.ed.gov/?id=EJ958645
Parsons, D., & Haden, P. (2006). Parson’s Programming Puzzles: A Fun and Effective Learning Tool for First Programming Courses. In D. Tolhurst, & S. Mann (Eds.), Proceedings of the 8th Australasian Conference on Computing Education (Vol. 52, pp. 157-163). Australian Computer Society, Inc.
Scaradozzi, D., Cesaretti, L., Screpanti, L., & Mangina, E. (2020). Identification of the Students Learning Process during Education Robotics Activities. Frontiers in Robotics and AI, 7, Article No. 21. https://doi.org/10.3389/frobt.2020.00021
Schnotz, W., & Kürschner, C. (2007). A Reconsideration of Cognitive Load Theory. Educational Psychology Review, 19, 469-508. https://doi.org/10.1007/s10648-007-9053-4
Tabanao, E. S., Rodrigo, M. M., & Jadud, M. C. (2011). Predicting At-Risk Novice Java Programmers through the Analysis of Online Protocols. In K. Sanders, M. E. Caspersen, & A. Clear (Eds.), Proceedings of the Seventh International Workshop on Computing Education Research (pp. 85-92). Association for Computing Machinery. https://doi.org/10.1145/2016911.2016930
Villamor, M. M. (2020). A Review on Process-Oriented Approaches for Analyzing Novice Solutions to Programming Problems. Research and Practice in Technology Enhanced Learning, 15, Article No. 8. https://doi.org/10.1186/s41039-020-00130-y
Watson, C., Li, F. W. B., & Godwin, J. L. (2013). Predicting Performance in an Introductory Programming Course by Logging and Analyzing Student Programming Behavior. In 2013 IEEE 13th International Conference on Advanced Learning Technologies (pp. 319-323). Institute of Electrical and Electronics Engineers. https://doi.org/10.1109/ICALT.2013.99
Watson, C., Li, F. W. B., & Godwin, J. L. (2014). No Tests Required: Comparing Traditional and Dynamic Predictors of Programming Success. In J. D. Dougherty, K. Nagel, A. Decker, & K. Eiselt (Eds.), Proceedings of the 45th ACM Technical Symposium on Computer Science Education (pp. 469-474). Association for Computing Machinery. https://doi.org/10.1145/2538862.2538930