In this Master thesis we look into students' characteristics which impact their success at introductory programming course. We want to define characteristics which are connected to and positively correlate with success at introductory programming course.
The majority of novice students studying Computing on the Two-subject teacher program at the Faculty of Education, University of Ljubljana experience programming for the first time in this introductory programming course. Every year, students' success rate is low - less than half of the students pass the exam. In the first section of this Master thesis we introduce learning theories and provide an overview of scientific literature which analyses the issues of introductory programming. Since teaching programming is often based on problem-based learning, we relate the success at programming with the success at solving problem based tasks. Programming skills are put in the context of computational thinking, where we focus on algorithmic thinking, one of the key fields of cognition in computational thinking. Computational thinking contains certain aspects of thinking, which are present also in solving mathematical problems. On the other hand, we are also interested in personal characteristics of students which impact learning and might also impact success at the initial stages of learning how to programme. Every individual uses distinctive combination of learning strategies, however, we have decided to test Kolb's model of learning styles. There already are several studies researching students' characteristics which impact success in an introductory programming course, but we are interested in characteristics that prevail among students included in our study.
We conducted an empirical research where we collected and analyzed students' personal characteristic which relate to learning and characteristics related to their prior programming experience and consequently to their attitude towards programming. With a problem solving test we also tested their analytical, abstract and algorithmic thinking abilities. It turns out that there are no statistically significant differences in average success rate in introductory programming course between students of the Faculty of Education and students of the Faculty of Computer and Information Science. Weak but positive correlation was found between success rate in introductory programming course and success rate in Mathematics at the Matura exam. There are differences among students in average success rate at solving tasks which test analytical, abstract and algorithmic thinking abilities, depending on the year of study. Correlation between successful completion of these tasks and successful completion of introductory programming course is positive and weak. In our sample, there are statistically significant differences in learning styles between students at the Faculty of Education and students at the Faculty of Computer and Information Science. Divergent learning style prevails among students at the Faculty of Education while assimilative learning style prevails among students at the Faculty of Computer and Information Science. There are no statistically significant differences in success at introductory programming course between students with different learning styles. At the end of the empirical section of the thesis, we use machine learning to introduce different predictive models which reveal students' characteristics that influence success rate in introductory programming course. Among chosen characteristics the most important are: programming knowledge, student's attitude to programming, type of Matura exam, success at Matura exam, faculty, learning style and successful solving of abstract and algorithmic thinking tasks.