Transitioning from introductory block-based and text-based environments to professional programming languages in high school computer science classrooms
Introduction
Block-based programming is quickly becoming the way that younger learners are being introduced to the field of computer science (Bau, Gray, Kelleher, Sheldon, & Turbak, 2017). Led by the popularity of tools such as Scratch (Resnick et al., 2009), Blockly (Fraser, 2015), and Alice (Cooper, Dann, & Pausch, 2000), millions of kids are engaging with programming through drag-and-drop graphical tools. For example, Code.org's Hour of Code initiative, which includes dozens of activities that incorporate block-based programming, has recently surpassed 500 million “hours served” and has reached learners in every country on the planet (Code.org, 2017). This highlights how the excitement around computer science is a global phenomenon. Due in part to the success of such tools and initiatives at engaging novices in programming, block-based programming environments are increasingly being incorporated into curricula designed for high school computer science classrooms. Examples of such curricula include Exploring Computer Science (Goode, Chapman, & Margolis, 2012), the Computer Science Principles project (Cuny, 2015), and Code.org's curricular offerings (Code.org Curricula, 2019).
Many uses of block-based tools in formal educational contexts presuppose that such tools will help prepare students for later instruction in text-based languages (Armoni, Meerbaum-Salant, & Ben-Ari, 2015; Brown et al., 2016; Dann, Cosgrove, Slater, Culyba, & Cooper, 2012). This transition is often a part of the larger computer science trajectory where block-based introductory courses are intended to prepare students for the transition to professional, text-based languages. This can be seen in how the transition has been studied to date (e.g. Armoni et al., 2015; Dann et al., 2012; Powers, Ecott, & Hirshfield, 2007). This assumption was also echoed by the high school students who participated in the study presented in this work, who made statements such as “[block-based programming] is a good start, then once we know the commands and everything, we can move on to Java” and “[block-based programming] is getting us ready for what we're going to be doing”. While work has been done focusing on learning that happens while using block-based tools (e.g. Franklin et al., 2017; Grover & Basu, 2017; Weintrop & Wilensky, 2015a), less work has rigorously tested the transition from block-based introductory tools to text-based languages in formal settings (Blikstein, 2018; Shapiro & Ahrens, 2016). A systematic review of the literature on the role of visual programming concluded that there is uncertainty concerning the effectiveness of block-based languages when looking beyond introductory contexts (Noone & Mooney, 2018). This question is of great importance given the growing role of block-based tools in K-12 education around the world and their impact on the teaching and learning of computer science (Blikstein, 2018; Caspersen, 2018).
This paper seeks to understand if and how the modality used (block-based versus text-based) prepares learners for conventional text-based languages. This line of inquiry is consequential for both the research community as it is an open question that can inform future research on design and learning, as well as practitioners who are tasked with making decisions around learning environments and pedagogy in their classrooms every day. More specifically, this paper answers the following research question:
In high school introductory computer science classes, how does the modality used for introductory programming instruction (block-based versus text-based) impact learners when they transition to a professional text-based programming language?
This paper presents the results of a quasi-experimental study designed to answer this question. The study took place in two high school computer science classrooms and compares isomorphic block-based and text-based programming environments. Students spent five weeks working in either a block-based or text-based version of the same introductory programming environment before transitioning to Java. The same teacher taught both classes and students in each condition used the same curriculum and had the same time-on-task. The findings from the first five weeks of the study are reported in (Weintrop & Wilensky, 2017a). This work is a continuation of that paper, specifically focusing on what happened after leaving the introductory environments and moving to Java. To understand how the design of introductory tools prepare learners for programming in professional programming languages, we present comparative outcomes of content assessments, attitudinal surveys, and investigate programming practices that emerged after the transition to Java.
Section snippets
Block-based programming
Block-based programming is a visual programming paradigm that utilizes a programming-primitive-as-puzzle-piece metaphor to make the act of programming more accessible and intuitive for novices (Bau et al., 2017; Good, 2018). The block-based programming approach is becoming increasingly widespread. Duncan, Bell, and Tanimoto (2014) reviewed 47 introductory programming environments and found 28 of the environments used the block-based approach to programming, including 19 of the 24 environments
Study design and data collection strategy
This paper seeks to answer the following research question: In high school introductory computer science classes, how does the modality used for introductory programming instruction (block-based versus text-based) impact learners when they transition to a professional text-based programming language? To answer it, we conducted a quasi-experimental study during the first 15 weeks of the school year in two introductory programming classes. The two classes followed the same curriculum but used
Results
This paper seeks to understand how introductory programming modality (block-based versus text-based) impacts learners when they move on to learning a professional text-based programming language. For this work, we operationalize “impact” by looking at three interrelated dimensions of learning to program: conceptual understanding, attitudes towards programming, and programming practices. In focusing on these three aspects, we seek to understand how the knowledge, dispositions, and practices that
Discussion
The main contribution of this work is the finding that after seeing differences emerge between students working in block-based and text-based introductory environments, these difference fade after learners transition to a professional text-based environment. This lack of difference is true across conceptual, attitudinal, and programming practices dimensions. This is a significant finding as introductory computing curricula and environments designed for novices are becoming increasingly
Conclusions
While block-based languages have exploded in popularity, relatively little research has been done to show that students learning in these environments are effectively transitioning emerging understandings and practices to more traditional text-based languages like Java (Blikstein, 2018). The goal of this work is to explore this transition in a high school classroom setting to understand if and how modality facilitates this transition. Versions of this question have been answered in various ways
References (93)
- et al.
programming Language, natural language? Supporting the diverse computational activities of novice programmers
Journal of Visual Languages & Computing
(2017) - et al.
Multiple-choice vs free-text code-explaining examination questions
- et al.
How block-based, text-based, and hybrid block/text modalities shape novice programming practices
Int. J. Child Comput. Interact.
(2018) - et al.
37 million compilations: Investigating novice programming mistakes in large-scale student data
Shortchanging Girls, Shortchanging America
(1994)- et al.
From Scratch to “real” programming
ACM Trans. Comput. Educ. TOCE
(2015) - et al.
Design and evaluation of a block-based environment with a data science context
IEEE Trans. Emerg. Top. Comput
(2017) Droplet, a blocks-based editor for text code
J. Comput. Sci. Coll.
(2015)- et al.
Pencil code: Block code for a text world
- et al.
Learnable programming: Blocks and beyond
Communications of the ACM
(2017)
Using learning analytics to understand the learning pathways of novice programmers
The Journal of the Learning Sciences
Programming in pairs with alice to improve confidence, enjoyment, and achievement
Journal of Educational Computing Research
Hybrid environments: A bridge from blocks to text
Pre-college computer science education: A survey of the field
Programming pluralism: Using learning analytics to detect patterns in the learning of computer programming
The Journal of the Learning Sciences
Future Directions of Block-based Programming
Georgia computes!: Improving the computing education pipeline
Teaching programming
Student opinions of alice in CS1
The 5th Hour of Code is here! Code.org
Code.org
Research methods in education
Alice: A 3-D tool for introductory programming concepts
J. Comput. Sci. Coll.
Transforming K-12 computing education: An update and a call to action
ACM Inroads
How electrical engineering students design computer programs
Mediated transfer: Alice 3 to Java
Empirical validation and application of the computing attitudes survey
Computer Science Education
Should your 8-year-old learn coding?
Wilcoxon-mann-whitney or t-test? On assumptions for hypothesis tests and multiple interpretations of decision rules
Statistics Surveys
Empowering students and building confidence in novice programmers through Gauntlet
Using Upper-Elementary Student Performance to Understand Conceptual Sequencing in a Blocks-based Curriculum
Ten things we’ve learned from Blockly
The beauty and Joy of computing
ACM Inroads
Using alice in CS1: A quantitative experiment
Novice programming environments: Lowering the barriers, supporting the progression
Beyond curriculum: The exploring computer science program
ACM Inroads
Measuring student learning in introductory block-based programming: Examining misconceptions of loops, variables, and boolean logic
Designing for deeper learning in a blended computer science course for middle school students
Computer Science Education
Computer science logo style: Beyond programming
Floors and Flexibility: Designing a programming environment for 4th-6th grade classrooms
Lessons in combining block-based and textual programming
J. Vis. Lang. Sentient Syst.
Java concepts: Early objects
Learning to communicate computationally with flip: A bi-modal Programming Language for game creation
Computers & Education
Identifying top Java errors for novice programmers
A first look at novice compilation behaviour using BlueJ
Computer Science Education
Flexible, reusable tools for studying novice programmers
Cited by (69)
Linguistic Pedagogical Approaches to Transfer in Computer Science
2024, SIGCSE 2024 - Proceedings of the 55th ACM Technical Symposium on Computer Science EducationProgramming Language Knowledge Transfer that Teachers Observe in their Classrooms
2024, SIGCSE 2024 - Proceedings of the 55th ACM Technical Symposium on Computer Science EducationFostering Computational Thinking and Problem-Solving in Programming: Integrating Concept Maps Into Robot Block-Based Programming
2024, Journal of Educational Computing ResearchDeterminants for the Formation of a Fractality-Based Educational Environment in Engineering Pedagogical Education
2024, Lecture Notes in Networks and SystemsUsing multimodal learning analytics to understand effects of block-based and text-based modalities on computer programming
2024, Journal of Computer Assisted Learning