Thoughts on using the Scratch language as an intro to programming

In summary, the conversation discusses the Scratch programming language and its notable shortfalls, such as the handling of comments and lack of return values from functions. However, it is still seen as an effective way to introduce children to programming. The lack of return values may be a design choice to encourage encapsulation, but it can lead to using global variables as a workaround. Scratch 3 has 'reporters' which should improve this issue. Comments are seen as a way to encourage self-documenting code, but their implementation may not be effective. There are extensions and alternatives to Scratch, such as Snap! and PyGame, which use more traditional programming languages like Python. Some suggest moving to a 'proper' language for continued learning.
  • #1
FactChecker
Science Advisor
Homework Helper
Gold Member
2023 Award
8,530
4,051
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
  • #2
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
  • #3
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:
  • #4
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:
  • #5
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
  • #6
I will look into PyGame. If it is Python in an environment which easily makes games, that would be ideal.
 

1. What is Scratch language?

Scratch is a visual programming language developed by the MIT Media Lab. It is primarily used for creating interactive stories, animations, and games.

2. Is Scratch language suitable for beginners?

Yes, Scratch is designed to be easy to learn and use, making it a great language for beginners to start with. Its visual interface and drag-and-drop blocks make it accessible to all ages and skill levels.

3. Can Scratch language be used as an intro to programming?

Absolutely! Scratch introduces programming concepts such as loops, conditionals, and variables in a user-friendly way. It can help beginners understand the logic and structure of coding before moving on to more complex languages.

4. Are there any limitations to using Scratch as an intro to programming?

While Scratch is a great way to learn the basics of programming, it may not be suitable for more advanced projects. Its visual nature can be limiting in terms of the complexity and functionality of programs that can be created.

5. What are the benefits of using Scratch as an intro to programming?

Using Scratch as an intro to programming can help beginners develop problem-solving skills, logical thinking, and creativity. It also provides a strong foundation for learning other programming languages in the future.

Similar threads

  • STEM Academic Advising
Replies
21
Views
1K
  • Programming and Computer Science
12
Replies
397
Views
13K
  • Set Theory, Logic, Probability, Statistics
2
Replies
40
Views
6K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
22
Views
3K
  • Programming and Computer Science
Replies
9
Views
1K
  • Computing and Technology
2
Replies
44
Views
3K
  • Programming and Computer Science
4
Replies
122
Views
13K
  • Programming and Computer Science
Replies
15
Views
1K
Replies
10
Views
2K
Back
Top