8 ms·
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
by photochemsyn 4y ago
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 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).
- cyrialize 4y agoOther 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.
- teucris 4y agoWhich platforms are you referring to?
- giovannibonetti 4y agoNot OP, but CodeWars is a platform I heard about that fits the description
- mstade 4y agoI think maybe Lego mindstorms does this.
- Elte 4y agoAlso 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/ https://www.hedycode.com/
- pdm55 4y agoI 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.
- rahimnathwani 4y agoDo 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 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.
- alephaleph 4y agoIIRC 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 https://www.hedycode.com/hedy/4#default
- rahimnathwani 4y agoNice! 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.
- em-bee 4y agoi 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
- askvictor 4y agoNot OP, but Makecode does this.
- knicholes 4y agoIt's almost as if Python was designed to make it easy for kids to learn how to program.
- disembiggen 4y agothe 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.
- em-bee 4y agoetoys 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)
- eshnil 4y agoSnap 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 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.
- hedora 4y agoJS is cleaner than Python for this, IMO: https://developer.mozilla.org/en-US/docs/Games/Tutorials/2D_Breakout_game_pure_JavaScript 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.
- hajile 4y agoScratch 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.
- deleted 4y ago[deleted]
- RokCoder 4y agoI 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 https://youtu.be/nuUF9BcJT8g