Automatic Generation of C Source Code for Novice Programming Education

  • Shimpei MatsumotoEmail author
  • Koki Okimoto
  • Tomoko Kashima
  • Shuichi Yamagishi
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9731)


To efficiently support novice programming learners feeling programming difficult, clarifying the cause of preventing programming understanding, and developing a new teaching method appropriate for their understanding degree would be necessary. The objective of this paper is to develop a learning support system with reading source codes. This paper also aims to evaluate the effectiveness of the developed system from the subjective viewpoint of learners. 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 lecture for novice programming learners. This paper obtained student responses from a questionnaire, after the students had completed one semester of the instruction in programming, and analyzed the data. From the analysis result, it turned out that different evaluation patterns existed depending on the learner’s basic programming skill.



This work was partly supported by Japan Society for the Promotion of Science, KAKENHI Grant-in-Aid for Young Scientists (B), No. 13304922, Grant-in-Aid for Scientific Research(C), No. 26350296.


  1. 1.
    Konecki, M., Petrlic, M.: Main problems of programming novices and the right course of action. In: Proceeding of the 25th Central European Conference on Information and Intelligent Systems, pp. 116–123 (2014)Google Scholar
  2. 2.
    Kashima, T., Matsumoto, S., Yamagishi, S.: Knowledge acquisition with eye-tracking to teach programming appropriate for learner’s programming skill. In: Proceeding of The Third Asian Conference on Information Systems, pp. 287–292 (2014)Google Scholar
  3. 3.
    Okimoto, K., Matsumoto, S., Yamagishi, S., Kashima, T.: 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 (2016)Google Scholar
  4. 4.
    Boswell, D., Foucher, T.: The Art of Readable Code. (Theory in Practice), O’Reilly Media (2011)Google Scholar
  5. 5.
    Spinellis, D.: Reading, writing and code. ACM Queue 1(7), 84–89 (2003)CrossRefGoogle Scholar
  6. 6.
    Robins, A., Rountree, J., Rountree, N.: Learning and teaching programming: a review and discussion. Comput. Sci. Educ. 13(2), 137–172 (2003)CrossRefGoogle Scholar
  7. 7.
    Pears, A., Seidman, S., Malmi, L., Mannila, L., Adams, E., Bennedsen, J., et al.: A survey of literature on the teaching of introductory programming. ACM SIGCSE Bulletin 39(4), 204–223 (2007)CrossRefGoogle Scholar
  8. 8.
    Lopez, M., Sutton, K., Clear, T.: 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 (2009)Google Scholar
  9. 9.
    Kanamori, H., Tomoto, T., Akakura, T.: Development of a computer programming learning support system based on reading computer program. In: Yamamoto, S. (ed.) HCI 2013, Part III. LNCS, vol. 8018, pp. 63–69. Springer, Heidelberg (2013)Google Scholar
  10. 10.
    Arai, T., Kanamori, H., Tomoto, T., Kometani, Y., Akakura, T.: Development of a learning support system for source code reading comprehension. In: Yamamoto, S. (ed.) HCI 2014, Part II. LNCS, vol. 8522, pp. 12–19. Springer, Heidelberg (2014)Google Scholar
  11. 11.
    Kogure, S., Okamoto, M., Yamashita, K., Noguchi, Y., Konishi, T., Itoh, Y.: 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 (2013)Google Scholar
  12. 12.
    Yamashita, K., Nagao, T., Kogure, S., Noguchi, Y., Konishi, T., Itoh, Y.: Code-reading support environment visualizing three fields and educational practice to understand nested loops. Res. Pract. Technol. Enhanced Learn. (RPTEL) 11(1), 1–22 (2016). doi: 10.1186/s41039-016-0027-3 CrossRefGoogle Scholar
  13. 13.
    Tang, M.: Caesar: a social code review tool for programming education, Doctoral dissertation, Massachusetts Institute of Technology (2011)Google Scholar
  14. 14.
    Busjahn, T., Schulte, C.: The use of code reading in teaching programming. In: Proceedings of the 13th Koli Calling International Conference on Computing Education Research, pp. 3–11 (2013)Google Scholar
  15. 15.
    Lopez, M.: Relationships between reading, tracing and writing skills in introductory programming. In: Proceedings of the Fourth international Workshop on Computing Education Research, pp. 101–112 (2008)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2016

Authors and Affiliations

  • Shimpei Matsumoto
    • 1
    Email author
  • Koki Okimoto
    • 2
  • Tomoko Kashima
    • 3
  • Shuichi Yamagishi
    • 1
  1. 1.Faculty of Applied Information ScienceHiroshima Institute of TechnologySaeki-ku, HiroshimaJapan
  2. 2.Graduate School of Science and TechnologyHiroshima Institute of TechnologySaeki-ku, HiroshimaJapan
  3. 3.Faculty of EngineeringKinki UniversityHigashi-hiroshima CityJapan

Personalised recommendations