Springe zum Hauptinhalt
Softwaretechnik
Softwaretechnik

Early Indicators of Success - What makes novice programmers successful?

Background: Why do some novice programmers have high difficulties to understand and comprehend basic programming concepts and thus fall behind their classmates while others seem to have no problems at all? These two extremes seem to be present in many basic programming course but what lies behind this phenomenon? Why do some students seem to understand programming without effort and others fail? We want to investigate what influences this, what factors lie behind this distribution in programming learning, to create a model of prediction for novice programmers and their learning results. We base our work on the previous work of Ahadi, Lister, and Teague (2014) and their neo-piagetian based model.

Objective: Our long-term objective is to build a model that can predict the learning success of novice programmers when they start learning to program. We aim specifically at the speed of understanding core programming concepts mostly learned in basic courses. In addition we try to determine acouple of factors and their influence on programming learning, like the performance in precursors and pretests, their socioeconomic background and learning context for instance. We aim at finding students with problems early in the semester and also finding a way to aid them.

Method: We conducted a non-exact replication study of Falling Behind Early and Staying Behind When Learning to Program of Ahadi et al. (2014). Students completed the test at the beginning of the semester and answered several questions at the end. Additionally, we anonymously assessed the points they reached in the course and thus their performance.

Result: In our replication we found hints to a catch-up effect. Some students scored low in the test but later were able to pass. In line with original study, students mostly stay behind when they show a low performance at the beginning. However, the strength of the prediction via the test was lower in our sample. We assume this comes from a different sample of computer science students.

Conclusion: Students stay behind, also computer science students.Thus, certain prior knowledge is important, which we could offer in preliminary courses. We found that it helped them in learning programming in university context. We need to further analyse what exactly this prior knowledge needs to contain. We assume that, if it’s applied correctly, it helps students to build an operational model for understanding programming logic.