Is the Scratch Programming Environment Ideal for all? Enhancements to the Scratch IDE to Make it Easier to Use and More Useful for Students and Teachers (original) (raw)

The Scratch Programming Language and Environment

ACM Transactions on …, 2010

Scratch is a visual programming environment that allows users (primarily ages 8 to 16) to learn computer programming while working on personally meaningful projects such as animated stories and games. A key design goal of Scratch is to support self-directed learning through tinkering and collaboration with peers. This article explores how the Scratch programming language and environment support this goal.

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.

Scratch: Programming for Everyone

Communications of The ACM

When Moshe Vardi, Editor-in-Chief of CACM, invited us to submit an article about Scratch, he shared the story of how he learned about Scratch:

Extending Scratch: New pathways into programming

2015 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), 2015

We present the Scratch extension system, a toolkit that enables anyone to extend the vocabulary of the visual Scratch programming language through custom programming blocks written in JavaScript. The extension system is designed to (i) enable innovating on the Scratch programming language itself, in addition to innovating with it through projects, and (ii) enable the creation of new interest-driven pathways into Scratch programming. In this paper, we describe some of the prior work done in this space, our design and implementation, open questions and challenges, and some preliminary results.

Kordaki, Μ. (2012). Diverse categories of programming learning activities could be performed within Scratch. In Proceedings of 4th World Conference on Educational Sciences, 2-5 February 2012, Barcelona, Spain, Procedia - Social and Behavioral Sciences, Volume 46, 2012, Pages 1162-1166.

This study presents a set of categories of learning activities which could be performed by the students using the tools of the well-known educational software Scratch (www.scratch.mit.edu) that is dedicated for the learning of programming by novices. Specifically, eleven categories of learning activities that could be performed within Scratch were formed, namely: (a) Free creative activities, (b) Solving a specific problem, © Multiple solution tasks, (d) Experimentation within working Scratch projects, (e) Modification of working Scratch projects, (f) Working on a complete Scratch output and a correct but incomplete part of its code, (g) Working on a complete Scratch output and a mixed form of its code, (h) Working with a complete Scratch output and an incorrect part of its code, (i) Working with the complete code of a Scratch program and predicting its output, (j) Black-box activities, and (k) Collaborative learning activities. Computing teachers can use these categories of activities in their attempts to design appropriate every day classroom settings for the learning of programming by novices within Scratch.

MIT Scratch: A Powerful Tool for Improving Teaching of Programming

Conference on Informatics in Education 2013, 2013

Programming has been taught for many years to High School students in Greece. Despite this fact, the results are poor. Many students find programming boring and difficult. In contrast, using of computers in students’ everyday life is very popular. Most of the students use the Internet, the Social Media and the computer games in a very effective way. MIT Scratch has been proposed as a solution to this educational problem. In this paper we attempt to investigate whether this is true.

The Appropriateness of Scratch and App Inventor as Educational Environments for Teaching Introductory Programming in Primary and Secondary Education

Teaching programming is a complex task. The task is even more challenging for introductory modules. There is an ongoing debate in the teaching community over the best approach to teaching introductory programming. Visual block-based programming environments allow school students to create their own programs in ways that are more accessible than in textual programming environments. These environments designed for education allow students to program without the obstacle of syntax errors (errors in typing commands) found in traditional text-based languages. In this paper, the authors focus on the use of App Inventor and Scratch as blocks-based programming environments designed explicitly with novices in mind. In the authors' analysis, both Novice Programming Environments (NPEs) seemed to be attractive platforms for introducing fundamental concepts in computer programming and both look appealing for both majors and non-majors.

Discriminating Programming Strategies in Scratch: Making the Difference between Novice and Experienced Programmers

Proceedings of the 14th Workshop in Primary and Secondary Computing Education, 2019

Nowadays, block-based programming environments are often used to offer a gentle introduction to learning a programming language. However, an assessment of students' programming skills based on the results of a programming task is not sufficient to determine all areas students are struggling with. We therefore introduce a learning analytics approach of measuring and evaluating the programming sequences of students that program with Scratch 3. With our measurement framework, it is possible to record, store and analyze programming sequences done on a publicly-available, instrumented Scratch 3 environment. Changes in the programming sequence are categorized regarding the used block types and types of program change. We conducted an exploratory programming trial with lower and upper secondary school students to investigate small-scale programming strategies in the recorded programming sequences. Our goals are to identify students in need of support and to identify recurring patterns ...

Using Scratch to Improve Learning Programming in College Students: A Positive Experience from a Non-WEIRD Country

Electronics, 2021

Teaching computer programming is a real challenge in the State University of Milagro (UNEMI), located in one of the least-developed zones in Ecuador, a non-WEIRD country (WEIRD stands for Western, Educated, Industrialized, Rich and Democratic). Despite the application of various learning strategies, the historical pass rate does not exceed 43%. To solve this problem, we have relied on visual programming languages, specifically Scratch. Scratch is an open source software to learn programming that has a strong assumption of the benefits of community work. A quasi-experiment conducted with 74 undergraduate students during the first semester of CS showed that: (1) Both groups (control and experimental) are homogeneous in terms of their demographic characteristics, previous academic performance and motivation (expectations) concerning the course; (2) Scratch is strongly accepted by students in the experimental group and concerning the learning process, both groups showed similar levels o...

Scratch for budding computer scientists

ACM SIGCSE Bulletin, 2007

Scratch is a "media-rich programming environment" recently developed by MIT's Media Lab that "lets you create your own animations, games, and interactive art." Although Scratch is intended to "enhance the development of technological fluency [among youths] at after-school centers in economically disadvantaged communities," we find remarkable potential in this programming environment for higher education as well. We propose Scratch as a first language for first-time programmers in introductory courses, for majors and non-majors alike. Scratch allows students to program with a mouse: programmatic constructs are represented as puzzle pieces that only fit together if "syntactically" appropriate. We argue that this environment allows students not only to master programmatic constructs before syntax but also to focus on problems of logic before syntax. We view Scratch as a gateway to languages like Java. To validate our proposal, we recently deployed Scratch for the first time in higher education via Harvard Summer School's Computer Science S-1: Great Ideas in Computer Science, the summertime version of a course at Harvard College. Our goal was not to improve scores but instead to improve first-time programmers' experiences. We ultimately transitioned to Java, but we first introduced programming itself via Scratch. We present in this paper the results of our trial. We find that, not only did Scratch excite students at a critical time (i.e., their first foray into computer science), it also familiarized the inexperienced among them with fundamentals of programming without the distraction of syntax. Moreover, when asked via surveys at term's end to reflect on how their initial experience with Scratch affected their subsequent experience with Java, most students (76%) felt that Scratch was a positive influence, particularly those without prior background. Those students (16%) who felt that Scratch was not an influence, positive or negative, all had prior programming experience.