5 ms·
Programming for four-year-olds – No assembler required
- julianpye 11y agoWhile this is a nice overview over current systems, I am not sure if I would care much that my kid one day should learn them (he is 4 months now, so still a long time away). But a lot of friends with children ask me how to introduce their kids to computing at an early age. They often believe that learning a computer language would be like learning other languages, allowing for some 'bilingualism' early on. We all know that's not true. I am not sure if introducing a child to computing languages is as important as introducing it to other things first. I would rather introduce it to music or another spoken language. That I assume would benefit it's brain more rather than using technology (probably already outdated) that will be certainly outdated by the time the child is at highschool level.
- notduncansmith 11y agoHaving done some serious introspection with regards to how I ended up as a developer, I think that playing strategy-oriented video games (loosely defined, for instance I'd put Pokemon Yellow in this category), and card games like MtG definitely prepared me for it. You learn to make tradeoffs (you can only have 6 Pokemon in your lineup, you want no more than 60 cards in a Magic deck, etc), and you learn to creatively compose primitives into solutions to problems, within a defined set of rules. Specifically, I think that a lot of efforts to get kids into computers these days are too literal about it. The value of learning to think like a programmer is not exclusively in one's ability to write programs (though that's certainly a powerful and valuable skill), it's in one's ability to solve problems within constraints. I'd argue that computer literacy is an orthogonal skill. Given that, things that stimulate the brain in ways similar to programming (e.g. deep strategy games) will probably have orders of magnitude more success than the more literal approach of "teaching kids to program".
- tumba 11y agoI think there are two ways in which children may constructively be taught computing. The first is algorithmic problem solving, which is often better taught using logic puzzles and games rather than programming trivial if-then statements. Anany and Maria Levitin's book, Algorithmic Puzzles, is a good example of the genre. [1] Secondly, they need to be taught an active and inquisitive posture towards technology. Most devices today (especially tablets and phones) force the user into a dependent and passive mode of interaction in which it is impossible to know how things work. Accordingly, I think it may be destructive for children to spend too much time with these devices. The KIBO system described in the article seems like a great thing to play with to build a basic understanding of symbolic control flow, although it too is opaque. I think 4 is too young to spend much time staring at a screen, but by the time a child is 8-10, I think it is better to have an admittedly difficult to use Linux workstation or an old computer running FreeDOS. Also good are the many simple devices arising out of the "maker" movement. I would really like to give my kids a simple device that could be programmed from the hardware up in something like Forth. Something like an HP calculator, but with a command line and options to connect to other devices would be great. [1] http://www.amazon.com/gp/product/0199740445 http://www.amazon.com/gp/product/0199740445
- notduncansmith 11y ago> programmed from the hardware up in something like Forth Just curious, what about Forth makes it appealing as a first programming language for kids (or well-suited to hardware programming)?
- Gracana 11y agoForth programs are often designed bottom-up and interactively, so you make things move and blink and sense and then compose those functions into more complex ones, interactively playing and testing all the while. It also imposes little structure and the model of the computer is simple. The while package makes for a nice gradual approach to learning how to program and solve problems. Otoh it's not common so learning resources aren't as plentiful as with other languages, so mum or dad better be there to help you out.
- bbarn 11y agoThe four year old in me lost interest with the double sequence of dark overlay modals that assaulted me the second I tried to read/scroll the article.
- jgamman 11y agohere's a wild thought - play with your kids. seriously, they love it. as they get older, they'll want to 'play' with your toys and one of those games might be doing goofy things on/with a 'computer'. then instead of 'playing' engage deeply with their school learning journey where playing with computers is a really useful and occasionally enjoyable thing that may be (but probably is not) happening _in_ their school. for extra pro points, blog your ideas/experience and get other parents involved.
- jamesrcole 11y agowhy can't it be both? both play with your kids and them have tools for learning programming?
- jacquesm 11y agoInteresting parallel with DNA here, the ribosome as the robot and the blocks as the RNA strands. Of course it doesn't exactly output proteins but it's neat to see such a close mechanical analogue.
- Immortalin 11y agoThere's always Lego mindstorm, it doesn't exactly teach programming but the skills involved is pretty similar.
- wnoise 11y agoIs it named after the Usenet grepper?
- DougMerritt 11y agoJames "Kibo" Parry -- could be. Or perhaps they are both named after Kibo, the dormant volcano at the peak of Mount Kilimanjaro? https://en.wikipedia.org/wiki/Mount_Kilimanjaro#Geology_and_physical_features https://en.wikipedia.org/wiki/Mount_Kilimanjaro#Geology_and_...
- caf 11y agoThe article mentions Logo as some kind of forgotten relic of the 60s and 70s, but I can remember leaning Logo in primary school in the late 80s.
- nickpsecurity 11y agoI'd probably wait a few years on teaching programming. I love the work in this field, though. Scratch was my favorite since it practically turned programming into something as easy as Lego blocks and more like Flash than OpenGL/DirectX. Kids were throwing together all kinds of great stuff with some pre-10yr olds making quasi-corporations. It was just amazing to see all that potential unlocked. Props to the tool designers and the kids building stuff. I can't wait to see what the next leap in that category brings.
- veddox 11y agoIt's a really interesting idea and well thought-out design, but isn't four a little early to start programming? I mean, yes programming is important nowadays, and probably more people ought to learn it - but to put it on one level with reading, writing and arithmetic seems to me to be unwarranted. And similar to what tumba said, I think you would do your kids (at that age) a much bigger favour simply by training their logical thinking skills and encouraging their curiosity. Those two skills will serve them in just about all areas of life, not only in programming.
- jamesrcole 11y ago> isn't four a little early to start programming? .. programming is important nowadays... but to put it on one level with reading, writing and arithmetic seems to me to be unwarranted. Can you elaborate? It's not clear to me why programming should necessarily be different. (especially if we can get at the essence of the skills it's a matter of, as opposed to seeing it as a matter of preparing people for jobs as programmers. One reason I say this is, as computing technology becomes more pervasive and mature, there ought to be broader scope for applying programming techniques, which mean that many more people will be using programming techniques in their work and day to day lives than just those working specifically as programmers).
- veddox 11y ago> Can you elaborate? Easy. First: name five jobs in which you absolutely do not need to be able to read or write. Found five? OK, can you name five in which you do not need to be able to program? What set took you longer to think of? Secondly, you cannot program without being able to read and write. (OK, KIBO makes do without, but I'm talking about serious programming here.) In a way, programming is a subclass of writing. Usually, you write in order to pass information on to humans, when you're programming, you're simply changing the intended recipient to a computer. My argument is that if writing is the superclass of programming, writing could reasonably be considered to be more important. > many more people will be using programming techniques in their work and day to day lives than just those working specifically as programmers While I would agree with this, we have to be careful not to fall victim to the programmer's bias. Yes, the need for programming skills in the world around us is big and growing rapidly, but it is probably not as big as we as programmers tend to believe, for two psychological reasons that skew our perspective: If all you have is a hammer, everything looks like a nail - and if you have a programmer's mindset, you will tend to approach (almost) all problems as if they were software problems. That's just human nature. Mathematicians try to solve problems mathematically, carpenters look for a practical solution, etc. (There's a good TED talk on that, unfortunately, I can't find it right now.) But it does mean that we think about software solutions when in fact, another approach might actually be better. Apart from that, we also have a bias of association. As programmers we spend so much time with other computer people that we easily overestimate how many of us there are in the world - and thus, how important our occupation really is.