6 ms·
I 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 wo
by WillPostForFood 10y ago
I 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 10y 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 10y 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!
- eriknstr 10y ago>He still spends quite a bit of time finding keys on the keyboard, so that'd be a major distraction and would break flow. I don't have kids yet but I am wondering if perhaps letting your child use a keyboard that is without printed letters could help them learn to type better. Back in 2010 me and a good friend of mine decided to buy a TypeMatrix 2030 USB keyboard each and to switch from QWERTY to Dvorak. Now of course I am not suggesting you let your child learn Dvorak. Teaching them Dvorak would probably be doing them a disservice at such an early age because of the amount of QWERTY keyboards they are likely to come in contact with. But I think you should try to let your child use QWERTY with a keyboard that does not have any letters printed on it. We bought black skins with printed letters and black skins without printed letters. In the beginning I was using the skin with the printed letters and I had to look at the keyboard for each and every letter I was typing. While my initial plan had been to first learn to touch type Dvorak on the TypeMatrix and then put on the skin without printed letters, I soon decided to put on the skin even though I had no idea where each letter was, in order to force myself to learn to touch type sooner. And it worked! It was really painful for the first two or three days. For each letter I was typing I started with the top left key and went through the keys one by one until I got to the correct key and then I used the backspace key to remove all of the letters I had typed which was not the one I was looking for. It was extremely annoying but it worked exactly as I had hoped it would. Over time I've somewhat "unlearned" QWERTY, and for the first few years I was even carrying my TypeMatrix in my backpack pretty much at all times and in doing so I found it hard to use other keyboards even if I switched the computer to Dvorak. After one of my keyboards broke due to wear from carrying it with me, I bought a new one but I stopped carrying it with me and started using whatever keyboard is available in Dvorak mode. I use the TypeMatrix at home and I have another one that I use at the office when I work but when I'm elsewhere I use for example the keyboard on my ThinkPad. Many keyboards will have QWERTY printed on them but since I am so proficient at touch typing Dvorak now I'm pretty much not looking at the keyboard at all anyway so it does no harm. Anyway, point is, not being able to "cheat" by looking at the keyboard turned out to be a highly effective way to learn to touch type 100%.
- CyberDildonics 10y agoMy experience is also that scratch is not nearly as easy to absorb as it is made out to be. I think the interface is good, but that something with the same interface but structure of Love2D would be much more helpful.
- tonydiv 10y agoI agree with you assuming they can type, but I have also seen kids get really frustrated with keyboards and typos. It takes them a lot longer to express their thoughts than dragging blocks. By 4th grade, you're probably right. But 2nd, unsure.
- WillPostForFood 10y agoI still get frustrated by keyboard and typos and I've been out of 4th grade for a long time! Anyway, learning to deal with those issues is, I think, a positive part of the process that has to happen eventually. The Processing IDE is pretty good at lending a helping hand as well.
- 542458 10y agoI think I was in the 10th grade when Scratch really made programming click for me. I had tried BASIC a few times before that and gotten nowhere (I was very envious of kids who could actually program...). Syntax seemed like magic, and I didn't understand how programmers knew what was and wasn't valid code. Scratch made syntax something real, and helped my understand how computers broke down lines of code. I feel that most people who know programming really underestimate how hard syntax is for beginners! You can maybe walk a kid through typing in a canned program in other languages, but the scratch "building blocks" environment makes it way easier to let kids explore and go further on their own. Edit: 10th grade is correct - I was able to go on the scratch community website and find some sketches I had uploaded 9+ years ago!
- andresmh 9y agoWhat is your Scratch handle? I worked on the online community for my dissertation and it's always great to know how the social aspect of Scratch has helped people in their journey.
- WillPostForFood 10y agoI agree, especially about your comment on the difficulty of learning syntax. But there is an inherent value in that process, that is not only ultimately critical for all programming languages, but will help their thinking in their natural language, grammar, and even mathematics.
- 20years 10y agoAgree with this. I teach middle school students how to code simple JavaScript games and they all do fine with text based coding in an editor. I have a few 5th graders in the class too and they also do fine. By this age, they no longer want to use Scratch. They actually associate it for the younger kids. They enjoy hacking around in code and get really excited being able to do some of the simplest things. I do however think Scratch is great for the younger kids and is a great way to teach them some basic concepts in a fun way.
- justin66 10y agoCan you share any lessons or lesson plans that a person could use to teach a 12 year old javascript?
- tonydiv 10y agoI recommend checking out http://woofjs.com http://woofjs.com Steve Krouse, a friend of mine from Penn, has created this to teach kids how to code in NYC. Jumping from Scratch to JS is a big jump, Woof is meant to make that easier. I'm also planning on using it with my online 1-to-1 course for kids.
- 20years 10y agoSee https://codedigs.com/ https://codedigs.com/
- rickyc091 10y ago12 year old means 7th grader, so for someone older, I would recommend looking into Codesters (https://www.codesters.com/ https://www.codesters.com/). This is basically Scratch for Python.
- douche 10y agoI still don't think I've seen anything better than the old QBasic. Simple IDE, simple syntax, all the batteries included, awesome integrated language documentation. And it's hard to go from 0 to drawing graphics on the screen any easier.
- toisanji 10y agoTried to find your contact info. Anyway I can talk to you over email on your experience with teaching to kids? I've been working on a curriculum to teach kids programming via Processing, would love your feedback. My email is in my profile.
- primitivesuave 10y agoI have run an organization that teaches kids to code and advocates for coding literacy for the last 5 years, and I agree with you that kids as young as 8 years old can absorb a text-based language when presented in the right way. However, typing speeds are generally quite slow amongst elementary school kids, so the rate at which they can make interesting things happen is much slower. That initial dopamine rush when connecting Scratch blocks is a very effective way to get them to see programming as an exciting and fulfilling endeavor. By eliminating the possibility of syntax errors through block-based languages, you can put their entire initial focus on semantics, without having to divert their attention toward syntactical correctness. Also, it takes a certain kind of computer scientist to teach computer science effectively, and most elementary school teachers do not match that requirement no matter how much PD you give them. I would say most elementary school teachers can't handle much beyond the basics of Scratch, but that is more than enough to get the platform in the hands of kids. If the teachers chooses to just let the kids mess around with Scratch rather than give them structure and clearly defined goals, they will still do just fine. If a teacher takes a similar lax approach with typed programming, the kids will most likely learn nothing at all, and will often develop an aversion to programming altogether. But I completely agree with you on the importance of teaching typed programming. My heart aches when I hear of middle school CS classes using Scratch. That's the perfect age to start exposing kids to Arduinos, Python, Raspberry Pi, etc. The BBC Microbit foundation has been doing a great job in the UK bridging the gap between Scratch and typed programming with their Microbit platform (microbit.org), and (shameless self-plug) I work on this problem as well with techlabeducation.com and pythonroom.com. I think what kids miss most of all from typed programming is the idea that a language is just like a human language, where each language has its own metaphors and way of thinking (an idea put forth by Seymour Papert in his 1998 paper "Mindstorms").
- dTal 10y ago>By eliminating the possibility of syntax errors through block-based languages, you can put their entire initial focus on semantics, without having to divert their attention toward syntactical correctness. This is very interesting because one often hears the same thing - the exact same thing! - about Lisp as a teaching language. And Scratch and Lisp are indeed quite similar, superficially, though Scratch doesn't think of itself as a "real" programming language and hence stops short of providing features that would make it usable as one, like lexical scope. One big difference is that Lisp simply hides a lot of its syntax behind homogeneous parentheses (many special forms can only be written a certain way, but you have to remember where the parentheses go) whereas Scratch doesn't so much hide it as handle it for you ("here are the slots where things can go in this syntactical form"). Another, separate but easily conflated difference is that it's in some sense "strongly typed" - numbers go in number slots, predicates go in predicate slots, etc etc. The return type of an expression is represented by the shape and color of its block. All types are statically known, and relayed to the programmer. It is impossible to commit a type error because the editor disallows it (which is in turn possible due to the transactional nature of drag-and-drop - what do you do if someone types the wrong thing in, untype it?) I think these are valuable concepts that don't automatically imply "toy" and should be explored in the context of a "real" programming language. Computer science has consistently unvalued human factors. There is still a lingering sense that "real programmers" don't need to be mollycoddled, and should suck it up and endure byzantine incidental complexity. Never forget the lesson of Python, a slow and technically unremarkable scripting language which is now one of the most popular languages in the world because it is easy and fun to program in. Or the lesson of Lisp, an enormously fast and powerful language that nobody programs in because...?
- d08ble 10y agoACPU/ACPUL is made for same purposes (for 12+ y.o. children). I done some tests & child start coding in 15 minutes. https://www.youtube.com/watch?v=CAcv12eBqcc https://www.youtube.com/watch?v=CAcv12eBqcc PS: I want to make some leraning videos using twitch/livecoding tv. I think, this idea is good.
- rjeli 10y agoI learned programming through Scratch as a young kid. I was frustrated with the limitations of the syntax, and the lack of structured programming (although I didn't know what I was looking for). However, I loved it and came back to it every single night for the community - uploading new games I made, getting comments and loves from my friends, and not only checking out their games but downloading them and reading the source. edit, as I keep thinking about this: Remixes were also huge - not only could you download someone's project, you could tweak it and reupload it as a remix. There were also galleries with curators, which motivated me to make better projects. I think the language's limitations might have encouraged me to think outside the box, actually... simple things were easy, but any complex logic was very difficult. No functions, only event-driven broadcasts and receivers, and the events had to be pre-declared (no dynamic stuff). I remember doing a lot of hacky stuff with lists, like having look-up tables in lists, or having to implement really simple algorithms on my own in this constrained language...
- andresmh 9y agoGlad the community and remixing got you engaged with Scratch! Those two things were the focus of my PhD dissertation at the Media Lab. Do you mind sharing what you do now? What was your Scratch handle? Scratch on!
- rjeli 9y agoI'm a dev now, of course! I'd rather not link this account to my really young usernames, out of embarrassment... Thank you so much for the work you and the Scratch Team did! The Scratch online community was a big part of my childhood and opened so many doors in my life by keeping me engaged and leading me to the world of software. Y'all really made the world a better place with the project.
- deleted 10y ago[deleted]