Thoughts on using the Scratch language as an intro to programming

Click For Summary
The discussion centers on the Scratch programming language, highlighting both its strengths and weaknesses. Users express concerns about Scratch's handling of comments and the absence of return values from functions, which they believe complicates programming practices and encourages undesirable reliance on global variables. While Scratch is praised for effectively engaging children in programming and introducing object-oriented concepts, its limitations have led some to seek alternatives. Scratch 3 introduces 'reporters' aimed at addressing some of these issues, but users note that customization options for these features are limited. Alternatives like Snap! and Python with PyGame are suggested for those looking for more robust programming environments that maintain a user-friendly interface. Overall, while Scratch is recognized as a valuable introductory tool, there is a call for improvements and consideration of other programming languages for continued learning.
FactChecker
Science Advisor
Homework Helper
Messages
9,347
Reaction score
4,627
I recently encountered the Scratch programming language. I wonder what people think of it considering some notable (IMHO) shortfalls. I do not like the way it handles comments, the lack of returned values from "functions", and some other aspects that I think should be basic. But it does seem to be a quick way to get a child interested in programming.
 
Science news on Phys.org
I found Scratch excellent for a first introduction to programming (with an OO bias) for my kids when they were in primary education, more than 5 years ago. This was the original Scratch, and then I think Scratch 2 for the youngest - I have no experience of Scratch 3.

The lack of return values I assume to be a design choice to encourage encapsulation but I agree this doesn't really work because you end up using global variables as a (highly undesireable) work-around. I gather Scratch 3 has 'reporters' which should improve this situation.

Similarly I assume that comments are somewhat 'tacked on' to encourage self-documenting code (descriptive names for variables and blocks).
 
  • Like
Likes FactChecker
pbuk said:
The lack of return values I assume to be a design choice to encourage encapsulation but I agree this doesn't really work because you end up using global variables as a (highly undesireable) work-around. I gather Scratch 3 has 'reporters' which should improve this situation.
I will have to investigate reporters. I was not aware of them.
EDIT: I was aware of their built-in ones, but not by name. They are everywhere. But I don't see a report block that I can modify for my own variables in my download Scratch Desktop Setup 3.3.0. It appears that a usable "report" is a feature of Snap!, which is an alternative to Scratch. It seems to have some advantages for teaching programming principles.
Similarly I assume that comments are somewhat 'tacked on' to encourage self-documenting code (descriptive names for variables and blocks).
If that was their intent, I completely disagree with their decision. They definitely need to at least include a comment block for documenting sections of code. Attaching comments only to lines of code is a problem if that line's block moves.
I am genuinely surprised that the MIT developers of Scratch have not paid more attention to these fundamental things.

That being said, I tend to agree that it does get children interested in programming and does introduce the basic concept of OO relatively painlessly.
 
Last edited:
There seem to be some great aspects of Scratch and some serious omissions. If I decide that the basic 3.0 Scratch language is not good enough for a child's continued learning, are there extensions or alternatives to switch to? For instance, is there a programming environment that uses Python / Basic / etc. and retains the simulation aspect of Scratch?

EDIT: Snap! looks like a Scratch-like language with some advantages for teaching programming fundamentals.
 
Last edited:
FactChecker said:
I will have to investigate reporters. I was not aware of them.
EDIT: I was aware of their built-in ones, but not by name. They are everywhere. But I don't see a report block that I can modify for my own variables in my download Scratch Desktop Setup 3.3.0.
Yes sorry, I had misinterpreted something I read.

FactChecker said:
There seem to be some great aspects of Scratch and some serious omissions. If I decide that the basic 3.0 Scratch language is not good enough for a child's continued learning, are there extensions or alternatives to switch to?
I'd suggest moving to a 'proper' language.

FactChecker said:
For instance, is there a programming environment that uses Python
Try PyGame with a user-friendly IDE - PyCharm or possibly Visual Studio Code (not so user friendly, but if you can get over the learning curve well worth it).

FactChecker said:
Basic
Please no.

FactChecker said:
etc.
Java? Or how about a bit of everything on Codecademy?

FactChecker said:
EDIT: Snap! looks like a Scratch-like language with some advantages for teaching programming fundamentals.
I have no experience with Snap, but I'm not sure I see the advantage over a 'real' language like Python.
 
  • Like
Likes FactChecker
I will look into PyGame. If it is Python in an environment which easily makes games, that would be ideal.
 
Okay, so this is something I have been thinking about for a long time, because it's something I am passionate about and something that has personally affected me - and that's the generally negative attitude that people take towards physics. I think it's fair to say that the secondary (Middle+ High) school that I go to is one of the most elite in the country - yet I am yet to see another person with a passion for physics. There are countless who have dedicated their life to Chemistry...

Similar threads

  • · Replies 6 ·
Replies
6
Views
4K
Replies
86
Views
1K
  • · Replies 37 ·
2
Replies
37
Views
1K
  • · Replies 397 ·
14
Replies
397
Views
20K
  • · Replies 40 ·
2
Replies
40
Views
8K
  • · Replies 22 ·
Replies
22
Views
4K
  • · Replies 1 ·
Replies
1
Views
470
  • · Replies 122 ·
5
Replies
122
Views
16K
  • · Replies 9 ·
Replies
9
Views
2K