9 ms·
How Scratch teaches kids to follow the hacker ethic
- jlebrech 9y agoI want to see something that grows with you, and you can use it from childhood right up to the enterprise.
- thearn4 9y agoI feel like Python is the closest that we've come to this, though it is imperfect.
- e12e 9y agoYeah, python is pretty great. But racket keeps on getting more and more interesting in my opinion, and I wouldn't be surprised if it ended up becoming a real cradle to grave system. Compared to python it still seems light on "industry" mind-share - but growing economic systems like python or ruby takes a lot of time.
- analog31 9y agoHaving observed kids, including my own, it's unpredictable what will spark their interest, and it's good to have a few things to try. My kids both enjoyed Scratch for a while, before moving on to other things. In my view a benefit of Scratch is that teachers can learn it.
- jamesmishra 9y agoScratch is not far off from growing with you. Back in 2013, I taught a 30-hour summer class for elementary and middle school students aimed at this. It was bout 20 hours of programming concepts in Scratch, and then 10 hours of transferring their learning of Scratch semantics into Python syntax. Most of the younger students in the class wanted to keep playing with Scratch, but the older ones intuitively understood they could go far with Python -- and that Scratch was a nice place to test/debug algorithms before implementing the "final" version in Python.
- jnicholasp 9y agoDo you still have any of your curriculum or class notes? My nephews are in elementary school, and I'm looking for programs that their school/after school organizations could easily adopt.
- jecel 9y agoLogo was supposed to have "a low floor and no ceiling" and while Scratch certainly lowered the barriers to entry (floor) considerably it has a very serious ceiling (limits to what can be done in it). An early graphical Logo called Boxer was much better in this regard and there are projects to extend Scratch. John Maloney, who was not mentioned in the article but was the key person to making Scratch happen is working on: https://wiki.scratch.mit.edu/wiki/GP_(programming_language) https://wiki.scratch.mit.edu/wiki/GP_(programming_language) One of the links on that page is to Snap! which was used to introduce programming at Berkeley. You can use it as a Scratch written in Javascript and so able to run in any web browser. The extensions are a bit clunky, but pretty interesting.
- wallflower 9y agoThe beauty of Scratch and other similar tools is that instead of the teacher asking questions, the child learns to ask their own questions. If you are interested in learning more about this mindset, you should read Mindstorms by Seymour Papert (RIP). https://www.amazon.com/Mindstorms-Children-Computers-Powerful-Ideas/dp/0465046746 https://www.amazon.com/Mindstorms-Children-Computers-Powerfu... Scratch can be a "gateway drug" to languages that professional programmers use. The extensions/abstractions of Scratch from Berkeley that deal with making it do complicated things seem like putting a fish on a bicycle. Sometimes, you just have to leap and try to not fall.
- homarp 9y agoMindstorms first edition is now freely available: http://mindstorms.media.mit.edu/ http://mindstorms.media.mit.edu/
- wallflower 9y agoThank you!
- tonydiv 9y agoYou are so right! There is a significant movement in the education industry to move toward "Project Based Learning." Papert is one of the founders as I'm sure you know. Here's a book I recommend if you're interested in learning more about this subject too: https://www.amazon.com/Loving-Learning-Progressive-Education-Americas/dp/0393246167 https://www.amazon.com/Loving-Learning-Progressive-Education... I have been inspired by Papert/Little when building my curriculum to teach kids to code: http://block.school http://block.school . Would love to hear what you think :)
- donohoe 9y agoEvery time I sit down and watch my kids using Scratch I have to say what a horrible piece of crap it is. I'm not just annoyed because I had to install Flash for them to use it. Surely we can do better?
- baldfat 9y agoThere are many many other scratch like languages. https://wiki.scratch.mit.edu/wiki/Alternatives_to_Scratch https://wiki.scratch.mit.edu/wiki/Alternatives_to_Scratch Personally my kids didn't like Scratch but my daughter will do some Racket with me.
- spdegabrielle 9y agoDon't forget Bootstrap! though it is aimed at an older age bracket than scratch or byob http://www.bootstrapworld.org/ http://www.bootstrapworld.org/
- baldfat 9y agoWhich is actually a sub script of Racket :) Just like Hacker News Arc and my beloved Racket.
- chriswarbo 9y agoCurious to see that EToys is missing from that list; it's Smalltalk-based like Scratch is/was, and like Scratch is preinstalled on all OLPC XO laptops (although I've managed to exhaust the memory quite easily with it!)
- gbear605 9y agoI'm not really sure where you're coming from. I'm a CS major who was introduced to CS from Scratch and if it weren't for Scratch then I might not be doing it now. I think it does a great job of it's goal of getting kids interested in programming. Although when I used it, it was Scratch 1.x, which was a stand alone app that didn't require Flash.
- dmoo 9y agoScratch and its clones are a great way to start for kids without the problems of syntax errors. Everything always works. It might not do what you want but it always does something. Kids at my local coderdojo enjoy beetleblocks which is like 3d scratch http://beetleblocks.com/run/ http://beetleblocks.com/run/ The files can be exported and used in a minecraft clone https://twitter.com/damianmooney/status/843594021024993280 https://twitter.com/damianmooney/status/843594021024993280 Microsoft have just announced a block based code environment for minecraftedu https://youtu.be/3rKuSlgqePo https://youtu.be/3rKuSlgqePo It seems like a way of coding that has really taken off.
- tonydiv 9y agoSo true! We love Scratch. There is also an open source project called Blockly run by Google. It's the "puzzle piece" portion of Scratch, which is an amazing resource to integrate into other kids learn-to-code projects. I am using Blockly at http://block.school http://block.school We are the first live online school teaching kids to code. We've paired the Scratch concept with a 3D block world sorta like Minecraft. We're building out the curriculum now but you can try a demo here: http://course.block.school/demo http://course.block.school/demo We have some pretty amazing students building things at ages 6+ :)
- patja 9y ago
- adamredwoods 9y agoI find it more interesting how the term "hacker" has evolved into becoming a positive value term. I wonder if the term "hacker" is still considered positive at the adolescent stage, or is it just a business class perspective?
- treehau5 9y agoIt was always a positive term until mainstream media decided to depict the person in the back ski mask typing really fast and stealing bank accounts as a "hacker" I like rms's definition https://www.gnu.org/philosophy/rms-hack.en.html https://www.gnu.org/philosophy/rms-hack.en.html
- dragonwriter 9y agoIt wasn't just the mainstream media deciding out of nowhere to apply the label to an unrelated group; there was a substantial criminal element in hacker culture, and it was through that element that hacker culture became visible, and so that's why "hacker" got stuck on computer criminals.
- analog31 9y agoI think it started as a positive term, but has been given a negative connotation. I've cautioned my kids to avoid using the term for themselves.
- malkia 9y agoIt'll always have two meanings to me, no matter what. Not the same, but the word pirate - has also two, or maybe three meanings - the really bad old pirate, the mythical "good" pirate, and the modern day (most of them Somalian) pirates. A hacker is just someone who does not respect boundaries, be it what could be done, and what should not be done, and then more. Just a hacky definition I just came up with :)
- LeifCarrotson 9y agoWhere does a modern digital or intellectual-property pirate fit into that spectrum?
- malkia 9y agoYesterday was "Open House" at my son's elementary school. He showed me a lot of cool projects, but also scratch and his several .sb2 files he's been working on, and I was amazed that he's dealing fine with logical statements, other kinds of blocks, forever loops, variables, etc. We did together some scratch in the past, but ended up just moving a character in all directions. And here he showed me a program that asks you for two numbers, then... operation - and he typed "add" and finally it came - sum of two numbers. Pretty cool!
- tonydiv 9y agoHow old is your child? That's awesome!
- whatnotests 9y ago23
- malkia 9y agolol. that would've made me a really young father, but he's only 9.
- tonydiv 9y agoAwesome, are you an engineer too? A few questions if you don't mind me asking: 1. How serious are you about your child's coding education? 2. Do you teach her/him too? 3. Would you ever hire an instructor in a 1-on-1 or 1-on-2 setting if it were affordable?
- malkia 9y ago1. I'm trying to be serious, but I often lose touch. My wife is more in control of the matter. 2. I'm not sure teaching is the best way to describe it... more like doing it together, and sharing knowledge. I don't consider myself to be a good teacher (after seen how others do it). Occasionally I pull real good "teachin'" - seriously, but then often I fell into too many details, and he gets bored. 3. Maybe, but possibly when he goes to middleschool. I grew up in Bulgaria, and since 7th grade I was in specialized Mathematics and Informatics (the "eu" word for "computer science") high-school. I went there because I was good in my elementary, middle school... only to realize I was just average, or even below compared to the other kids. But then I discovered that programming is what I really wanted, unlike many of the other kids (that was back in the 90s), and there was much less competition in this area. Nowadays its quite different... Back then, even saying that you were playing video games, and kids would consider you dork/geek/etc. But back to math-specialized high-school - Since I've started doing poorly, my parents got me 1-1 (sometimes 1-2) math teacher, just to keep on level. It was the norm to have 30-40 math exams for homework, and it took everyone of us hours to finish (Though one difference with schools here, is that there is rotation when you go to school - one month you go in the morning, the other month in the afternoon - so there was plenty of time to finish homework). So, it's definitely beneficial to have an instructor. It helped me. We are considering, but also from another standpoint - peer pressure. When all our friends are talking about how their kids go with private tutors/instructors - then you have to get on that bandwagon... I mean I hate that, but I know we have to do it. Last rant, I wish a classroom where the teacher would have only few kids - 5-6, not 20. I feel this would greatly reduce the need for instructors. And I'm willing to pay more taxes, whether I had or had not kids.
- wonderous 9y agoCurious, has anyone ever seen a new user to Scratch figure out on their own that the ".sb2" file is really a zip file: https://wiki.scratch.mit.edu/wiki/Scratch_File_Format_(2.0) https://wiki.scratch.mit.edu/wiki/Scratch_File_Format_(2.0) To me, this would be more of a sign of a "hacker" than figuring out how to code something, though maybe it's me.
- Retr0spectrum 9y agoPlenty of scratch users have been manually modifying the .json files contained with in the .zip/.sb2 archive, to create "hacked blocks", which are not possible to create with the Scratch GUI.
- wonderous 9y agoRight, but did the users you've personally known doing this figure it out on their own and were they "new" to coding. To me Scratch is awesome, but doesn't to me feel like a tool for teaching people to hack at things.
- Retr0spectrum 9y agoI don't know any Scratch users personally. Anyway, that's irrelevant. IMHO the real reason Scratch teaches its users the "hacker mindset", is the way it forces you to create complex things with a relatively simple and limited toolset. In a similar way to how C64 demo coders push the hardware to its limits to achieve interesting effects. To give an example, scratch has no 3d rendering capabilities, and the only 2d rendering techniques are using bitmap/svg "sprites", and the "pen", which lets you draw arbitrary lines between points. Despite these limitations, many more advanced users have created 3d polygon rendering engines.
- deleted 9y ago[deleted]
- gbear605 9y agoI didn't do it with Scratch 2.0, but as a new programmer with Scratch 1.x, I figured out how to access the Smalltalk backend and messed with that to add new blocks and do other similar things.
- alextheparrot 9y agoIn college I took a single credit Scratch class where we'd go out in the community and teach an after-school lesson for about an hour once a week to 4th and 5th graders. Honestly, it was one of the best parts of my semester. Seeing them grow and explore was fantastic. In line with the hacker ethic, we decompiled Minecraft as a demo and started playing around with the jump math with them. It instantly clicked, based on their experience moving Scratch characters, what the changes we were doing were going to do before we ran it. That's a powerful link, even if they didn't realize that "jumping to the clouds" still causes fall damage (Which was subsequently turned off in the code).
- jnicholasp 9y agoDo you mind sharing what college this was at? My email is on my profile if you prefer. My nephews are in elementary school, and we're right next to the local university. I'd love to see if we could get a program like that going here.
- alextheparrot 9y agoHere's a link to the course webpage that might be helpful: https://sites.google.com/site/uwmadisoncsafterschool/ https://sites.google.com/site/uwmadisoncsafterschool/. Andrea (Her email is at the bottom of the linked page) is great and also teaches a "Grandparent University" in Scratch where grandparents come with their grandchildren and learn to program together.
- jnicholasp 9y agoExcellent, thanks so much.
- RUG3Y 9y agoMy six year old loves scratch. I got him started, and a couple of hours later he'd figured out how to make a character jump around the screen, shoot laser beams, and make sound effects. I was thoroughly impressed. I think the way they lay things out is great for kids and gets them introduced to logic and control structures in a really simple and intuitive way.
- yawz 9y agoMy six year-old loves coding with Disney's Moana characters [1]. It's the same principle. It's interesting to see him learn how to think differently, and understand concepts such as looping. :) [1] http://partners.disney.com/hour-of-code/wayfinding-with-code?cds http://partners.disney.com/hour-of-code/wayfinding-with-code...
- patja 9y agoScratch is the tool I go back to over and over for teaching my middle school (age 11 - 14) students. And it keeps getting better. The classroom feature they recently added completely resolved my number 1 issue with Scratch which was the difficulty in getting parents to follow through and approve their student's accounts to share projects with the class and teacher. I do really really wish they would get off of Flash however. Managing the Flash installs on the shared laptops at our school is a headache.
- tonydiv 9y agoWhat curriculum do you use? I am working on a project in the space, I would love to ask you some questions if you don't mind!
- patja 9y agoI've developed my own curriculum over the past 6 years or so of teaching using it. I have a series of assignments I created to get them to build simple games and music videos, leaving a maximum of latitude for individual creativity around the content, while requiring use of specific programming concepts. I also teach how to edit music and images for importing to Scratch, including transparency and layering. Honestly I think that is some of the more broadly useful stuff in my class -- so many of these kids have no idea how to crop and resize a photo or cut out a portion and make a transparent background. We also cover US Fair Use and intellectual property laws. I only get each class for about a dozen 55 minute classes per year which really makes me streamline my approach for a minimum of lecture and maximum hands-on time, which can be a challenge, but on the other hand I get 100% of the student body passing through my course, so I get the chance to teach all learners, those with desire and aptitude and those who come in saying "I'm no good at technology" and leave with a sense of pride in what they've achieved.
- tonydiv 9y agoThat is really cool, I really like how you're incorporating their creations into a broader context. It aligns really well with Tom Little's concepts of making school more of a holistic education that is intertwined with social justice, personal responsibility, and so on. What's your email? I would love to get some feedback on a project I'm working on from teachers in the space. I'm a teacher too :) It's a live 1-to-1 or 1-to-2 online coding course for kids: http://block.school http://block.school
- strictnein 9y agoMy son's school does a lot with Tynker. He ends up spending lots of time with it when he's given an option on what he wants to work on. I know originally it was seen as a Scratch rip off, but they've really done some cool stuff, including having the ability to easily deploy Minecraft mods that he's created, and invite friends to join him to play around with them.
- tonydiv 9y agoGiven your son's interests, I would love to get some feedback on a project I'm working on. It mixes Scratch-esque concepts with a 3D block world similar to Minecraft. I'm building out the curriculum right now but here's a simple demo: http://course.block.school/demo http://course.block.school/demo
- eejdoowad 9y agoI showed my 9-year-old nephew Scratch, and within an hour he had designed a dancing man that made noise and moved around. It makes creating interactive games and stories easy and fun. Why isn't there a Scratch for adults? A serious tool targeted to artists and professionals that makes it easy to publish interactive stories and presentations using standard web tech.
- renesd 9y agorenpy is a visual novel engine you were looking for. https://www.renpy.org/ https://www.renpy.org/
- tonydiv 9y agoI actually think Scratch is great for adults to learn how to program. I think there isn't a Scratch for artists/professionals to create because the educational aspect is hard to nail, and pairing that with a publishing tool is even harder. It's not impossible, but it sounds really hard to get right.
- austenallred 9y ago> Why isn't there a Scratch for adults? What exactly would be different between a Scratch for kids and a Scratch for adults?
- e12e 9y agoIn some ways the the Pharo fork/branch of Squeak Smalltalk might be seen as an answer answer to the related question of "How would Squeak (Smalltalk) for adults differ from Squeak". One problem I see with Scratch is its slow pace in moving forward away from flash and toward something that is easy to self-host: cloud only is great until underpowered Internet at your local library forces kids to stop coding mid session. Flash can sometimes be a challenge to get to work reliably in a modern browser on a pc you might not have admin rights on (compared to something based on fairly conservative js, like https://www.lively-kernel.org/ https://www.lively-kernel.org/). I've briefly looked at the Berkley snap!-project, and it looks a little easier to get into self-hosting and modifying (but I've yet to do so): https://snap.berkeley.edu/ https://snap.berkeley.edu/ In the same breath, I should probably also mention croquet/cobalt - although it appears no one has yet picked it up and ported it to the new generation of vr headsets: http://www.opencobalt.net/ http://www.opencobalt.net/ To save some searching: http://pharo.org/ http://pharo.org/ http://squeak.org/ http://squeak.org/
- valine 9y agoI was one of the very first scratch users. I started using it back in 2007, so I would have been 10 years old at the time. I have a job as a graphics programmer now, which I completely attribute to the countless hours I spent building games in scratch. Discovering scratch back then was really a life changing thing for me. Its exciting to see how huge the community is now and all the kids discovering programming the same way I did.
- andresmh 9y agoThat's so cool! What was your handle? Mine was andresmh. I worked on the community part during grad school :-) Scratch on!
- WillPostForFood 9y agoI know everyone loves Scratch, but I think all but the youngest kids can just as easily absorb a text based language, and ultimately get more out of it. I've worked with kids in 2nd, 3rd, and 4th using Scratch, Processing, and most recently Lua (Pico-8). I didn't see any difference in the kids ability to pick up and build working programs that made them happy, but the kids who did it in Processing and Lua seemed to have a better grasp of the concepts, and be better prepared to jump into more common languages. https://processing.org/ https://processing.org/ https://www.lexaloffle.com/pico-8.php https://www.lexaloffle.com/pico-8.php
- tinyrick2 9y agoVery interesting. I have a few questions: What challenges did you encountered the most when teaching kids to code? Do you have any suggestion on how to teach coding to kids from non-english-speaking countries? I think it would be much more challenging since most programming languages are written in english, and these kids are not fluent in english. Or, is it better if I write a new programming language using my native language?
- mikegerwitz 9y agoI just introduced my 5-year-old to Scratch (1.x, since 2 requires flash) now that he can read phrases and understand some basic concepts. At this age, he can handle dragging and dropping some blocks. Although he can type, I think it'd be a bit overwhelming for him to use a text-based programming language for a few reasons: - He still spends quite a bit of time finding keys on the keyboard, so that'd be a major distraction and would break flow. - Memorizing keywords as text and reproducing them is a bit more of an abstract concept than being able to remember the color, location, shape, and appearance of text on the blocks in Scratch. For us, we can imaging keywords and expressions as these conceptual units, sort of like blocks. But we can also reproduce them as those units---we don't mentally deconstruct them into individual characters like my son would have to as he struggles to type them. - Similarly, with typing, you start with a blank canvas and nothing but a daunting array of tools (keys on the keyboard, which we think of as a single tool) that alone mean nothing until placed into a very specific syntax. With Scratch, you start with a set of identifiable blocks that concretely mean something. - Scratch aids him in other ways, like providing character and sound selections via a dropdown. You can get this type of things with certain IDEs, but mileage will vary. Essentially what I'm saying is that I feel like my son using a keyboard at this point instead of blocks is like taking each of those blocks and smashing them with a hammer, and telling him to first assemble the blocks before determining how to use them to assemble the program. I do wonder when I should try introducing him to text-based languages. He's also learned how to use Minetest in the past week, which is scriptable in Lua, so I wonder if that would be an interesting transition. I thought of maybe introducing him to lisp because of how naturally the syntax of the language translates to/from blocks, but I also don't want to disadvantage him practically when most of the world uses C- or Python-like syntax. I'm totally new to this. :) But it's exciting!
- tonydiv 9y agoHow did you hear about it at the time? I would love to share what I'm working on with you given your long-term interest. It's a 1-to-1 or 1-to-2 online coding school for kids. We use Scratch-like blocks to create Minecraft-esque 3D worlds. Still a WIP: http://block.school http://block.school (be sure to try the demo!)
- dang 9y agoYour comments are being flagged because you overdid the promotion in this thread. Linking to your own stuff is just fine if you do it once, maybe twice if it's especially relevant. More than that and it stops being meaningful conversation and users get awkward spam feelings. We detached this comment from https://news.ycombinator.com/item?id=14275541 https://news.ycombinator.com/item?id=14275541 and marked it off-topic.
- pryelluw 9y agoOT: Once kids get bored of scratch you can use turtle with python. It complements well.
- ianbicking 9y agoSince we're all offering Scratch-asides, I'll note Hopscotch: https://www.gethopscotch.com/ https://www.gethopscotch.com/ – it's very similar to scratch, but I found it far easier to use. With Scratch I often feel like programming is a task of fighting with tile management. I also like the stronger emphasis on events in Hopscotch. The big downside is that it's only really usable on an iPad.
- wslh 9y agoAlways surprises me nobody mentioned ScratchJr [1] for Android and iOS which in my experience has a lower barrier of entry for younger kids. I have used it with success with 4 years old children. I have had also success with the building part of Alice 3D in young kids. IMHO if the kid is doing complex stuff with Scratch, he/she can move to a programming language without much problems. [1] https://www.scratchjr.org https://www.scratchjr.org
- jcoffland 9y agoYou can go back and forth about which coding environment is best for kids but it is really great how many options there are now. I first encountered programming on the trash-80 in the 5th grade. We had a typing program, text games and Logo and saved things to cassette tape. Back then, Logo was a triangular turtle on a monochrome screen. We have come a long way in ~30 years. Still I remember loving it. Logo had a huge impact on my life. More recently, I started helping kids with their programming projects at my local library's coder dojo using Scratch, JavaScript, Python and other languages. It's a rewarding and fun way to give back to your community. I highly recommend trying it out.
- tengbretson 9y agoI absolutely love Scratch. I think its incredible how it introduces children to concepts and patterns that are very difficult for even intermediate programmers. Things like actors and message passing, or thinking in ways that are compatible with an event-loop type of environment. Its great!
- red_hairing 9y agothere are tons of visual programming languages out there that are similar to scratch and even go beyond scratch
- venture_lol 9y agoEr, what is the hacker ethic? :)
- hmahncke 9y agoThe most amazing thing to me about watching my daughter learn and then become obsessed with Scratch is the community around it. She has dozens of friends in the network, and they organize to build projects together, have contests, manage deadlines, and give each other advice on coding. And every interaction she's had on the system has been positive. I don't know how the Scratch team managed to build a "nice" social network, but that to me is more important than any aspect of the syntax or whether she types or drags blocks. She sees herself as a programmer, and she gets tons of positive feedback for being a programmer.
- andresmh 9y agoThe online community was the focus of my dissertation, so it's really great to hear your daughter has benefited from it. We worked really hard to keep the community a friendly space for everyone. It was, and continues to be, a lot of work for the team. I no longer work on Scratch, but I try to donate when I can. I encourage folks to do so as well: https://www.scratchfoundation.org/ https://www.scratchfoundation.org/