30 Days After Introducing Programming: Which of My Students Are Likely to Fail?

Predictors to identify whether a student will succeed or fail in introductory programming courses have been provided by previous research. However, they rely on time-consuming aptitude tests and surveys. This way, setting, executing, and replicating these studies is hard and increase the professor effort. Other predictors rely on automatic procedures, but they either do not identify the failing students early or do not provide high effectiveness. To minimize these problems, we propose a strategy to early predict the potential failing students during introductory programming courses automatically, reducing effort and allowing professors to use it in every course. By having this set of students in the first days of the course, professors and mentors would have time to act and potentially avoid such failings. The strategy consists of three steps: the use of an online judge system; the collection of metrics from this system; and the use of a clustering algorithm. To evaluate our strategy, we conduct an empirical study regarding 358 freshmen students of 12 introductory programming courses. We consider the first 30 days of the course. From the group of students our strategy points as “likely to fail,” 80% of the students on average indeed fail.

[1]  อนิรุธ สืบสิงห์,et al.  Data Mining Practical Machine Learning Tools and Techniques , 2014 .

[2]  Susan Bergin,et al.  Programming: factors that influence success , 2005 .

[3]  Aharon Yadin,et al.  Reducing the dropout rate in an introductory programming course , 2011, INROADS.

[4]  Frederick W. B. Li,et al.  Failure rates in introductory programming revisited , 2014, ITiCSE '14.

[5]  Lauri Malmi,et al.  Why students drop out CS1 course? , 2006, ICER '06.

[6]  Andrew Lim,et al.  On automated grading of programming assignments in an academic institution , 2003, Comput. Educ..

[7]  C. Pitangui,et al.  Análise de Trabalhos Sobre a Aplicação de Técnicas de Mineração de Dados Educacionais na Previsão de Desempenho Acadêmico , 2016 .

[8]  Paulo Blikstein,et al.  Student Coding Styles as Predictors of Help-Seeking Behavior , 2013, AIED.

[9]  James Harris Testing programming aptitude in introductory programming courses , 2014 .

[10]  Raymond Lister,et al.  Predicting student success using fine grain clicker data , 2014, ICER '14.

[11]  Frederick W. B. Li,et al.  Predicting Performance in an Introductory Programming Course by Logging and Analyzing Student Programming Behavior , 2013, 2013 IEEE 13th International Conference on Advanced Learning Technologies.

[12]  Tainá Medeiros,et al.  Jogos Digitais para Ensino e Aprendizagem de Programação: uma Revisão Sistemática da Literatura , 2014 .

[13]  Daniel Zingaro,et al.  Importance of early performance in CS1: two conflicting assessment stories , 2014, SIGCSE '14.

[14]  Mark Guzdial,et al.  Success in introductory programming: what works? , 2013, CACM.

[15]  Yvonne Coady,et al.  Automatically Classifying Students in Need of Support by Detecting Changes in Programming Behaviour , 2017, SIGCSE.

[16]  Baldoino Fonseca dos Santos Neto,et al.  Evaluating the effectiveness of educational data mining techniques for early prediction of students' academic failure in introductory programming courses , 2017, Comput. Hum. Behav..