Live data from Hacker News

Ask HN: How do you teach you kids about computers and coding?

news.ycombinator.com

61–70 of 71 posts

Re: Ask HN: How do you teach you kids about computers and coding?

#61
The most traditional tool we've used is probably http://www.codecombat.com Also PBS has a Crash Course in Computer Science video series that's excellent for ages 10+ -- we pause it a lot to make sure they caught the main points.

I also show them what I'm working on for fun and invite them to help with parts of it. Usually Arduino and 3D printing/modeling. We've started (but not finished) a few web-based games together. I don't know if either of them will ever catch "the bug" like I did at their age (9 and 11 now), but I want it to be an option for them if they do.

Re: Ask HN: How do you teach you kids about computers and coding?

#63
I think it depends on your objectives. What abstractions are you trying to have your kids develop?

* Are you trying to teach your kids simple blinky-light programming? * Maybe you want them to develop into C++ coders? * Do you want your kids to understand underlying computer architecture constructs (bits, bytes, cores, caches, etc.)?

I learned LOGO as a 7 year old & Lisp shortly thereafter. Later we got a TRS-80 w/ a built in BASIC interpreter and out of a mix of necessity and curiosity taught myself Z-80 Assembly and eventually started playing around with ALUs & 7400 series logic on breadboards.

My offspring isn't interested in the low level details, but was VERY interested in making art on the computer. We started with MS-PAINT-a-likes, moved on to Gimp & eventually to Blender, using Python to automate some processes.

So... my advice is to think about what you're trying to accomplish. If your kid is interested in low level stuff, maybe start with a soldering iron. If they like art, think about the tools they'll use to model the abstractions they want to work with (Gimp, Blender, Maya, Adobe CS, etc.) and then look at the languages that are easy to integrate w/ those tools.

Also, remember that modern spreadsheets are a powerful data-flow modeling system.

Modern educators tend to follow the Constructivist model, a simplification might be: "Give your kids some tools and see what they do with them, possibly nudging them towards techniques or solutions when they identify a specific intent or goal." Constructivist educators would probably tell you the interaction between the learner, the educator and the tool is probably more important than the specific tool.

Constructionalism takes constructivism a bit further and seeks to support the creation of mental models and abstractions by the learner. LOGO, eToys & Scratch were built by teams that were largely influenced by Seymour Papert & his constructionalist ideas. In education circles, there's a little bit of debate over constructionalism, but it's definitely produced some great tools. And heck, I've had a pretty decent career as a software engineer, so learning LOGO at MIT as a 7 year old in the early 70s seemed to have worked out well for me.

I'm personally less of a fan of Scratch than I am of TI LOGO running on an old TI-99/4, but that's probably because I find Scratch MUCH too cluttered. But YMMV. Scratch is definitely worth checking out.

So to sum up my advice:

* try a bunch of things to figure out what your kids interests are. * understand the tools you present your kid(s) with so you can help solve problems when they're blocked. * show your kids a few simple things and let them discover the rest (and then unblock them if they get in a jam) * if your kids are mentally checking out, it's time to try a different approach. * don't be afraid to let your kids "waste time" on things they enjoy, even if it doesn't immediately seem like they're learning something (my offspring knows boolean logic ONLY because we found some youtube videos about redstone circuits in minecraft.)

Also, you can buy a copy of Papert's "Mindstorms" book online (or heck, it might be available as a free download by now somewhere.) It's a tiny bit controversial in education circles, but it's relatively short and it's a decent intro to Constructivist ideas.

So... all that being said... I was pretty impressed with how cheap & fast it was to set up Scratch on a RasPi w/ Raspbian. Under $200 even with a new mouse, keyboard & video screen.

The LEGO Mindstorm products all seemed to be a little overpriced to me, but if you don't want to spend the afternoon hobbling together a cheaper educational robot system, they're probably not that bad. Seymour Papert was really big on getting kids to interact with physical objects, so if you buy into Constructionalism, this is definitely the tool for you.

I'm a fan of the LittleBits electronic toys. My offspring ignored them after five minutes, but I've seen other kids spend hours putting blinky light creations together w/ them.

If you're handy with a soldering iron, it's a snap to put one of these pencil circuit tools together. I personally love it. My offspring liked it for a while before disappearing into the purple cloud of sullen adolescence. It was also a bit of a hit w/ my niece.

https://makezine.com/projects/build-electronic-audio-game-pe...

I tried to make sense of the Dash robot, but honestly, I couldn't figure out how it was supposed to be educational. YMMV.

Ditto for Cubelets. At $26 per cube, they were a little pricey for a system that seemed to come with waaay too few instructions.

I really want to try the makeblock drone airblock system, but I'm probably projecting my own desires on this one. Still, I used an early version of the makeblock neuron system and it was at least as good as the littlebits (though littlebits in-box documentation was better.)

Re: Ask HN: How do you teach you kids about computers and coding?

#64
post #59

Earlier quoted context omitted.

>I swear that experience of learning Z80 assembler by typing in the hex or decimal opcodes (I couldn't afford an assembler), was the single most important event of my programming career. I eventually graduated to doing the same thing - in my case writing out assembly programs on paper, putting the decimal opcodes next to each instruction. Once the main program was "assembled" you'd then go put in the jump targets - w…

The technique I used was to always leave a few bytes spare at the end of each subroutine so I could add code later on without breaking every single jump address. The pain we went through!

I'm all too familiar! I used to pad any routines with five NOPs at the start, just in case I needed to add a jump, or call, to handle something I'd not forseen.

Re: Ask HN: How do you teach you kids about computers and coding?

#65
I used Python to introduce my son to the concepts of programming. I found it very interesting that his school used Construct as an introduction. I was skeptical, however it DID reinforce his logical construct skills and his understanding in python is increasing quickly. I will start pointing him to javascript next (as well as others down the road).

Re: Ask HN: How do you teach you kids about computers and coding?

#66
post #34

Earlier quoted context omitted.

Or the snake one called Nibbles - my 6th grade computer class teacher had made modifications to it adding levels, etc., and had his class play with what he had created. I was just starting to learn Qbasic at the time and he wouldn't let me have the source code :(

Perhaps he was hoping you'd write your own, or find the code? Weren't the games plaintext?

He used QuickBASIC to compile it into an EXE and that was the copy he gave the students to play with.

Re: Ask HN: How do you teach you kids about computers and coding?

#67
in Roblox; i am building a simple game with my 7-year old daughter on the Roblox platform. A nice combination of gui-based building and scripting and a cool objective (a completed game added to the registry of games on the platform so others can play it.

i am

Re: Ask HN: How do you teach you kids about computers and coding?

#68
post #50

Earlier quoted context omitted.

I have taken the approach to just finding activities across a variety of topics like chemistry, electronics, programming, art etc

Yeah, I'm going to start finding games that are educational in different topics to encourage learning that her and I can both play. Have you had any success with other educational board games with your little one? I looked into Scratch JR and the robot turtles game which I'm going to get her for her 5th birthday.

have you heard of Magnetic MightyMind? Those puzzles are really great for the mind. You have to figure out how to place these different shaped magnet pieces into different puzzle shapes.

Re: Ask HN: How do you teach you kids about computers and coding?

#69
A long time ago, I saw someone else's brilliant answer to a similar question, so I will repeat it here. All you need is paper and pencil for your students. The idea here is to focus on concepts, not code:

Ask them to write down all of the steps required to to make a peanut butter and jelly sandwich. For example, a student may come up with the following solution:

  1. Get the peanut butter and jelly.

  2. Spread on bread.

  3. Put other bread on top.
As the instructor, you must "break" their solution with a funny skit (as opposed to being pedantic). Try to do step 1 in front of the class: You flail your arms around like an absolute madman, reaching for the peanut butter, but you cannot reach it. Eventually, the students realize step 1 isn't clear enough for you. They come up with:

  1a. Walk to cupboard from table (i.e. the peanut butter is stored somewhere; we need to go there).

  1b. Pull out peanut butter and jelly (we need to acquire the goods).

  1c. Walk back to table.
If you think about step 1b, you can see a potential problem if your hands are full. So, you proceed to get the ingredients with full hands, only to drop the jelly on the way back to the table; you didn't have enough free hands to get the jelly! At this point the students are facepalming you, which is good, and it encourages them to be even more explicit in their instructions; perhaps they include a check to make sure your hands aren't full before getting the ingredients.

This comedic, adversarial process between the students and the teacher continues until the students land upon an imperative, explicit way to make a peanut butter and jelly sandwich. Breaking down problems into imperative, unmistakeable steps is exactly the kind of skill which is used in programming, as computers lack linguistic pragmatism.

The lesson here is that computers are dumber than we think, and programming is the art of making them smart. The instructor plays the role of a dumb computer acting out the students' instructions. The students quickly get the point: their instructions aren't good enough for a computer, even if they are good enough for a human, and it's not that hard to be explicit if you take some time to think about it!

Re: Ask HN: How do you teach you kids about computers and coding?

#70
post #68

Earlier quoted context omitted.

Yeah, I'm going to start finding games that are educational in different topics to encourage learning that her and I can both play. Have you had any success with other educational board games with your little one? I looked into Scratch JR and the robot turtles game which I'm going to get her for her 5th birthday.

have you heard of Magnetic MightyMind? Those puzzles are really great for the mind. You have to figure out how to place these different shaped magnet pieces into different puzzle shapes.

I just watched the video on Amazon for that, and I really like it. Thank you for the suggestion.
Post reply on HN