Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I'd imagine learning at least a little Python alongside Scratch would be more optimal than Scratch alone. It's like bilingual education, it has great benefits although individuals may gravitate towards a preferred option. Perhaps it's a bit like comparing Minecraft to Factorio:

https://www.idtech.com/blog/scratch-vs-python

Looking around, it also seems possible to set up your own Scratch server, which is comparable to setting up a Minecraft server, then you could use Python to pound away via the Scratch API (which is otherwise disallowed by the Scratch team on the public Scratch servers, reasonably enough). That might be a good project for older kids (teenagers).



Snap language by SAP (snap.berkeley.edu) would be a better stepping stone rather than directly going to industrial languages. It's got first-class functions, first-class lists, object-oriented programming, APL-style vector operations which are very handy for media processing, machine learning etc, continuations, ability to make HTTP calls etc - while keeping the same playful environment as scratch.

Features like this enable serious study of computer science possible with Snap: https://emu-online.de/ComputerScienceWithSnap_2.pdf

There's even a variation for 3D geometries: beetleblocks.com

Scratch is immensely popular but with lack of reporter blocks and lack of first-class lists, it encourages many bad programming habits (global state, no datas tructures like stack/queue/tree/graph etc. The one advantage it has over SnapLang is that it has better performance for building intensive games etc.


JS is cleaner than Python for this, IMO:

https://developer.mozilla.org/en-US/docs/Games/Tutorials/2D_...

It's also more likely to run a few years from now, and it works on tablets, grandpa's ailing windows box, etc.


I mentioned this already in an earlier post but I've been working towards addressing this by building a tool that bridges the gap between Scratch and Unity. Talking with Scratch Team members in the past, Unity has been cited as a good exit strategy. Unlike many other languages you aren't being dropped into a text-only environment. I think the main downside is the initial presentation of Unity can be a little daunting.

The tool I'm working on adds a new entry to the main Unity menu bar - "Scratch". Clicking on this allows you to enter the project ID of a Scratch project. Once done, the tool pulls the assets (graphics, sounds, etc) directly from the Scratch website as well as pulling the code and converting it to native C#. The idea behind this is that a student who is intermediate to high level at Scratch can import their favourite Scratch project over to Unity. They can look at the C# code to see the comparison, inspect and modify any of the assets, see the Unity components added to each Unity Game Object, etc. Basically it puts them in a position where they have a project that they have written in Scratch that they can no play in Unity. They can breakpoint the code and single step through it. Essentially it is designed to take away much of the initial impact of having to start from an empty canvas in Unity.

This is currently a WIP but I'm aiming to have a beta version ready within months. I made an early pre-beta video a while back to demonstrate it in action. You can view the video at https://youtu.be/nuUF9BcJT8g


Other platforms similar to Scratch actually teach Python!

They start off with drag and drop coding and then Python. The Python is actually pretty fun, you write code to make animals move around and get stars.


Which platforms are you referring to?


Also not OP, but I literally just learned about Hedy [1] today. No experience except from clicking through it for 20 minutes, but it looks quite interesting, taking somebody from a language with a very simple syntax (and limited functionality) to full blown Python, one level at a time, by making the language gradually more complicated (and more powerful).

[1] https://www.hedycode.com/


I also quickly went through the basic tasks in 17 levels of Hedy in about 20 mins. (I just know a little programming.) Hedy is text-based and introduces ideas such as: print, entering variables, if, else, repeat, ... I really liked the gradual approach, which keeps you going forward onto the next level.

There are additional tasks at each level (see tabs at top) which I didn't try. It seems that these tasks are best done from left to right in order to get the basic idea of what is required.


Do kids who start programming with Hedy get confused about when a piece of text is interpreted as a variable vs. a string?

https://www.hedycode.com/hedy/2#default

The way it automatically detects variable within strings seems to magical. OTOH AIUI Hedy has been developed alongside research on what works for kids.


IIRC one of Hedy’s unique features is that it gradually increases in complexity as you “level up” including introducing what we’d call “breaking changes”. At level 4, they start allowing and requiring you to quote string literals: https://www.hedycode.com/hedy/4#default


Nice!

I'm excited for my son to try it out once he's gotten comfortable with scratch.

At the moment, he's more interested in the visual design part of scratch than the programming, so I probably need to find some cool existing animations to inspire him.


i found it very confusing that the introduction at each level links to the next level but does not tell you to try the exercises. i didn't even realize that the tabs were exercises per level as i consider tabs a higher level hierarchy compared to the previous/next buttons. (i expect those to work within a tab, and not switch to a different row of tabs)

and also, why introduce an echo command in level 1 only to drop it in level 2? they could have waited and introduced ask in level 2 or 3 even.

i love the quiz questions though, they even make me, as an experienced programmer, think


Not OP, but CodeWars is a platform I heard about that fits the description


I think maybe Lego mindstorms does this.


Not OP, but Makecode does this.


It's almost as if Python was designed to make it easy for kids to learn how to program.


Scratch now uses blockly under the surface and blockly itself is written in JS. If you wanted to extend things, JS seems like a more natural choice.


the thing I've found teaching is that the place scratch really shines is teaching kids who are a bit too young to "get" Python. I think it's related to their language/visual intuition but a seven year old will be able to pick up quite complex things in Scratch visually without being able to grasp fairly basic things in Python. Give them a couple of years in the oven with or without Scratch and they'll be much more confident and ready in picking up Python, but scratch can teach them a lot in the mean time.


etoys for squeak, which is somewhat similar to scratch (and supposedly influenced its development) has the ability to switch between blocks and the smalltalk code that the blocks generate. so you can basically look under the hood (and also change the smalltalk code)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: