Abstract
To efficiently support novice programming learners who are feeling the programming difficult, clarifying the cause of preventing programming comprehension, and developing a new instruction method appropriate for their comprehension would be necessary. The objective of this paper is to develop a learning support system to facilitate the programming instruction through source code reading, which is also available for self-study and mini-examination. In addition, this paper aims to discover the unit of knowledge (knowledge module) which will obstruct an understanding for programming beginners. The developed system can automatically generate a source code of C programming language in which there is no particular meaning because the source codes as learning materials are generated randomly. The developed system was utilized in a programming class for novices. This paper obtained student answer log, after the students had completed one semester of the instruction, and analyzed the data. From the analysis result, the description which may make program reading comprehension difficult for a beginner was clarified.
Similar content being viewed by others
References
Konecki M, Petrlic M (2014) Main problems of programming novices and the right course of action. In: Proceedings of the 25th central European conference on information and intelligent systems, pp 116–123
Konecki M (2014) Problems in programming education and means of their improvement, Chapter 37. In: Katalinic B (ed) DAAAM international scientific book 2014. Published by DAAAM International, Vienna, pp 459–470. ISBN 978-3-901509-98-8, ISSN: 1726-9687. doi:10.2507/daaam.scibook.2014.37
Kashima T, Matsumoto S, Yamagishi S (2014) Knowledge acquisition with eye-tracking to teach programming appropriate for learner’s programming skill. In: Proceedings of the third Asian conference on information systems, pp 287–292
Okimoto K, Matsumoto S, Yamagishi S, Kashima T (2016) A source code reading based learning support system for novice programming education. In: Proceedings of the 21nd international symposium on artificial life and robotics, PS3, pp 765–768
Boswell D, Foucher T (2011) The art of readable code (Theory in practice). O’Reilly Media, Sebastopol
Spinellis D (2003) Reading, writing and code. ACM Queue 1(7):84–89
Wagstaff K (2004) Clustering with missing values: no imputation required, classification, clustering, and data mining applications. Springer, Berlin, pp 649–658
Little R, Rubin D (2014) Statistical analysis with missing data. Wiley, New York
Robins A, Rountree J, Rountree N (2003) Learning and teaching programming: a review and discussion. Comput Sci Educ 13(2):137–172
Pears A, Seidman S, Malmi L, Mannila L, Adams E, Bennedsen J et al (2007) A survey of literature on the teaching of introductory programming. ACM SIGCSE Bull 39(4):204–223
Lopez M, Sutton K, Clear T (2009) Surely we must learn to read before we learn to write! In: Proceedings of the eleventh Australasian conference on computing education, vol 95, pp 165–170
Kanamori H, Tomoto T, Akakura T (2013) Development of a computer programming learning support system based on reading computer program. In: Yamamot S (ed) HCI 2013, Part III. LNCS, vol 8018. Springer, Heidelberg, pp 63–69
Arai T, Kanamori H, Tomoto T, Kometani Y, Akakura T (2014) Development of a learning support system for source code reading comprehension. In: Yamamoto S (ed) HCI 2014, Part II. LNCS, vol 8522. Springer, Heidelberg, pp 12–19
Kogure S, Okamoto M, Noguchi Y, Konishi T, Itoh Y, Adapting guidance and externalization support features to program and algorithm learning support environment. In: Proceedings of the 20th international conference of computers in education, pp 321–323 (2012)
Kogure S, Okamoto M, Yamashita K, Noguchi Y, Konishi T, Itoh Y (2013) Evaluation of an algorithm and programming learning support features to program and algorithm learning support environment. In: Proceedings of the 21st international conference of computers in education, pp 418–424
Yamashita K, Nagao T, Kogure S, Noguchi Y, Konishi T, Itoh Y (2016) Code-reading support environment visualizing three fields and educational practice to understand nested loops. Res Pract Technol Enhanc Learn 11:3. doi:10.1186/s41039-016-0027-3
Tang M (2011) Caesar, a social code review tool for programming education. Doctoral dissertation, Massachusetts Institute of Technology
Busjahn T, Schulte C (2013) The use of code reading in teaching programming. In: Proceedings of the 13th Koli Calling international conference on computing education research, pp 3–11
Lopez M (2008) Relationships between reading, tracing and writing skills in introductory programming. In: Proceedings of the fourth international workshop on computing education research, pp 101–112
Okamoto M, Terakawa K, Murakami M, Ikeda K, Mori M, Uehara T, Kita H (2010) Computer programming course materials for self-learning novices. In: Proceedings of world conference on educational multimedia, hypermedia and telecommunications, pp 2855–2861
Pennington N (1987) Stimulus structures and mental representations in expert comprehension of computer programs. Cogn Psychol 19:295–341
Acknowledgements
This work was partly supported by Furukawa Technology Promotion Foundation 2016, and Japan Society for the Promotion of Science, KAKENHI Grant-in-Aid for Scientific Research(C), No. 16K01147 and No. 17K01164.
Author information
Authors and Affiliations
Corresponding author
Additional information
This work was presented in part at the 21st International Symposium on Artificial Life and Robotics, Beppu, Oita, January 20–22, 2016.
About this article
Cite this article
Okimoto, K., Matsumoto, S., Yamagishi, S. et al. Developing a source code reading tutorial system and analyzing its learning log data with multiple classification analysis. Artif Life Robotics 22, 227–237 (2017). https://doi.org/10.1007/s10015-017-0357-2
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10015-017-0357-2