Aim/Purpose The study examined types of errors made by novice programmers in different Java concepts with students of different ability levels in programming as well as the perceived causes of such errors. Background To improve code writing and debugging skills, efforts have been made to taxonomize programming errors and their causes. However, most of the studies employed omnibus approaches, i.e. without consideration of different programing concepts and ability levels of the trainee programmers. Such concepts and ability specific errors identification and classifications are needed to advance appropriate intervention strategy. Methodology A sequential exploratory mixed method design was adopted. The sample was an intact class of 124 Computer Science and Engineering undergraduate students grouped into three achievement levels based on first semester perforConcept-based Analysis of Java Programming Errors 50 mance in a Java programming course. The submitted codes in the course of second semester exercises were analyzed for possible errors, categorized and grouped across achievement level. The resulting data were analyzed using descriptive statistics as well as Pearson product correlation coefficient. Qualitative analyses through interviews and focused group discussion (FGD) were also employed to identify reasons for the committed errors. Contribution The study provides a useful concept-based and achievement level specific error log for the teaching of Java programming for beginners. Findings The results identified 598 errors with Missing symbols (33%) and Invalid symbols (12%) constituting the highest and least committed errors respectively. Method and Classes concept houses the highest number of errors (36%) followed by Other Object Concepts (34%), Decision Making (29%), and Looping (10%). Similar error types were found across ability levels. A significant relationship was found between missing symbols and each of Invalid symbols and Inappropriate Naming. Errors made in Methods and Classes were also found to significantly predict that of Other Object concepts. Recommendations for Practitioners To promote better classroom practice in the teaching of Java programming, findings for the study suggests instructions to students should be based on achievement level. In addition to this, learning Java programming should be done with an unintelligent editor. Recommendations for Researchers Research could examine logic or semantic errors among novice programmers as the errors analyzed in this study focus mainly on syntactic ones. Impact on Society The digital age is code-driven, thus error analysis in programming instruction will enhance programming ability, which will ultimately transform novice programmers into experts, particularly in developing countries where most of the software in use is imported. Future Research Researchers could look beyond novice or beginner programmers as codes written by intermediate or even advanced programmers are still not often completely error free.
[1]
Mathias Johan Johansen.
Errors and misunderstandings among novice programmers: Assessing the student not the program
,
2015
.
[2]
Matthew C. Jadud,et al.
An exploration of novice compilation behaviour in BlueJ
,
2006
.
[3]
Peter Hubwieser,et al.
Qualitative Content Analysis of Programming Errors
,
2017,
ICIET '17.
[4]
Sue Fitzgerald,et al.
What are we thinking when we grade programs?
,
2013,
SIGCSE '13.
[5]
Neil Brown,et al.
Blackbox: a large scale repository of novice programmers' activity
,
2014,
SIGCSE.
[6]
J. Jackson,et al.
Identifying Top Java Errors for Novice Programmers
,
2005,
Proceedings Frontiers in Education 35th Annual Conference.
[7]
Desmond Adair,et al.
Difficulties in Teaching and Learning the Java Programming
,
2011
.
[8]
Rex P. Bringula,et al.
Predictors of Errors of Novice Java Programmers
,
2012
.
[9]
Neil Brown,et al.
37 Million Compilations: Investigating Novice Programming Mistakes in Large-Scale Student Data
,
2015,
SIGCSE.
[10]
Ma. Mercedes T. Rodrigo,et al.
An Analysis of Java Programming Behaviors, Affect, Perceptions, and Syntax Errors among Low-Achieving, Average, and High-Achieving Novice Programmers
,
2013
.
[11]
Ewan D. Tempero,et al.
All syntax errors are not equal
,
2012,
ITiCSE '12.
[12]
Geoffrey L. Herman,et al.
Identifying student misconceptions of programming
,
2010,
SIGCSE.
[13]
Ewan D. Tempero,et al.
Understanding the syntax barrier for novices
,
2011,
ITiCSE '11.
[14]
Ioana Tuugalei,et al.
Analyses of Student Programming Errors In Java Programming Courses
,
2012
.