Using Scratch and App Inventor for teaching introductory programming in secondary education. A case study

Paradoxically, as the role and significance of computing have increased in society and the economy, and coding is recognised as the fourth literacy, the number of students attending a programming course is in decline. In an attempt to increase interest in computer science (CS), there has been made much effort in developing tools and activities as preliminary learning materials in schools and universities. App Inventor and Scratch strive to engage the novice users by allowing them to write programs about things that connect with their interests in contrast to more conventional programming. In this paper, we focus on the use of these two block-based programming environments as tools to facilitate learning programming for novices. In our analysis, both novice programming environments (NPEs) seemed to be attractive platforms for introducing fundamental concepts in computer programming and both look appealing for majors and non-majors as well.

[1]  David Wolber,et al.  Novel approaches to CS 0 with app inventor for android , 2010, SIGCSE.

[2]  Lauri Malmi,et al.  A survey of literature on the teaching of introductory programming , 2007, ACM SIGCSE Bull..

[3]  Mark Guzdial,et al.  Computers for communication, not calculation: media as a motivation and context for learning , 2004, 37th Annual Hawaii International Conference on System Sciences, 2004. Proceedings of the.

[4]  Evrim Guler,et al.  Teaching computing and programming fundamentals via App Inventor for Android , 2012, 2012 International Conference on Information Technology Based Higher Education and Training (ITHET).

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

[6]  Caitlin Kelleher,et al.  Using storytelling to motivate programming , 2007, CACM.

[7]  Shaileen Crawford Pokress,et al.  MIT App Inventor: Enabling Personal Mobile Computing , 2013, ArXiv.

[8]  Michail Kalogiannakis,et al.  Using Mobile Devices for Teaching Realistic Mathematics in Kindergarten Education , 2013 .

[9]  P E HuiRu Shih,et al.  Using MIT App Inventor in an Emergency Management Course to Promote Computational Thinking , 2014 .

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

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

[12]  Mark Guzdial,et al.  Teaching the Nintendo generation to program , 2002, CACM.

[13]  David Wolber,et al.  The design of naming features in App Inventor 2 , 2014, 2014 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC).

[14]  Jeffrey G. Gray,et al.  Teaching CS principles with app inventor , 2012, ACM-SE '12.

[15]  Karishma Chadha Improving the Usability of App Inventor through Conversion between Blocks and Text , 2014 .

[16]  David Wolber,et al.  Events-first programming in APP inventor , 2014 .

[17]  Krishnendu Roy,et al.  Comparing the mobile novice programming environments: App Inventor for Android vs. GameSalad , 2012, 2012 Frontiers in Education Conference Proceedings.

[18]  Jeannette M. Wing An introduction to computer science for non-majors using principles of computation , 2007, SIGCSE.

[19]  John Maloney,et al.  The Scratch Programming Language and Environment , 2010, TOCE.

[20]  Stan Kurkovsky Making computing attractive for non-majors: a course design , 2007 .

[21]  Mordechai Ben-Ari,et al.  Learning computer science concepts with scratch , 2010, ICER '10.

[22]  Sebastian Kleinschmager,et al.  How to rate programming skills in programming experiments?: a preliminary, exploratory, study based on university marks, pretests, and self-estimation , 2011, PLATEAU '11.

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

[24]  Clarice P. Gressard,et al.  Reliability and Factorial Validity of Computer Attitude Scales , 1984 .

[25]  Benedict du Boulay Programming Environments for Novices , 1992, Intelligent Tutoring Systems.

[26]  Marie Vasek Representing Expressive Types in Blocks Programming Languages , 2012 .

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

[28]  Stavros A. Nikou,et al.  Transition in student motivation during a scratch and an app inventor course , 2014, 2014 IEEE Global Engineering Education Conference (EDUCON).

[29]  Krishnendu Roy,et al.  App inventor for android: report from a summer camp , 2012, SIGCSE '12.

[30]  Mitchel Resnick,et al.  Mother's Day, Warrior Cats, and Digital Fluency: Stories from the Scratch Online Community , 2012 .

[31]  Esther Shein Should everybody learn to code? , 2014, CACM.

[32]  Andrey Soares Reflections on Teaching App Inventor for Non-Beginner Programmers: Issues, Challenges and Opportunities. , 2014 .

[33]  Sonal Dekhane,et al.  Mobile App Development to Increase Student Engagement and Problem Solving Skills , 2013, J. Inf. Syst. Educ..