3 ms·
Hedy is a gradual programming language that helps kids to learn Python
- mastrsushi 5y agoSo it's like the programming language equivalents of Weenie Hut Jr and Super Weenie Hut Jr.
- usrusr 5y agoAbout time something got named after Lamarr! The usual "inventor of Bluetooth, in a way" always seems like a bit of a stretch, but her story deserves getting told and naming a fun learning language might be just the right amount of spotlight. (I'm blindly assuming that it was named after her, haven't checked)
- ciconia 5y ago"That's Hedley!" https://www.youtube.com/watch?v=gBmkyDTX08Y https://www.youtube.com/watch?v=gBmkyDTX08Y
- smartbit 5y ago4 month ago covered https://news.ycombinator.com/item?id=25249471 https://news.ycombinator.com/item?id=25249471
- antattack 5y agoIn my opinion Hedy badly needs syntax highlighting, along with visible indentation marks (space and tabs).
- vanderZwan 5y agoI'm sure the developers don't mind that feature being added at some point either, but they aren't prioritizing it. It's a research language that is being designed as they are doing workshops with children to see what does and does not work. Figuring out what helps them learn best has priority over adding features just because we're familiar with them as experienced programmers.
- zestyping 5y agoDespite the criticism in the older HN thread, I actually found this talk pretty compelling. In particular, the idea that you start with a language level that is missing capabilities so that you directly experience the problem and then understand the motivation for the additional complexity of the next level. When I taught Python, beginning students would spend a huge amount of time just struggling with how to quote strings. Why do strings show up with \n in them sometimes and actual line breaks sometimes? Why are there sometimes backslashes that appear and disappear in front of other backslashes or quotation marks? Why does the output of typing "print x" give you something different from "x" (which actually shows you repr(x))? There are very good reasons for all of this, but it's a lot to try to explain and absorb at once. Quoting strings is second nature to me. But to understand why it's necessary, you have to imagine what happens when you don't quote strings and then you run into trouble like "how do I write a quotation mark?" It's just harder to imagine encountering that problem and then imagine how you would solve it and what might work or not work, than it is to actually experience the problem and work with a concrete instance of it. The switch from print as a statement (no parentheses) to print as a function in Python 3 (parentheses required) feels like a problem with some similarities. To the beginner, Python 3 syntax has just added some superflous extra punctuation to print(). To experienced programmers, it makes sense to treat print as a function because then you can pass it to other functions, re-assign it, and so on — so we underestimated its impact on beginners. To see "print(3)" and answer "why did you have to write (3) instead of 3?" you have to explain higher-order functions or monkey-patching or something that a beginner doesn't know about, and they have to imagine the hypothetical situation in which that would be necessary. That takes a lot more work and abstract reasoning than having the situation right in front of you and discussing what to do about it. It's not much of a leap from there to postponing the extra syntax until we have the concepts to talk about why we need it.
- qyi 5y agoPython is just for playing with strings, which is a contrived problem brought about by UNIX-style OS. And other confusing non-fundamental, stuff that just leads to months of cognitive dissonance when one inevitably philosophizes over it: objects, classes, exceptions, the ability to modify global variables from other modules, metaclasses, etc. > There are very good reasons for all of this, but it's a lot to try to explain and absorb at once. The reason is because you're embedding strings into the program, which is just a string. There's no reason languages have to be like this. The ironic part is that developers are just like children and do not understand the significance of this either, which is why string injection vulns still exist today.
- ta9999 5y agoI'm still not convinced Python's syntax is great for beginners.
- lupire 5y agoPython was originally derived from a teaching language called ABC. It says something that Python has grown so complex as to need a new intro version.
- z3ncyberpunk 5y agoCool. thanks for sharing.
- xtracto 5y agoCould you elaborate why? Personally I agree, and the reasons I have is the use of white-spaces as part of the syntax (being one of the only modern languages to do so) and the need to explicitly add the 'self' keyword in class methods. I would still lean on one of the modern Logo's to learn kids or non-technical people to program, such as MSWLogo or NetLogo (I used to teach programming to people from Social Sciences using Netlogo).
- Wowfunhappy 5y agoI ran through the demo for a bit. It's an interesting idea, but I'm very much not into changing the rules out from under the user. That creates an unnecessary layer of complexity, and prohibits exploration. This might seem a little far afield, but I've been playing a lot of Baba Is You lately. For a game that's all about rewriting rules, a lot of logic is completely arbitrary. Why does "Stop" take precedence over "Defeat", and why does "Rock is Rock" take precedence over "Rock is Water"? In the end, it doesn't matter, because the game is consistent, so you learn the rules once and can rely on that behavior.
- lacker 5y agoJust based on my experience teaching elementary-school kids things, I think kids would be most helped by making an iPad-native environment for programming. Things like using a cursor in a multi-line text input are not natural for kids in early grades even when I think mentally they have the problem-solving ability to start programming. It ends up being a "tax" on teaching things and they spend more of their time struggling with the interface than they do struggling with the actual programming concepts. Plus it is just really boring to struggle with syntax and typing. It is much more interesting to think about how to get a program to work, and kids are only really going to learn things well if they find it interesting. At least my kids.
- quacked 5y agoOut of curiosity, why do kids need to learn programming early at all? It seems like you could just wait until cursor and multi-line text entry wasn't difficult for them to comprehend, and start teaching them then. I could be totally wrong, but I've never seen an instance where kids exposed to dumbed-down "reduced complexity" material outperform those that weren't, except in sports and art. You can teach the mechanics of a tennis swing with small racquets and oversized balls, but can you really teach pointers with an iPad environment?
- seanmcdirmid 5y agoI learned programming in the 2nd grade on a TRS 80, in mouse or even text editor, just a command line to add lines of basic. If you needed to add a line, hopefully you had some numbers left between lines you already entered :) I think the simplicity and limitations of computers at the time had a lot to do with them being accessible to a second grader.
- vanderZwan 5y ago> Out of curiosity, why do kids need to learn programming early at all? Simon Peyton Jones gave a great lecture on this topic at Strange Loop a few years ago. Basically, "computer science" can be reframed as the study of information, computation and communication. Thinking about these subjects rigorously and solving the problems surrounding them is a foundational skill that is much more broadly applicable than just in programming, and really does not need to involve computers at all (as he shows in his lecture. > I could be totally wrong, but I've never seen an instance where kids exposed to dumbed-down "reduced complexity" material outperform those that weren't, except in sports and art. I'm not sure I follow. I mean, that's how children learn to read and write, it is not? Or how they learn maths at school: one step at a time. [0] https://www.youtube.com/watch?v=y-xgWLYQc4g https://www.youtube.com/watch?v=y-xgWLYQc4g
- smoldesu 5y agoThis is great. I think the biggest misunderstanding with computers is how abstraction works, and why we use it. Hedy seems to be a pretty good example of why people don't need to see the big picture all at once. One of the biggest thing that stopped me from really digging in and writing code was the fear that I didn't fully understand what was going on, so abstracting away the complicated backend seems like a great way to foster a sense of confidence in a young programmer. My only concern is how fast this can be learned: while it seems like a great track to follow for a few years, one of the things that actually made me get into programming was sitting down and reading some documentation, point blank. It takes a few days, but the deep dive is one of my favorite ways to learn a language.
- smnplk 5y agoI don't think the goal should ever be "to learn Python". It's never about syntax or programming language. It's not about learning "how to code" either. It's about learning what can be done and how things work. What needs to come before how.
- deleted 5y ago[deleted]