How block-based, text-based, and hybrid block/text modalities shape novice programming practices

Abstract There is growing diversity in the design of introductory programming environments. Where once all novices learned to program in conventional text-based languages, today, there exists a growing ecosystem of approaches to programming including graphical, tangible, and scaffolded text environments. To date, relatively little work has explored the relationship between the design of novice programming environments and the programming practices they engender in their users. This paper seeks to shed light on this dimension of learning to program through the careful analysis of novice programmers’ experiences learning with a hybrid block/text programming environment. Specifically, this paper is concerned with how novices leverage the various affordances designed into programming environments and programming languages to support their early efforts to author programs. We explore this relationship through the construct of modality using data from a study conducted in a high school computer science classroom in which students spent five weeks working in block-based, text-based, and hybrid block/text programming environments. This paper uses a detailed vignette of a novice writing a program in the hybrid environment as a way to characterize emerging programming practices, then presents analyses of programming trends from the full study population to speak to the generality of the practices identified in the vignette. The analyses focus not only on characterizing authoring strategies but also on identifying patterns in novices’ help-seeking behaviors. By focusing on how modality influences novices’ emerging programming practices, this paper contributes to our understanding of the relationship between programming environment and learning, illuminating the role of design in shaping introductory programming experiences.

[1]  David Weintrop,et al.  RoboBuilder: A Program-to-Play Constructionist Video Game , 2012 .

[2]  Donald A. Norman,et al.  Things That Make Us Smart: Defending Human Attributes In The Age Of The Machine , 1993 .

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

[4]  Harold Abelson,et al.  App Inventor - Create Your Own Android Apps , 2011 .

[5]  Thomas Erickson,et al.  Working with interface metaphors , 1995 .

[6]  Michelle Hoda Wilkerson-Jerde,et al.  Restructuring Change, Interpreting Changes: The DeltaTick Modeling and Analysis Toolkit , 2010 .

[7]  David Weintrop,et al.  From Blocks to Text and Back: Programming Patterns in a Dual-Modality Environment , 2017, SIGCSE.

[8]  David Weintrop,et al.  Modality Matters: Understanding the Effects of Programming Language Representation in High School Computer Science Classrooms , 2016 .

[9]  Timothy C. Bell,et al.  Should your 8-year-old learn coding? , 2014, WiPSCE.

[10]  R. Benjamin Shapiro,et al.  Beyond blocks , 2016, Commun. ACM.

[11]  Jeffrey G. Bonar,et al.  A visual programming language for novices , 1990 .

[12]  Tsuyoshi Murata,et al.  {m , 1934, ACML.

[13]  Barbara M. Moskal,et al.  Evaluating the effectiveness of a new instructional approach , 2004 .

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

[15]  Colleen M. Lewis How programming environment shapes perception, learning and goals: logo vs. scratch , 2010, SIGCSE.

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

[17]  Celia Hoyles,et al.  Windows on Mathematical Meanings: Learning Cultures and Computers , 1996 .

[18]  Ricarose Roque OpenBlocks : an extendable framework for graphical block programming systems , 2007 .

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

[20]  Michael Homer,et al.  Combining Tiled and Textual Views of Code , 2014, 2014 Second IEEE Working Conference on Software Visualization.

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

[22]  Yoshiaki Matsuzawa,et al.  Language Migration in non-CS Introductory Programming through Mutual Language Translation Environment , 2015, SIGCSE.

[23]  Michael Homer,et al.  Lessons in Combining Block-based and Textual Programming , 2017, J. Vis. Lang. Sentient Syst..

[24]  John Maloney,et al.  Blocks at your fingertips: Blurring the line between blocks and text in GP , 2015, 2015 IEEE Blocks and Beyond Workshop (Blocks and Beyond).

[25]  Michael Kölling,et al.  Frame-Based Editing , 2017, J. Vis. Lang. Sentient Syst..

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

[27]  Edwin Hutchins,et al.  How a Cockpit Remembers Its Speeds , 1995, Cogn. Sci..

[28]  David Weintrop,et al.  Between a Block and a Typeface: Designing and Evaluating Hybrid Programming Environments , 2017, IDC.

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

[30]  Alan F. Blackwell,et al.  Learning Syntax as Notational Expertise when using DrawBridge , 2014, PPIG.

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

[32]  Roy D. Pea,et al.  Designing for deeper learning in a blended computer science course for middle school students , 2015, Comput. Sci. Educ..

[33]  Colin Potts,et al.  Design of Everyday Things , 1988 .

[34]  Thomas W. Price,et al.  Comparing Textual and Block Interfaces in a Novice Programming Environment , 2015, ICER.

[35]  Mitchel Resnick,et al.  LogoBlocks: A Graphical Programming Language for Interacting with the World , 2000 .

[36]  Uri Wilensky,et al.  The challenges of studying blocks-based programming environments , 2015, 2015 IEEE Blocks and Beyond Workshop (Blocks and Beyond).

[37]  Randy Pausch,et al.  Learning To Program With Alice , 2004 .

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

[39]  D.C. Cliburn,et al.  Student opinions of Alice in CS1 , 2008, 2008 38th Annual Frontiers in Education Conference.

[40]  James D. Hollan,et al.  Distributed cognition: toward a new foundation for human-computer interaction research , 2000, TCHI.

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

[42]  Paul Ginns Meta-Analysis of the Modality Effect. , 2005 .

[43]  David Bau,et al.  Pencil code: block code for a text world , 2015, IDC.

[44]  Celia Hoyles,et al.  Developing new notations for a learnable mathematics in the computational era , 2002 .

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

[46]  Mitchel Resnick,et al.  Programming by choice: urban youth learning programming with scratch , 2008, SIGCSE '08.

[47]  Neil Brown,et al.  Frame-Based Editing: Easing the Transition from Blocks to Text-Based Programming , 2015, WiPSCE.

[48]  E. Reed The Ecological Approach to Visual Perception , 1989 .

[49]  Stephen Barrett,et al.  Pedagogy and Processes for a Computer Programming Outreach Workshop—The Bridge to College Model , 2010, IEEE Transactions on Education.

[50]  Diana Franklin,et al.  Using Upper-Elementary Student Performance to Understand Conceptual Sequencing in a Blocks-based Curriculum , 2017, SIGCSE.

[51]  Neil Brown,et al.  Evaluation of a Frame-based Programming Editor , 2016, ICER.

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

[53]  James McDonald,et al.  Using Alice in Overview Courses to Improve Success Rates in Programming I , 2008, 2008 21st Conference on Software Engineering Education and Training.

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