Pass Rates in Introductory Programming and in other STEM Disciplines

Vast numbers of publications in computing education begin with the premise that programming is hard to learn and hard to teach. Many papers note that failure rates in computing courses, and particularly in introductory programming courses, are higher than their institutions would like. Two distinct research projects in 2007 and 2014 concluded that average success rates in introductory programming courses world-wide were in the region of 67%, and a recent replication of the first project found an average pass rate of about 72%. The authors of those studies concluded that there was little evidence that failure rates in introductory programming were concerningly high. However, there is no absolute scale by which pass or failure rates are measured, so whether a failure rate is concerningly high will depend on what that rate is compared against. As computing is typically considered to be a STEM subject, this paper considers how pass rates for introductory programming courses compare with those for other introductory STEM courses. A comparison of this sort could prove useful in demonstrating whether the pass rates are comparatively low, and if so, how widespread such findings are. This paper is the report of an ITiCSE working group that gathered information on pass rates from several institutions to determine whether prior results can be confirmed, and conducted a detailed comparison of pass rates in introductory programming courses with pass rates in introductory courses in other STEM disciplines. The group found that pass rates in introductory programming courses appear to average about 75%; that there is some evidence that they sit at the low end of the range of pass rates in introductory STEM courses; and that pass rates both in introductory programming and in other introductory STEM courses appear to have remained fairly stable over the past five years. All of these findings must be regarded with some caution, for reasons that are explained in the paper. Despite the lack of evidence that pass rates are substantially lower than in other STEM courses, there is still scope to improve the pass rates of introductory programming courses, and future research should continue to investigate ways of improving student learning in introductory programming courses.

[1]  Michail N. Giannakos,et al.  Introductory programming: a systematic literature review , 2018, ITiCSE.

[2]  Xianglei Chen STEM Attrition: College Students' Paths into and out of STEM Fields. Statistical Analysis Report. NCES 2014-001. , 2013 .

[3]  Janet Rountree,et al.  Learning and Teaching Programming: A Review and Discussion , 2003, Comput. Sci. Educ..

[4]  Ronald G. Ehrenberg Analyzing the factors that influence persistence rates in STEM field, majors: Introduction to the symposium , 2010 .

[5]  Beth Simon,et al.  Halving fail rates using peer instruction: a study of four computer science courses , 2013, SIGCSE '13.

[6]  R. Boyle,et al.  What Makes Them Succeed? Entry, progression and graduation in Computer Science , 2002 .

[7]  Peter Andreae,et al.  It's not them, it's us! Why computer science fails to impress many first years , 2014, ACE.

[8]  Charles E. McDowell,et al.  The impact of pair programming on student performance, perception and persistence , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[9]  Peter J. Denning,et al.  Is computer science science? , 2005, CACM.

[10]  Scott Freeman,et al.  Increased Course Structure Improves Performance in Introductory Biology , 2011, CBE life sciences education.

[11]  Kirsti Ala-Mutka,et al.  A study of the difficulties of novice programmers , 2005, ITiCSE '05.

[12]  J. C. Moosbrugger,et al.  Innovating Engineering Curriculum for First-year Retention , 2015 .

[13]  Mark Guzdial Why Is It So Hard to Learn to Program? , 2011, Making Software.

[14]  Ian Barnes,et al.  Why is programming so hard to learn? , 2014, ITiCSE '14.

[15]  Jens Bennedsen,et al.  Failure rates in introductory programming , 2019, Inroads.

[16]  Philip R. Ventura,et al.  Identifying predictors of success for an objects-first CS1 , 2005, Comput. Sci. Educ..

[17]  Simon,et al.  Mental models, consistency and programming aptitude , 2008, ACE '08.

[18]  Simon,et al.  Global Perspectives on Assessing Educational Performance and Quality , 2015, ITiCSE.

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

[20]  Heidi M Steinhauer,et al.  Analyzing Longitudinal Performance from Multi-course Alignment for First-year Engineering Students: Calculus, Physics, and Programming in MATLAB , 2015 .

[21]  Patricia Haden,et al.  What Are We Doing When We Assess Programming? , 2015, ACE.

[22]  Alison Clear Introductory Programming and Educational Performance Indicators - a Mismatch , 2014 .

[23]  Ronan G. Reilly,et al.  Examining the role of self-regulated learning on introductory programming performance , 2005, ICER '05.

[24]  J. Fleiss,et al.  Measuring Agreement for Multinomial Data , 1982 .

[25]  Lauri Malmi,et al.  CS minors in a CS1 course , 2008, ICER '08.

[26]  Andrew Luxton-Reilly,et al.  Learning to Program is Easy , 2016, ITiCSE.

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

[28]  Nickolas J. G. Falkner,et al.  Identifying computer science self-regulated learning strategies , 2014, ITiCSE '14.

[29]  Kenneth A. Rath,et al.  The Impact of Supplemental Instruction on Students in Stem Courses: Results from San Francisco State University , 2008 .

[30]  Julia Eichmann,et al.  Making Software - What Really Works, and Why We Believe It , 2011, Making Software.

[31]  Michelle K. Smith,et al.  Active learning increases student performance in science, engineering, and mathematics , 2014, Proceedings of the National Academy of Sciences.

[32]  M. Banerjee,et al.  Beyond kappa: A review of interrater agreement measures , 1999 .

[33]  Jens Bennedsen,et al.  Failure rates in introductory programming , 2007, SGCS.