Learning by mistakes in teaching programming through distance learning

Artur Opaliński


Despite employing various programming languages on different course majors, teaching novice programmers on technical departments is a complex issue in many countries worldwide. References have been given to the analyses of the most common programming errors encountered by students, and to the attempts to aid students in eradicating these errors. Aiding students was based each time on automatic teacher's advices to common errors, so it encompassed easing teacher's efforts as well.

One of the key skill that novice programmers have to master is to independently correct errors in code. While this is only a part of the required skills, it demands the knowledge of language syntax and testing rules as well as the understanding of code semantics and algorithm.

The author proposes in the paper a new method of teaching the skills of correcting code, which is based on correcting ready-made code samples which contain purposely-made errors. The supporting tool is the typical IDE that students use in their everyday work. In this way a controlled learning environment is created, where the number and the type of errors, as well as the error messages generated by IDE are predefined. Such an environment is much better defined that during a typical assignment where the student is supposed to write a program from scratch.

The author suggests using distance learning tools for teaching and for skills verification with the above described method. The new method has been applied to the Computer Science course taught in the Process Control and Robotics major.


  • Ahmadzadeh M., Elliman D., Higgins C., An analysis of patterns of debugging among novice computer science students, [in:] Proceedings of the 10th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education, pp. 84-88, New York 2005,
  • Ala-Mutka K., Problem in Learning and Teaching Programming - a literature study for developing visualizations in the Codewitz-Minerva project, Institute of Software Systems, Tampere University of Technology, 2003,
  • Beizer B., Software Testing Techniques, ed. 2, International Thomson Computer Press, 1990.
  • Bereza-Jarociński B., Szomański B., Inżynieria oprogramowania. Jak zapewnić jakość tworzonym aplikacjom, Helion, Gliwice 2009.
  • Bhawkar A., Belsare R., Gandhi F., Somani P., Analysis of Errors - A Support System for Teachers to Analyze the Error Occurring to a Novice Programmer, "International Journal of Computer Science and Network" 2013, Vol. 2, No. 5, pp. 37-40.
  • Hristova M., Misra A., Rutter M., Mercuri R., Identifying and correcting java programming errors for introductory computer science students, [in:] Proceedings of the 34th SIGCSE Technical Symposium on Computer Science Education, ACM Press, Reno 2005, pp. 153-156,
  • Know your bugs: three kinds of programming errors, Visual Studio 2008, Visual Basic Guiided Tour,
  • Kopec D., Yarmish G., Revisiting novice programmer errors, "ACM SIGCSE Bulletin" 2007, Vol. 39, No. 2, pp. 131-137,
  • Krawczyk H., Wiszniewski B., Classification of software defects in parallel programs, Technical Report, 1994.
  • Landwehr C.E. , Bull A.R., McDermott J.P., Choi W.S., A taxonomy of computer program security flaws, "ACM Computing Surveys" 1994, Vol. 26, No. 3, pp. 211-254,
  • Lister R., et al., A multi-national study of reading and tracing skills in novice programmers, [in:] Proceeding of the ITiCSE-WGR '04 Working group reports from ITiCSE on Innovation and technology in computer science education, New York 2004, pp. 119-150,
  • McCracken M., et al., A multi-national, multi-institutional study of assessment of programming skills of first-year CS students, [in:] Proceeding of ITiCSE-WGR '01 Working group reports from ITiCSE on Innovation and technology in computer science education, New York 2001, pp. 125-180,
  • Morimoto M., Kurasawa K.,Yokoyama S., Ueno M., Miyadera Y., A support system for teaching computer programming based on the analysis of compilation Errors, Sixth IEEE International Conference on Advanced Learning Technologies (ICALT'06), conference proceedings, Kerkrade, 5-7.07.2006, pp. 103-105,
  • Nalaka E.M., Edirisinghe S., Teaching students to identify common programming errors using a game, [in:] SIGITE '08 Proceedings of the 9th ACM SIGITE Conference on Information Technology Education, 2008, pp. 95-98,
  • Nienaltowski M.H., Pedroni, B. Meyer, Compiler error messages: what can help novices?, [in:] SIGCSE '08 Proceedings of the 39th SIGCSE Technical Symposium on Computer Science Education, New York 2008, pp. 168-172,
  • Opalinski A., Integrating web site services into application through user interface, III Konferencja TEWI, materiały konferencyjne, Politechnika Łódzka, Łódź, 03.07.2012.
  • Robins A., Rountree J., Rountree N., Learning and teaching programming: A review and discussion, "Computer Science Education" 2003, Vol. 13, No. 2, pp. 137-172,
  • Soloway E., Spohrer J., Studying the novice programmer, Lawrence Erlbaum Associates, Hillsdale 1989.
  • Thompson S.M., An exploratory study of novice programming experiences and errors, University of Victoria, 2004.
  • Tsipenyuk K., Chess B., McGraw G., Seven pernicious kingdoms: a taxonomy of software security errors, "IEEE Transactions on Security & Privacy" 2005, Vol. 3, No. 6, pp. 81-84,
  • Tuugalei I., Mow Ch., Analyses of student programming errors in java programming courses, "Journal of Emerging Trends in Computing and Information Sciences" 2012, Vol. 3, No. 5, pp. 739 -749.
  • Vipindeep V., Jalote Pankaj, List of common bugs and programming practices to avoid them, 2005.
  • Zhigang S., Xiaohong S., Ning Z., Yanyu Ch., Moodle plugins for highly efficient programming courses, 1st Moodle Research Conference, conference proceedings, Heraklion, 14-15.09.2012, pp. 157-163.


learning by mistakes; programming; distance learning; common programming errors; correcting code; IDE


Artur Opaliński

Gdańsk University of Technology

About the article


The article is in the printed version on pages 38-44.

pdf download PDF

pdf read the article (Polish)

How to cite

A. Opaliński, Uczenie na błędach w nauczaniu programowania w systemie e-learningu, „e-mentor” 2014, nr 3 (55), s. 38-44,