What Language? - The Choice of an Introductory Programming Language

Quite a few educational programming languages have been developed to make programming easier to learn. These languages have seen very little adoption in academia. This raises questions about their suitability for their intended purpose as introductory programming languages. A lot of factors are taken into consideration in choosing an introductory programming language. This work presents the results of a survey of computer science degree programs across the United States. The survey shows not only which introductory programming languages are popular but the reasons behind their popularity. It shows the features that are considered important for an introductory programming language and how well the popular introductory languages support those features. This work shows that some popular educational programming languages do not support some of those features that are considered important.

[1]  Christopher Watson,et al.  A systematic review of approaches for teaching introductory programming and their influence on success , 2014, ICER '14.

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

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

[4]  L. McIver,et al.  Seven deadly sins of introductory programming language design , 1996, Proceedings 1996 International Conference Software Engineering: Education and Practice.

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

[6]  Michael Kölling Greenfoot: a highly graphical ide for learning object-oriented programming , 2008, ITiCSE.

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

[8]  Yizhou Qian,et al.  Students’ Misconceptions and Other Difficulties in Introductory Programming , 2017, ACM Trans. Comput. Educ..

[9]  Diomidis Spinellis,et al.  Choosing a programming language , 2006, IEEE Software.

[10]  Michael P. Conlon,et al.  Using Alice 2.0 as a first language , 2009 .

[11]  Robert D. Macredie,et al.  Teaching Introductory Programming: A Quantitative Evaluation of Different Approaches , 2015, TOCE.

[12]  Gabriela Silva-Maceda,et al.  More Time or Better Tools? A Large-Scale Retrospective Comparison of Pedagogical Approaches to Teach Programming , 2016, IEEE Transactions on Education.

[13]  John Maloney,et al.  Back to the Future The Story of Squeak, A Practical Smalltalk Written in Itself , 1997 .

[14]  Deller James Ferreira,et al.  Learning Programming Patterns Using Games , 2016, Int. J. Inf. Commun. Technol. Educ..

[15]  Michael L. Scott,et al.  Programming Language Pragmatics , 1999 .

[16]  Jacob Perrenet,et al.  Teaching programming in secondary school: A pedagogical content knowledge perspective , 2011, Informatics Educ..

[17]  Yiming Zhao,et al.  Research and Practice on Constructing the Course of Programming Language , 2010, 2010 10th IEEE International Conference on Computer and Information Technology.

[18]  John Maloney,et al.  Alice, Greenfoot, and Scratch -- A Discussion , 2010, TOCE.

[19]  I.F. de Kereki,et al.  Scratch: Applications in Computer Science 1 , 2008, 2008 38th Annual Frontiers in Education Conference.

[20]  William A. Wulf,et al.  A case against the GOTO , 1972, ACM '72.

[21]  Randy Pausch,et al.  Alice: a 3-D tool for introductory programming concepts , 2000 .

[22]  Jr. E. Giangrande CS1 programming language options , 2007 .

[23]  Melisa Koorsse,et al.  Programming assistance tools to support the learning of IT programming in South African secondary schools , 2015, Comput. Educ..

[24]  Laxmi Gewali,et al.  Pedagogical issues in programming languages , 2004, International Conference on Information Technology: Coding and Computing, 2004. Proceedings. ITCC 2004..

[25]  Michael Kölling Greenfoot: a highly graphical ide for learning object-oriented programming , 2008, SIGCSE 2008.

[26]  Dean Sanders,et al.  Jeroo: a tool for introducing object-oriented programming , 2003, SIGCSE.