The effects of first programming language on college students’ computing attitude and achievement: a comparison of graphical and textual languages

ABSTRACT Background and Context: The relationship between novices’ first programming language and their future achievement has drawn increasing interest owing to recent efforts to expand K–12 computing education. This article contributes to this topic by analyzing data from a retrospective study of more than 10,000 undergraduates enrolled in introductory computer science courses at 118 U.S. institutions of higher education. Objective: We explored the relationship between students’ first programming languages and both their final grades in an introductory computer science course and their attitudes about programming. Method: Multiple matching techniques compared those whose first language was graphical (e.g., Scratch), textual (e.g., Java), or absent prior to college. Findings: Having any prior programming experience had positive effects on both attitudes about programming and grades in introductory computer science courses. Importantly, students whose first language was graphical had higher grades than did students whose first language was textual, when the languages were introduced in or before early adolescent years. Implications: Learning any computer language is better than learning none. If programming is to be taught to students before early adolescence, it is advised to start with a graphical language. Future work should investigate the transition between different types of programming languages.

[1]  Margaret M. Burnett,et al.  Visual Programming , 1995 .

[2]  John P. Charlton,et al.  An Integrative Model of Factors Related to Computing Course Performance , 1999 .

[3]  David Weintrop,et al.  Comparing Block-Based and Text-Based Programming in High School Computer Science Classrooms , 2017, ACM Trans. Comput. Educ..

[4]  P. Rosenbaum The Consequences of Adjustment for a Concomitant Variable that Has Been Affected by the Treatment , 1984 .

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

[6]  Betsy James DiSalvo,et al.  Graphical Qualities of Educational Technology: Using Drag-and-Drop and Text-Based Programs for Introductory Computer Science , 2014, IEEE Computer Graphics and Applications.

[7]  Yasmin B. Kafai,et al.  The social turn in K-12 programming: moving from computational thinking to computational participation , 2013, SIGCSE '13.

[8]  Robert B. Allen,et al.  The Impact of Different Teaching Approaches and Languages on Student Learning of Introductory Programming Concepts , 2016, ACM Trans. Comput. Educ..

[9]  Leanne M. Hirshfield,et al.  Through the looking glass: teaching CS0 with Alice , 2007, SIGCSE.

[10]  Mitchel Resnick,et al.  Imagining, Creating, Playing, Sharing, Reflecting: How Online Community Supports Young People as Designers of Interactive Media , 2013 .

[11]  Mark Guzdial,et al.  A future for computing education research , 2014, Commun. ACM.

[12]  Michal Armoni,et al.  Learning Abstraction in Computer Science: A Gender Perspective , 2017, WiPSCE.

[13]  David J. Malan,et al.  Scratch for budding computer scientists , 2007, SIGCSE.

[14]  David Weintrop,et al.  Using Commutative Assessments to Compare Conceptual Understanding in Blocks-based and Text-based Programs , 2015, ICER.

[15]  Roy Rada,et al.  "Hour of Code": Can It Change Students' Attitudes toward Programming? , 2016, J. Inf. Technol. Educ. Innov. Pract..

[16]  Peeratham Techapalokul,et al.  Sniffing Through Millions of Blocks for Bad Smells , 2017, SIGCSE.

[17]  Carsten Schulte,et al.  Attitudes towards computer science-computing experiences as a starting point and barrier to computer science , 2007, ICER '07.

[18]  Richard W. Moore,et al.  The scientific attitude inventory: A revision (SAI II) , 1997 .

[19]  Margaret M. Burnett,et al.  Principles of a debugging-first puzzle game for computing education , 2014, 2014 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC).

[20]  Leila Goosen A Brief History of Choosing First Programming Languages , 2008, HCE3.

[21]  Joanna Goode,et al.  Beyond curriculum: the exploring computer science program , 2012, INROADS.

[22]  Stephen Cooper,et al.  Evaluating the effectiveness of a new instructional approach , 2004, SIGCSE.

[23]  David J. Gilmore,et al.  Comprehension and Recall of Miniature Programs , 1984, Int. J. Man Mach. Stud..

[24]  António José Mendes,et al.  A study on students' behaviours and attitudes towards learning to program , 2012, ITiCSE '12.

[25]  F. Thoemmes,et al.  A Systematic Review of Propensity Score Methods in the Social Sciences , 2011, Multivariate behavioral research.

[26]  Wilfred W. F. Lau,et al.  Modelling programming performance: Beyond the influence of learner characteristics , 2011, Comput. Educ..

[27]  Ali Mili,et al.  Programming Language Use in US Academia and Industry , 2015, Informatics Educ..

[28]  Brenda Cantwell Wilson,et al.  A Study of Factors Promoting Success in Computer Science Including Gender Differences , 2002, Comput. Sci. Educ..

[29]  Daniel D. Garcia,et al.  CS principles professional development: only 9,500 to go! , 2014, SIGCSE '14.

[30]  Esteban Vázquez-Cano,et al.  Visual programming languages integrated across the curriculum in elementary school: A two year case study using "Scratch" in five schools , 2016, Comput. Educ..

[31]  Suleyman Uludag,et al.  Implementing IT0/CS0 with scratch, app inventor forandroid, and lego mindstorms , 2011, SIGITE '11.

[32]  Caitlin Kelleher,et al.  Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers , 2005, CSUR.

[33]  David Weintrop,et al.  To block or not to block, that is the question: students' perceptions of blocks-based programming , 2015, IDC.

[34]  Timothy S. Newman,et al.  A study of the impact of student background and preparedness on outcomes in CS I , 2001, SIGCSE '01.

[35]  Sahana Murthy,et al.  Effect of a 2-week scratch intervention in CS1 on learners with varying prior knowledge , 2014, ITiCSE '14.

[36]  Brenda Cantwell Wilson,et al.  Contributing to success in an introductory computer science course: a study of twelve factors , 2001, SIGCSE '01.

[37]  Yasmin B. Kafai,et al.  Connected Code: Why Children Need to Learn Programming , 2014 .

[38]  H. Hotelling Analysis of a complex of statistical variables into principal components. , 1933 .

[39]  John Maloney,et al.  Starting with scratch in CS 1 , 2009, SIGCSE '09.

[40]  Evangelia Gouli,et al.  Problem solving by 5-6 years old kindergarten children in a computer programming environment: A case study , 2013, Comput. Educ..

[41]  Paul R. Rosenbaum,et al.  Comparison of Multivariate Matching Methods: Structures, Distances, and Algorithms , 1993 .

[42]  Mark Guzdial,et al.  Attitudes about computing in postsecondary graduates , 2008, ICER '08.

[43]  Elizabeth A Stuart,et al.  Matching methods for causal inference: A review and a look forward. , 2010, Statistical science : a review journal of the Institute of Mathematical Statistics.

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

[45]  Richard A. Nielsen,et al.  Why Propensity Scores Should Not Be Used for Matching , 2019, Political Analysis.

[46]  Jacob M. Montgomery,et al.  How Conditioning on Posttreatment Variables Can Ruin Your Experiment and What to Do about It , 2018 .

[47]  ZanderCarol,et al.  Assessing the ripple effect of CS1 language choice , 2000 .

[48]  Harriet G. Taylor,et al.  Exploration of the Relationship between Prior Computing Experience and Gender on Success in College Computer Science , 1994 .

[49]  Eleni Stroulia,et al.  Involvement, contribution and influence in GitHub and stack overflow , 2014, CASCON.

[50]  Jeffrey G. Gray,et al.  Learnable programming , 2017, Commun. ACM.

[51]  M. Bers The TangibleK Robotics Program: Applied Computational Thinking for Young Children. , 2010 .

[52]  David Lo,et al.  An empirical study on developer interactions in StackOverflow , 2013, SAC '13.

[53]  Karen Brennan,et al.  Learning Computing through Creating and Connecting , 2013, Computer.

[54]  Joanna Goode,et al.  Beyond access: broadening participation in high school computer science , 2012, INROADS.

[55]  Roy D. Pea,et al.  Remedying misperceptions of computer science among middle school students , 2014, SIGCSE.

[56]  Colin Lankshear,et al.  'Because it's boring, irrelevant and I don't like computers': Why high school girls avoid professionally-oriented ICT subjects , 2008, Comput. Educ..

[57]  Susan Wiedenbeck,et al.  Factors affecting the success of non-majors in learning to program , 2005, ICER '05.

[58]  Joanna Goode Increasing diversity in k-12 computer science: strategies from the field , 2008, SIGCSE '08.

[59]  Kosuke Imai,et al.  Unpacking the Black Box of Causality: Learning about Causal Mechanisms from Experimental and Observational Studies , 2011, American Political Science Review.

[60]  Stephen Chi-fai Chan,et al.  Filling the gap in programming instruction: a text-enhanced graphical programming environment for junior high students , 2009, SIGCSE '09.

[61]  Anya Tafliovich,et al.  A student perspective on prior experience in CS1 , 2013, SIGCSE '13.

[62]  Joseph Hilbe,et al.  Data Analysis Using Regression and Multilevel/Hierarchical Models , 2009 .

[63]  Linda McIver The effect of programming language on error rates of novice programmers , 2000, PPIG.

[64]  David Harel,et al.  The effect of previous programming experience on the learning of scenario-based programming , 2012, Koli Calling.

[65]  Michail Kalogiannakis,et al.  Novice Programming Environments. Scratch & App Inventor: a first comparison , 2014, IDEE '14.

[66]  Brian Harvey,et al.  Bringing "No Ceiling" to Scratch: Can One Language Serve Kids and Computer Scientists? , 2010 .

[67]  Mona E. Rizvi,et al.  A Scratch-based CS0 course for at-risk computer science majors , 2012, 2012 Frontiers in Education Conference Proceedings.

[68]  Ronan G. Reilly,et al.  Programming: factors that influence success , 2005, SIGCSE '05.

[69]  Eric Rosenbaum,et al.  Scratch: programming for all , 2009, Commun. ACM.

[70]  Caitlin Kelleher,et al.  Storytelling alice motivates middle school girls to learn computer programming , 2007, CHI.

[71]  Jill Denner,et al.  Computer Programming in Middle School: How Pairs Respond to Challenges , 2007 .

[72]  Ricarose Roque,et al.  More than code: The significance of social interactions in young people's development as interactive media creators , 2011 .

[73]  Gary King,et al.  Matching as Nonparametric Preprocessing for Reducing Model Dependence in Parametric Causal Inference , 2007, Political Analysis.

[74]  Thorna O. Humphries,et al.  A CS0 course using Scratch , 2011 .

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

[76]  Mordechai Ben-Ari,et al.  Habits of programming in scratch , 2011, ITiCSE '11.

[77]  Michael Kölling,et al.  The Greenfoot Programming Environment , 2010, TOCE.

[78]  Sze Yee Lye,et al.  Review on teaching and learning of computational thinking through programming: What is next for K-12? , 2014, Comput. Hum. Behav..

[79]  Neil Brown,et al.  Greenroom: a teacher community for collaborative resource development , 2010, ITiCSE '10.

[80]  Richard J. Enbody,et al.  Performance of python CS1 students in mid-level non-python CS courses , 2010, SIGCSE.

[81]  Judith Gal-Ezer,et al.  What (else) should CS educators know? , 1998, CACM.

[82]  Martina Schollmeyer Computer programming in high school vs. college , 1996, SIGCSE '96.

[83]  Amanda Wilson,et al.  Evaluating Scratch to Introduce Younger Schoolchildren to Programming , 2010, PPIG.