Using Fault Injection for Programming Task Generation

  • Baso Habibi
  • Tsuneo Nakanishi
  • Kenji Hisazumi
  • Hiroki Furusho
  • Akira Fukuda
Conference paper
Part of the Advances in Intelligent Systems and Computing book series (AISC, volume 716)


In the programming exercise, it is needed to give programming tasks depending on student’s knowledge level of programming for more educational effect. However, it is almost impossible to prepare different programming tasks for every student in the big class. This paper presents an idea and a process to introduce fault injection, which has been used for software test, to produce variants of programming tasks depending on student’s knowledge level. The system contaminates student’s codes with faults intentionally, forces the student to remove them, and examines student’s knowledge level. It is confirmed that the prototype implementation of this system works as expected.


Programming tasks generation Fault injection  Bloom’s taxonomy 


  1. 1.
    Daly, C., Horgan, J.M.: An automated learning system for Java programming. IEEE Trans. Educ. 47(1), 10–17 (2004)CrossRefGoogle Scholar
  2. 2.
    Taheri, S.M., Sasaki, M., Ngetha, H.T.: Evaluating the effectiveness of problem solving techniques and tools in programming. In: 2015 Science and Information Conference (SAI), pp. 928–932 (2015)Google Scholar
  3. 3.
    Kumar, A.N.: Learning programming by solving problems. In: Informatics Curricula and Teaching Methods, pp. 29–39. Springer (2003)Google Scholar
  4. 4.
    Habibi, B., Nakanishi, T., Fukuda, A.: Student’s programming activity tracking system to help instructors of the programming exercise. In: 2016 IEEE Region 10 Symposium (TENSYMP), pp. 89–94 (2016)Google Scholar
  5. 5.
    Anderson, L.W., Sosniak, L.A.: Bloom’s taxonomy: a forty-year retrospective. Ninety-third Yearbook of the National Society for the Study of Education. University of Chicago Press, Chicago (1994)Google Scholar
  6. 6.
    Oliver, D., Dobele, T.: First year courses in IT: a Bloom rating. J. Inf. Technol. Educ. 6, 347–360 (2007)Google Scholar
  7. 7.
    Scott, T.: Bloom’s taxonomy applied to testing in computer science classes. J. Comput. Sci. Coll. 19(1), 267–274 (2003)MathSciNetGoogle Scholar
  8. 8.
    Ma, Y.-S., Offutt, J., Kwon, Y.R.: MuJava: an automated class mutation system. Softw. Test. Verification Reliab. 15(2), 97–133 (2005)CrossRefGoogle Scholar
  9. 9.
    Delamaro, M.E., Maidonado, J.C., Mathur, A.P.: Interface mutation: an approach for integration testing. IEEE Trans. Softw. Eng. 27(3), 228–247 (2001)CrossRefGoogle Scholar
  10. 10.
    Ahmadzadeh, M., Elliman, D., Higgins, C.: An analysis of patterns of debugging among novice computer science students. ACM SIGCSE Bull. 37(3), 84–88 (2005)CrossRefGoogle Scholar
  11. 11.
    Hristova, M., Misra, A., Rutter, M., Mercuri, R.: Identifying and correcting Java programming errors for introductory computer science students. ACM SIGCSE Bull. 35(1), 153–156 (2003)CrossRefGoogle Scholar
  12. 12.
    Jackson, J., Cobb, M., Carver, C.: Identifying top Java errors for novice programmers. In: 2005 35th Frontiers in Education Conference, p. T4C (2005)Google Scholar
  13. 13.
    Mow, I.C.: Analyses of student programming errors in Java programming courses. J. Emerg. Trends Comput. Inf. Sci. 3(5), 739–749 (2012)Google Scholar

Copyright information

© Springer International Publishing AG 2018

Authors and Affiliations

  • Baso Habibi
    • 1
  • Tsuneo Nakanishi
    • 2
  • Kenji Hisazumi
    • 3
  • Hiroki Furusho
    • 2
  • Akira Fukuda
    • 3
  1. 1.Graduate School of Information Science and Electrical EngineeringKyushu UniversityFukuokaJapan
  2. 2.Faculty of EngineeringFukuoka UniversityFukuokaJapan
  3. 3.Faculty of Information Science and Electrical EngineeringKyushu UniversityFukuokaJapan

Personalised recommendations