Ask Slashdot: How To Introduce a 7-Year-Old To Programming?
THE_WELL_HUNG_OYSTER writes I'm a professional programmer and have been programming since I was a small boy. I want to introduce this to my 7-year-son but know nothing about teaching this to children. Since he enjoys Roblox and Minecraft very much, and knows how to use computers already, I suspect teaching him to write his own small games would be a good starting point. I'm aware of lists like this one, but it's quite overwhelming. There are so many choices that I am overwhelmed where to start. Anyone in the Slashdot in the community have recent hands-on experience with such tools/systems that he/she would recommend?
There's enough youtube videos out there, a little help setting up the environment, and they're golden...
Use scratch. It's mildly obnoxious for a real programmer, but has everything you need off hand, and program flow is very easy to visualize.
Did BASIC get uninvented recently? Why do people not start there?
See that "Preview" button?
Leave it be. They're just kids.
They were about that age.
I eased the process so, that I made them design the game story and visual look. Later on, they looked and gave input as I churned the code during the next few days. After it was done, and they wanted to change something about it, they had to do it themselves -- I left several 'little annoying things' that are easy to fix there, so that they would ask and would want them changed.
Being able to do noticeable effect with little changes made code less mysterious to them, and they were able to change little things on their own later on.
They don't want to be good at coding, and are interested in other things. But atleast now they have experience of that as well.
Get a Raspberry Pi. There are lots of free tools including a good version of BASIC. There are tutorials for writing simple games. Avoids all the problems of trying to write for a desktop PC.
const int one = 65536; (Silvermoon, Texture.cs)
SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
Kodu from MSR is excellent.
http://research.microsoft.com/...
"Kodu is a new visual programming language made specifically for creating games. It is designed to be accessible for children and enjoyable for anyone. The programming environment runs on the Xbox, allowing rapid design iteration using only a game controller for input."
PGP KeyId: 0x08D63965
I did this - scratch is great. Also make something with him as your consultant you can work alot into that.
Use Scratch - https://scratch.mit.edu/ It's what CoderDojo uses when teaching kids programming. It has a fun, immediately responsive interface. Bright colours and cartoon characters to attract kids, is easy to make basic games which makes it more fun, and still teaches programming logic.
http://www.learntomod.com/
LOOOGOOOOOO
I hear "Hello World!" works quite well, in the language of your choice since you're going to have to explain it to him.
Seven puppies were harmed during the making of this post.
How many times has this been asked (and answered) before? This is neither news, nor worthy of yet another round of beat-the-dead-horse.
"Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
When my daughter was younger and one day she said she wanted to do what daddy was doing I bought Toontalk. http://www.toontalk.com/
It is more like playing a game than programming, it teaches looping as well as some maths and includes flashcards.
I am Bennett Haselton! I am Bennett Haselton!
if they love their minecraft, start there :)
I haven't used this personally, but: http://sourceforge.net/project...
I've abandoned my search for truth; now I'm just looking for some useful delusions.
Give the kid a computer, and programming book.
Install an electronic lock on the door with an interface to the computer.
Give them simple instructions.
Serious? Seriousness is well above my pay grade.
An Arduino nano + breadboard + jumpers + $20 of parts = very interesting projects for kids: https://www.youtube.com/watch?v=3xCY2K9kQz4
The upside for an Arduino is that it involves physical hands-on building. Blinking LEDs seems trivial, but it is captivating for kids.
I'd say ZZT and/or Megazeux. That's what got me started at like 5 or 6. Discovered the in-game scripting by accident. Couldn't do much but it still set the foundation. I'm a programmer for a living now and love it.
I'm extensively familiar with Minecraft and surrounding mods, but you'll have to steer him toward the more code-y stuff if you want it to be effective unless he locks onto it himself. There are a lot of distractions in Minecraft.
My kid loves this one: http://codecombat.com/
I got him started on it when he was 10, and he completed all of the free levels in two weeks with minimal help after I worked with him through the first few.
Lots of other great recommendations here: http://venturebeat.com/2014/06...
The board game one I've heard is good for younger kids, but once they have it down it's rather boring.
-Rick
"Most people in the U.S. wouldn't know they live in a tyrannical state if it walked up and grabbed their junk." - MyFirs
Don't?
Why the heck are you supposing a 7 year old one should/could/want do that?
Can he write already? Read? (Likely yes) ... how is he in math? And why the funk do you want him to exercise his hobby behind a computer instead of playing outdoors with other kids, a dog or hanging in a rocking chair and reading, if he can read ...
Coding is a nice word to camouflage all the variations of developing, programming, software engineering, computer science ... what actually do you mean with coding?
Why don't you let him practice cooking and read a cook book and then let him experiment with cooking and write his own cooking book? That is far more "coding" than most "coders" ever do in their job.
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
So, I say this:
Programming? You should be teaching your kid math, biology, golf and discipline to keep studying and practicing even if he doesn't feel like it.
So, if he can't make it a centi-millionaire golf pro, he fall back on a well paying trade like being a physician.
Programming, pfft! That's for peasants in Third World countries. And in our lifetime, computers will be writing their own goddamn code! All we have to say is, "Computer, write yourself an inventory control program. Make it so. Oh, and an app so I don't have to keep asking you. Make that so too and a cup of tea, Earl Grey, hot - but not too hot."
They seemed to think of it as fun time with dad rather than "I learned to code."
My then 8 year old wanted to learn Lua script so he could build original content in Roblox. I tried to convince him to learn to code something easier to teach first. That was HARD, harder than I thought, to convince him to try to learn to think in code before he tried to code in Lua.
One night, he came out of his room long after bedtime crying and told me that earlier he copied someone's script into a level he made in Roblox, and now he was sure he was going to get banned because the game thought he was cheating
it was 10:00 at night and I loaded up his Roblox account, and edited the script right in front of him. It was something like this psudocode: wait(1 minute) display message("You have been caught cheating, your account will be deleted in 5 days") end
I changed it to display a stupid message like "If you see this it means you got trolled by someone who understands scripting"
He felt better, but more importantly he learned that "understanding scripting" is important and powerful... and that even his old dad who "just knows other scripting and not lua" is better than nothing.
Then he said... I guess you can teach me Javascript... then we started Khan Academy and he slurped it up like a hungry aardvark.
https://www.khanacademy.org/co...
I have the exact same problem: 7 years old kid, trying to get him to program. And the "obvious" solutions don't seem to work. I've tried Scratch and the Lego mindstorms visual programming language, to no avail. Between the two, Scratch seemed easier to understand, but still way too complicated.
Weirdly enough, the best success I had was with things that have not been designed with kids in mind:
- I managed to have him write a short Basic program for adding some numbers and then printing them. However, there was nothing catchy to attract him, and I didn't want to push him further. Next time, I'll try to lure him with some visual effects (I used Chipmunk Basic for this).
- He really liked a robot my wife uses for research and that she brought at home. It's called Thymio. The funny thing was that one can program it to follow the object or robot in front of it, has LEDs, and it's very easy to use. The problem is that he still has to learn some basic structures (inputs, outputs, if, event-driven triggering). There's less of them compared to the other languages, but still... So, he can't do it, yet.
Unless you're kid truly displays a passion for it, I would not advise pushing him onto it. It's very likely that it'll overwhelm him, and then he'll never want to touch it again. If you are dead set on doing something like that, I would recommend starting with a LOGO implementation: those are usually pretty easy for most kids to handle, and indeed I got my start with it.
But seriously, playing Minecraft and Robolox != enjoying programming. If anything, it shows that he likes building things, but that does not mean he is a programmer. Give him small and short steps, if at all; if you force this on him, he is going to hate it for the rest of his life. And if programming doesn't work out for him (and I highly suspect it might not), try giving him something practical or more physical; building models sounds like something he would enjoy, and LEGO's (if he doesn't have them already) would probably interest him.
Do keep in mind, he might be playing Robolox and Minecraft for the social element behind them. It's very well possible he's playing them to make things, but a bunch of kids I've seen play it do so because it's an activity to do together, and I don't know they'd do it alone. Obviously, you are going to have to make that decision and I can't, but it's something to keep in mind.
I don't mean to sound scary or anything, but you really want to make sure this is something your kid enjoys before exposing him to the full brunt of it. If he doesn't have a natural liking for it, it's going to be very stressful for the both of you. A lot like if your father ever made you play sports when you were younger - make sure gently stroking his interest does not turn to squashing it.
Whatever happens, just keep an open mind and be sure he knows he can say what he wants. I wish nothing but the best of luck for you and your son!
"Set a man a fire, he'll be warm for the rest of the night. Set a man afire, he'll be warm for the rest of his life."
Khan Academy does a remarkable job of introducing programming to kids using engaging examples.
My 8 & 10 year old kids can't get enough, and leave their lessons delighted with their accomplishments.
tell him to go build the biggest sand castle he has ever built before. But it has to be twice as big as the sandbox he has to work with. Tell him there must be an individual entry way and a window for every toy he has in his toy box. It must be ready and meet your expectations by next monday, so no time with family or friends during this hussle. Also you will be out of town on vacation for the rest of the week, so monday is the first review/LAUNCH. Offer him a quarter to get the work done. If he complains about the pay or time tell him the less fortunate neighbor kids would do it for a nickel.
Your kid isn't a clone of you, you don't need to impose all your preferences on him. If anything, get him interested in something that is future and outsource-proof, like electrician, plumber, medicine, veterinarian.
You yourself as a programmer are "overwhelmed" by programming languages! Yet jobs are going away, there's no more employment security and software is a never-ending treadmill of buzzords and a pressure-cooker of half baked ideas.
Sure, show him a few languages, explain the general concepts, but don't saddle your kids with a precarious career.
You might try http://www.codebymath.com, which links programming to topics your son might have seen in his math classes at school?
What more could you introduce but a fondness of what was?
Oyster,
Personally, I would say seven is a bit young to start introducing him to programming. I don't know what your background is and what you expect from him but my biggest piece of advice is tread carefully. He has quite a few years to become interested/fascinated in programming as well as mature the thinking and analytic skills needed to be a successful programmer. Pushing too hard or introducing it before he's ready could result in him getting a negative attitude about programming. My recommendation would be to hold off and wait until he's around 12 to actively introduce him to programming as a career/interest option if he isn't doing it already.
For full disclosure and as a point of reference; this is my business right now. I cofounded Mimetics Inc. (https://mimetics.ca/) to introduce and engage children in STEM (Science Technology Engineering and Mathematics). We've done over 16,000 students, from ages 6 and up with quite a bit of success in introducing kids to technology and getting them excited about it as a career.
I find that the best approach for introducing young children to program is having something concrete that they can program on with statements directly causing physical actions. This does not mean an Arduino or Raspberry Pi; I know there will be disagreements to this statement, but younger children do not have the manually dexterity to handle wiring or work with complex mechanical structures.
For a parent of a child younger than eight, I would recommend the Wonder Workshop Dot and Dash: https://www.makewonder.com/ The robots are quite a lot of fun for children and are provided with an iPad app that allows control and introductory (Scratch) programming.
As a father myself, I didn't actively introduce programming to my kids at all; they could see me do it and I was available for explanations of what I was doing and demonstrations as how things were done. Maybe a bit incongruous considering my current career arc, but the result has been my older daughter who's now taking Game Programming at college and a 12-year old that is having programming parties at our house with her friends.
Good luck,
myke
Mimetics Inc. Twitter
Using games to teach a kid to program is probably a bad plan.
The complexity of the games they will be familiar with is so high that they have no hope of coding something that they or their fiends will find impressive for a long time, and that's likely to be frustrating.
A better approach is probably to show him how a computer can do his homework for him. Particularly math. Though that won't really take off until he's in a class that lets him use a programmable calculator. But being able to write "cheat sheet" programs and programs that solve basic formulas for arbitrary inputs is how I started out.
https://pragprog.com/book/ahmi...
Edison, a robot, at meetedison.com
Has a:
- small & cheap robot with lots of sensors
- a Blockly-style IDE
- small and understandable instruction set
Coding a physical thing is better than coding a 'puter.
It can move, turn, rotate, accelerate and deceleate, detect obstacles, light, sounds, communicate with others of its kind.
It can power Lego Technics creations. Eg, you can create a robot (or Technics car) that will be afraid of light. Or which will try to solve a maze. Etc.
I have a 7y old and this and it has worked out great.
I'd suggest just getting a Raspberry Pi with Scratch. The bonus is there is some minor assembly required (the case) and all the wizbangery hardware is visible. And if the little tyke smashes it against the wall in a fit of rage against your efforts to force him to be a programmer, you're only out $50 (not counting the cost of the therapy sessions).
Left MS Windows for Linux Mint and never looked back!
Vote for Bernie in 2016!
Scratch.mit.edu is a great visual programming environment for building games. It runs on all platforms and the raspberry pi. If you want to move into electronics and robotics there is even scratch for arduino!
My son is using Scratch (https://scratch.mit.edu/) in an after school class. He is having fun and learning some great concepts (variables, conditional logic, control flow, etc.).
"Learn to program by making awesome things." "No typing. No syntax errors. Just drag and drop blocks. Hopscotch is an intuitive, friendly programming interface designed for everyone." https://www.gethopscotch.com/ Nope, I have no connection to them. Just saw them demo it once and thought it would be great for kids.
Children aren't clones of their parents. (And even when we discover a way to make clones, they still won't be this kind of clones.)
"I would have benefitted from learning programming early" or even "I did benefit from learning programming early" are terrible reasons to teach your kid programming early unless the benefits apply to most people, not just to you. And they don't.
This is just a variation of the "how do I get my kid interested in sci-fi" or "how do I get my daughter interested in programming" questions we've had before, and the answer is the same.
Scratch : https://scratch.mit.edu/
My son started with it when he was 6 years old and mostly taught himself how to use it.
It has a large base of users, is aimed at kids, and makes it easy to collaborate with others. My son is now 10 and is taking a class in Java (because he wants to be able to do Minecraft mods).
I haven't
Buy your kid a cheap robot like a Sphero or Ollie. These are adorable rolling robots. You can program simple macros with a drag and drop interface. If you want to go a little farther you can write BASIC programs as well. Both of these languages have access to all the good sensor information and motor/light controls. Something about actual physical feedback makes programming seem a lot more real to kids.
play chess with them — it strips away all the semantic crap that will change from language to language, and gets it right down to developing the sort of critical thinking that is required to think logically and consistently in programming.
just chess.
that's all.
2cents
john p
Two words - LEGO Midstorms - it would be so awesome if they were around when I was seven... but I am thirty four. Anyway - LEGO Mindstorms - I can't think about better way to show how seemingly simple drag and drop programing can influence real world objects (robots man!).
Download the Lightbox Jr app for iphone
The perfect tool is whatever the kid is interested in. If you try to teach them how to write a game with Minecraft, and they want to write spread sheets, they are going to hate coding. Now, as parent post notes, Minecraft will probably hold most kids attention.
Figure out some fashion that code interacts with their favorite thing, and there is your in. Building basic web pages might be a start, or perhaps set up a command line application where they can play with string manipulation. There are many ways you can simplify complex tasks and projects with 'training wheels', ex: APIs and such to hide away complex stuff that isn't important to a beginner. Get them a really simple sandbox where they can change things and see the effects of their changes, and then get the hell out of the way. They will be better than you are in two weeks.
HA! I just wasted some of your bandwidth with a frivolous sig!
It's a mod where you get little consoles, you craft them
then you can program them with the simple scripting language Lua to automate actions in Minecraft: mine, fight, farm, etc
it's good because they are programming *in* the Minecraft world: you're piggybacking on their love of the Minecraft universe to get them into programming
http://www.computercraft.info/...
https://www.youtube.com/watch?...
intellectual property law is philosophically incoherent. it is your moral duty to ignore it or sabotage it
Introduces if...then... style logic and game mechanics without being so complicated that a 7 year old gets frustrated. Move on to Project Spark from there.
I think 7 is too early. The kid should be outside playing and using his imagination with real world objects at that time.
I also recommend using C. It's simple and C-derived compilers typically support some version of it.
I learned to program in BASIC for the Atari and the Sinclair ZX-80 when I was 8 and a half. I don't recommend using numbered line BASIC or any BASIC, at all. If I could go back and somehow influence how I was taught, I would tell my parents to find something that supports parameterized function calls instead of GOSUBS. C would be best. But if you're really intent on using BASIC for some reason, if you're on the PC I recommend Microsoft's QuickBasic as it allowed you to get away from the rather intimidating edifice of Visual Studio. You'll also have to sandbox it inside of something like DOSBox to get it to run on a Windows environment so there's a plus.
If you opt to just get an old clunker instead of emulating DOS, I recommend a 486 dx4/100. The architecture is simple enough for a kid to learn into adolescence but powerful enough to show how impressively computers can complete some tasks very quickly. I also recommend an ATI "all-in-wonder" graphics card, because it features CGA, EGA and VGA so your kid can learn about legacy graphics as well as switching modes. You shouldn't use a CRT if you can help it, if the kid wants to get into the inner workings of the screen you'll have an armful of stuff to teach him about electricity safety first. So get a modern flatscreen and get a VGA/EGA plug adapter if you have to, to keep on the side for EGA projects. As long as the flat screen is unplugged he shouldn't die of electric shock touching anything inside of it.
The great thing about older machines is that a lot of the components are visible on a macro-scale. It's a lot easier to differentiate between the resistors, capacitors, and inductors in older machinery. Now a days they'll all tiny little squares with little print designating what they are. It's also easier to work on older boards in terms of soldering and other "circuit bending".
All that being said, I recall some hobbyists telling me back in the day that the Apple computers made the best projects. One guy said he had obtained a dozen Apple IIe's on the cheap and because apple computers are made to network easily, he was able to use a later Apple model to organize all the IIe's into parallel computing. An exercise like that could be fun, albeit space-consuming.
If you're going this sort of computer-engineering route involving getting to know the hardware, I recommend also teaching the kid assembly. On older machines like the ones I mentioned, and using older operating systems, this is less of a headache. By comparison, I was looking into "high level assembly" for windows systems and the skeleton just to have a window open with a button to close it again was large enough to dissuade me from going much further. ASM in DOS was far more elegant, which is why these days if you mention writing something in assembly most people think you're crazy. Even though once again many popular compilers support inline ASM.
When I was fiddling with old Sinclair or Atari machines the latest hardware was stuff like the 80286. And when I finally got an 80286 the latest hardware was the Pentium, and so on. Getting things done with older hardware gives you two special perspectives on everything: (1) getting to know how everything works because the machines and operating system aren't so enormous and bloated that it's overwhelming, and (2) having to make do with less memory and processing power forces you to learn things like optimization and paging. People use memory like it's crack today and talk all tough like their memory is infinite, but little do they know RAM is paging quite often in Windows because of programming practices like that. And those same people speak about memory management in their favorite object oriented languages like it's impossible to perform. Trust me, you would much prefer that your kid is one of those people who can do their own memory management. If you give them a shiny brand new computer to learn on, they'll have no incentive to do better than use it like crack like everybody else does.
"Stratigraphically the origin of agriculture and thermonuclear destruction will appear essentially simultaneous" -- Lee
My first exposure to programmign back in the day was Turtle Logo in DOS, which I still think is great because as a kid I loved seeing a visual representation of my code. Another option which I'm biased towards (I co-wrote the code back in college with my advisor) is a package for MzScheme called plumming graphics for teaching programming conceps in a side effect free way while allowing easy visualizatioins (http://www.cs.unm.edu/~williams/cs257/plumbing.html) .
Personally I'm waiting until my son can easily write in a single human language before I'm going to try to teach him how to do it for a computer.
But that is because I remember what it was like to be introduced to things I wasn't quite ready for.
You know your son best, obviously, so whatever you want to do.
Get a Kano. Yes, it's just a Raspberry Pi, but first off, your kid has to assemble it (hardware!), and it comes loaded with many of the products already mentioned here, such as Scratch, a Scratch-modifiable version of Minecraft, and a couple of others. I got it for my kid when he was 10, but it is really geared towards younger children. Age seven should be just perfect.
This http://newsoffice.mit.edu/2015/teaching-preschoolers-programming-0312 is very basic. But could give you ideas to develop your own way of introducing the kid.
I like the ideas of tags and stickers.
Also, I took a look at that list and: no.
Don't teach him a useless joke / toy language like these ones on this list. It'll build a bad habit and the kid will be one of these losers saying "I don't know how to program but I got code::blocks and here's my console emulator, shouts out to the one guy who gave me that voo doo asm to build in line and make it work real fast, everybody please stop sending me e-mails about getting root kitted, this thing totally passes a virus scan."
If you want something that has a strong visual appeal but teaches actual programming practices and has been actually used in industry, I suggest you teach LOGO. LOGO is super-super-super simple easy shit, and you can learn it yourself as you're going. Most LOGO primers and tutorials are practically on a child level any ways because the language is so simplistic. Of course, if you don't know a single thing about trigonometry or geometry you'll probably see it as a useless language.
Over any single one of the weird "robots" and "kids oriented" languages on that list you linked to, I would recommend LOGO.
I bet you can even find a "LOGO for kids" or some shit if you looked for it. For decades, LOGO has often been used as a first language for youngster so I'm kind of scratching my head how it passed you by.
"Stratigraphically the origin of agriculture and thermonuclear destruction will appear essentially simultaneous" -- Lee
"Professional programmer" here too that got into programming when I was a kid as well, difference being, when I got into it at 11 it was 1986. Nobody taught me, nobody pointed anything out for me, I didn't even know any programmers. I just wanted to do it. Got a CS degree and have programmed "professionally" for 15ish years.
All these hipsters (and yes, hipsters, got into programming cause its trendy, I know a few personally) that want to teach their kids programming, just don't. Don't. If they don't like it, you will teach them to hate it. If they kinda like it, you will teach them to hate it. You will.
I deleted a long tirade justifying the above because upon re-reading it I know that personal stories about anything "tech" will get the full well-your-wrong-because-autism.exe . So here's a different angle. Around the same time I also got into playing piano, was playing for hours a day, was teaching myself how to read sheet music and was getting pretty good at dumb, dumb easy songs. My parents shoehorned themselves into the middle and sent me to a piano teacher. After one miserable lesson I never ever played again. Totally ruined it for me.
the fact that LOGO is not on the list the author linked to kind of makes me feel a little perturbed. like, wtf is wrong with people? there's a mention of "brick logo" as a footnote in some other language's paragraph, and "c" is mentioned as "educational" (wtf?) but not one shout out to LOGO.
did anybody else feel any sort of reaction to that? or did everybody just not even notice it?
"Stratigraphically the origin of agriculture and thermonuclear destruction will appear essentially simultaneous" -- Lee
coming here to /. and playing all clueless, as if it's cute somehow, and throwing themselves in the readers' arms. Help me! If you as a programmer can't figure out how to introduce and teach programming to your kid, why would we?
If you are as pro as you say you are, it should be easy enough for you yourself to create a simple learning JavaScript framework.
Let it work with Canvas, DOM, SVG and CSS animations inside of an iframe so accidents don't break stuff. (iframe.open(), .write() are useful here)
Create little tasks that he can work with and edit, live examples, simple stuff like moving a little smiley face from left to right, get him to jump (by hooking a premade gravity method to him), make another smiley, give him AI (you premake the AI of course! Things like "moveToPlayer", "attackPlayer" and others)
Try to eliminate the confusing parts of JS initially, make it simpler, basic simple commands are key here.
The syntax and features of the web world make it a very useful way to learn because it is so wide and varied.
So over time, he can advance to more complex examples, and then eventually, full naked JavaScript, then more libraries..
And the best part is JS is very similar to most common languages as well, so translating to those will be fairly easy as he is older.
Or even Gamemaker. Gamemaker is pretty damn good from what I have seen these days. Not the extremely basic thing it was forever ago.
As for the general naysayers, boooooo.
Learning programming is an INCREDIBLY USEFUL thing. And it is not even for the sake of learning programming itself, oddly enough, it is for all the other skills you learn AS you advance in programming.
Skills you tackle with programming are math, problem solving, planning, language skills, logical assignments, abstract concepts, algorithm design, animation, basic design, in addition to just learning the language itself.
It is a very useful broad subject.
Personally I started programming at the age of 9. I still do at 28. It is an absolute dick of a thing at times, I even get annoyed, but I still program to this very hour. (only stopped programming to check up on random stuff and take a break for 30 minutes before I get back to it. At 11pm. For no reason other than fun)
If I never got in to programming, I'd probably have been a far shittier person. Or worse, probably ended up in art. The horror.
Firstly, I would look to see if there is a CoderDojo - http://coderdojo.com/ - in your area.
CoderDojo is a global volunteer-led community of free programming clubs for young people. These young people, between 7 and 17, learn how to code, develop websites, apps, programs, games and explore technology. In addition to learning to code attendees meet like minded people and get to show off what they’ve been working on.
Secondly, I would look at introductory language we use - Scratch - http://scratch.mit.edu/
Scratch has lots of tutorials aimed directly at kids, and are far better than any of the "type this line and then this one" from various books.
Robo Rally is like a multiplayer boardgame version of LOGO...
Robot Turtles is even better for younger players
Micro Adventures were some of the books that I started with as a kid
"There are people who do not love their fellow human being, and I _hate_ people like that!" - Tom Lehrer
your well hung oysters spit out the y instead of an x... with a daughter all you need to do is sit back and let disney princesses teach them how to code.org
Hi /b/ I work in construction and I want to introduce my son to the business so he can get a head start to everyone else...
...when I was a kid and we wanted to play with turtles in a maze, we went down to the fetid, stinking, polluted sewers and caught them ourselves! And built our own mazes out of barrels of toxic waste!
....and this how we end up with Teenage Mutant Ninja Turtles. Stop it.
HA! I just wasted some of your bandwidth with a frivolous sig!
I'm as geeky as they come. Most of a Ph.D. in theoretical physics, and have spent over a decade working in high-performance computing.
When I was 7 years old, I was wandering through the woods, looking under rocks for creepy crawlies, playing hide-and-seek, and playing baseball with my brother and cousins. Not only did it *not* set me back in anyway, but it is some of my fondest memories of being a child.
Let kids be kids for goodness sake. Take him to a science museum, and let *him* tell *you* what interests you. When I was a kid and hyped about computers, my dad thought computers were a fad only used to play Pac-Man. Not only do I have a good-paying career, but any time dad can't connect to the internet, I get an emergency telephone call.
Let your child steer his future. He's the one who has to live it.
How to introduce to programing an 8 y/o child who doesn't speak english.
It's a program AND it teaches how to deal with Murphy (nothing worse than getting bumped and watching the rest of your program walk you into a pit or heavy laser fire).
After that, it depends on the child's interests. Robots? Mindstorms.
"Real" computers? Pick up an old Apple II or Amiga and use the Basic to access the display.
https://scratch.mit.edu/
That is all.
Mission: To provide products that consume time and energy as entertainingly as permitted by the laws of thermodynamics.
See subject.
I think it's an admirable goal to get your kid interested in computers and coding. But it seems like /. gets this question every week, sometimes multiple times a week. You can't swing a dead cat around here without hitting some variant of "How can I teach my [son/daughter/nephew/[2-/3-/4-/5-/6-/7-/10-]year-old/3rd grade class/nation's kindergarteners] how to code?" Can we just sticky this to the sidebar somewhere?
Nothing posted to
Try a human trafficking shop.. they seem to specialize in this field.. (he might miss school though)
Can we get a FAQ please? Here are the common answers:
* Visually with Angry Birds characters: http://learn.code.org/hoc/1
* Scratch
* http://coderdojo.com/
* Minecraft mods
* http://www.learntomod.com./
* https://pragprog.com/book/ahmi...
* http://codecombat.com/
* http://boardgamegeek.com/board...
* http://boardgamegeek.com/board...
* http://www.gamebooks.org/show_...
* http://venturebeat.com/2014/06...
* http://meetedison.com/
* BASIC
* Vic-20 C64 Compute! magazine
* Raspberry Pi
* Arduino
* Logo
This may be what you want. http://web.stanford.edu/class/...
To give you an overview, it's an intro to programming using Javascript and a little image manipulation library. Each page has a series of problems with boilerplate code that you edit and click a button to run.
Head straight to Week 2's lessons (http://web.stanford.edu/class/cs101/image-3-loops.html) and go through it with him.
Kids find it pretty cool that they can change some numbers and that will have an effect on the picture. I did this with my nieces (8 and 10) just a few weeks ago and they both LOVED it. I was showing it to them to gauge their interest for a totally unrelated reason, and we ended up going over it for about 3 hours in one sitting.
Give your kid little challenges and provide most of the code. They just edit the code. It'll be a while before they add their own lines of code (about 2 hours for my nieces). One of the big points of interest was one of the problems that introduced an "If" statement based on the pixel's X coordinate. We made many changes to that block of code and ended up making stripes of different colors across the image, first vertical, then horizontal, then mixed. They thought it was just the coolest thing.
Then there's code that changes pixel values based on the average color of the pixel. So it's doing stuff like taking a picture with a red stop sign in it, and making the stop sign blue without altering the rest of the image. It's really neat, and it's the kind of stuff they've seen in movie special effects (they'd heard of green screens and I related how similar this is), and it's just a few lines of code.
Starting out: ... could be double edged.
- MIT Scratch (https://scratch.mit.edu/) - great for understanding high level abstractions we need in development without too much details.
- Lightbot (http://lightbot.com/) - Kind of a cool app that teaches high level basics, my son picked up recursion in like 10 minutes and was just using it. Getting the high level concepts are simple with tools like this.
- Code Combat (http://codecombat.com/) - fun gaming way to learn especially if they tend to lose patience easily, this might get them engaged or might get them expecting entertainment as part of it... don't know yet
As they get older:
Choose an area they are interested in, but first give them a tour... show some mobile stuff, some web stuff, some Minecraft modding, etc.
I would send them down more traditional and less gaming paths but find ways to make actual programming more like a game. This can be done in many ways. I would recommend coming up with a system that rewards them for completed tasks and rewards more for harder achievements (Think MMO style questing system). I actually plan to start a business doing this soon in the Austin area.
And then from there if they've got the bug they will pretty much want to sponge it all up... hello google search for tutorials of their interest.
Early exposure to programming concepts, easy experimentation, and in a integrated development environment!
http://teachingkidsprogramming.org
(The language used is Java.)
Give them a buglist and a deadline and just start screaming about him messing up the SKU plan with late check-ins. That'll cover it.
I have researched this subject extensively over the last several years. Most importantly, I have exposure to children between ages 6 and 14 that can program successfully with a text editor or IDE. The short answer is go straight to Python. You can read about my personal experience with my own children here: http://pychildren.blogspot.com... The main child is now 10 and using Python with IDLE and PyCharm. Also suggest you research this site: http://www.learningtech.org/wo... which I also have experience with by sending my own kid to the class. Note the Minecraft plugins from grade 4. Definitely wish I had started my eldest kid earlier as I think that age 8 would have been fine. There's a kid in my daughter's class that is 6 years old and completely killing it with PyGame. I think that I'm going to drop down from PyGame to Python Turtle (logo) with my daughter for a while. Good luck. Feel free to send me a note with your progress. I love hearing from parents with children under age 14 that are using text editors or IDEs.
Programming is a form of engineering, get your kid to play with their toys - include stuff they can build things out of lego, mechano etc. When they get a bit older introduce them to software. The Bottom line is they're a kid let them play.
There are lots of free LOGO implementations out there, with a handful of feature-rich UIs. That's where I'm going to start with my kid, probably followed by minecraft.
My six-year-old is pretty obsessed with Minecraft. Modding was the obvious on-ramp. For a six-year-old, I anticipated needing a programming experience with a very gradual learning curve and a fast feedback loop. That isn't full-on modding in Java: there's the abstract syntax, the agony of typing a lot with little hands, and the slow compile-deploy-debug cycle. There are programming languages for kids, like Scratch. So I went looking for a way to apply that kind of graphical programming in a dynamic way (no compilation, no server restarts). I was ready to jury-rig something, but found that LearnToMod dot com was way ahead of me. They are using Blocky as the programming language which seems like a Scratch variant. Mods are written in a web browser and with a button press your mod is dynamically bound to a spell book -- a good metaphor in the minecraft world. This is running on a server instance hosted on their servers but private for us. This is a service, not software that you download. The code-deploy-debug cycle is fast enough that my kid's gnat-scale attention span isn't over-taxed. Oh yeah, and the site has what looks like a pretty extensive curriculum of micro-lessons in programming (hundreds). My kid has been doing one or two per day and I think the self-paced, gamified format is very effective. So far so good ... I had low expectations, so the fact that it is still being used a month later is a pleasant surprise. Cost is $30 per year.
As others have said, I don't recommend forcing your kid. One technique I'm using is an allowance of time on the computer ... but then I don't count time spent programming against that allotment. You catch more flies with honey.
My 7 year old daughter really enjoys code.org. The puzzles are fun and the site works great on her HP Stream that she got for xmas. Having her very own computer also helped and that laptop was well worth the $200.
Tech is for older kids. Challenge and experiment at this age. Lego to make a bridge that the cat can cross . Draw a picture that Auntie thinks actually looks like a Badger not a [insert vague animal here] Create a birthday invitation card that has fizz. Ask 1,000,000,000 questions you don't know the answers to.
Sketch is a very visual system for learning to program.
I just looked through the scratch gallery and found something he would be interested in. It was pokemon angry birds or something. I started playing it and got him interested. We moved on from there. Scratch is simple for young ones to grasp.
... open sourced games like Doom and all the cool things other programmers have done. He can play the games and look at the possibilities then if he wants he can go from there.
Freespace 2 SCP (where modders/coders/community updated the entire game and graphics over 10 years)
Video
https://www.youtube.com/watch?v=xhAR8rWPluQ
Site
http://scp.indiegames.us/
Brutal Doom
http://www.moddb.com/mods/brutal-doom
http://doom.wikia.com/wiki/Brutal_Doom
If you're not on a first world country, don't you dare on ruin the poor kid's life. Signed: A third world country developer.
Simple answer: DON'T DO IT!! Unless you want your child to become a future H1-B casualty. Teach him how to think instead. Ideas and creativity rule not execution. Just like we can get monkeys to write Shakespeare you can always find a code monkey.
There's this game called "Hack 'n' Slash" on steam, where hacking the game is an implemented game mechanic.
Not to toot the horn of my employer too much. But Khan Academy's CS platform is a great way for kids to learn and create stuff.
https://www.khanacademy.org/co...
Make learning programming fundamentals a blocks toy. Kid can stack program blocks a certain way, the physical block pattern gets scanned into the computer, turned into code. Point is to make it an interesting hands-on toy which makes the obvious connection between what the kid does with the toy and what happens on the computer. Once the kid makes the connection to building with pieces, they'll want to go directly to building on the computer, by-passing the simple to use but less powerful blocks.
Everything in the Universe sucks: It's the law!
My son is just about to turn nine, and he is really enjoying the programming section on Khan Academy. The site was originally designed as a math curriculum but is rapidly expanding into other fields. It is free, and it uses JavaScript with immediate visual feedback while teaching them the basic concepts of programming. There are step by step instructions and helpful hints to help guide them through the concepts, but having some occasional parental help is sometimes required. Overall, though, I have been pretty impressed with it.
One thing though: I would make sure they learn how to type first as that will greatly help their ability to program.
I believe in de-evolution. God made the world perfect, man fell, and its been going downhill ever since!
Point them at the Scratch website and then tell them to never look at it again because it's naughty. Just kidding about the second part, but Scratch is a good way to get them started.
'The tyrant will always find pretext for his tyranny.' - Aesop's Fables
Give them an atari 400
Give him one of these books and tell him if he wants to play a game he has to transcribe the code first:
http://www.atariarchives.org/b...
http://www.atariarchives.org/m...
That's how I got started, and around the age of 7 too.
Oh, and wait a year or two before you teach him how to save the code onto audio cassette... Ya know, cause you don't trust him yet not to overwrite a previous save.
LOGO is still around. I didn't get to see it until my early teens but if I'd had access to a computer before then I'd say LOGO would have been a much easier way to start than Applesoft BASIC.
My program used GameMaker. It's got a Lego-like building blocks method for making games, it's easy to learn and I've used it successfully with children as young as 6.
Might I suggest you check out my CC-Licensed book of 4th grade mathematical programming lessons in Scratch:
http://goo.gl/pHF6Hd [goo.gl]
I teach 4th grade, and the book follows the math curriculum as it progresses during the school year. In my experience, a mathematically precocious 8-year-old will be able to grasp much of it.
CS unplugged (http://csunplugged.org/) or something similar first, and then code.org or codecombat.
We already have far too many retards in this profession already. We don't need more.
I didn't read beyond the article's title , but I'm sure that tells me everything that is needed.
How to Introduce a 7 Year Old to Programming.
Using "Kevin" as a sample name, you do an introduction like this:
Hello, Programming, may I present my son, Kevin?
(assuming yes)
Programming, I would like you to meet my son, Kevin
Kevin, this is Programming.
The rule is the senior one receives the first introduction.
Remember to make eye contact with each person as you speak to them.
You should have prepared your son to make eye contact with whomever he is being introduced to, and he should be prepared to handshake if one is offered.
Your son should not offer his hand first; the higher status person does that.
Also, I recommend that you check and remove any boogers from his hands and face before initiating the introduction.
Programming is a bad career choice, it's like grooming your kid to be an accountant. As a hobby it sucks and it turns you antisocial. And what horrible parents force their own pet hobby on their kids? Let them play. Let them interact with other kids. They will learn valuable social skills that will serve them for life. Good physical activity will help their looks. Why do you want your kid to be an outcast, shunned nerd? Aren't you ashamed of yourself? You should be.
I was 7 when I learned to program. I was taught how to draw graphics in BASIC on an Apple ][. Not having to draw every point manually was a great motivation to learn loops. The rest is history. Kids love graphics and quick results. These days, I would teach a kid programming in Swift, if you have a Mac, because the instantaneous results in the other pane and the graphics and animation capabilities will make it fun. If it, I'd use Python, because I've been calling it the new Basic for years. All the beginner programmers immediately get defensive when I say that, while the more experienced ones chuckle. Proof enough that it's the new Basic? Remember, it doesn't need to be writing a game to make it fun. That's a little too tough at age 7; not because the programming for a simple game is tough, but because kids that age usually can't yet wrap their heads around what makes games fun. Because of this, they have a really hard time coming up with something fun, and they can end up disillusioned from the experience of doing a lot of hard work just to make something boring. Also, remember that what makes programming fun is the reward from figuring out how to make something work, so at this age, resist teaching data structures and algorithms. Instead, just give some trivial examples and let them play.
As others said, don't force your hobby on him. But a child always mimics its parents. If you are coding at home and your son sees you and sits next to you and watches you, just don't tell him to leave you alone because he disrupts your focus. Answer his questions, try to explain what you are doing, ask what would he like to make, do a first few projects for him and with him. It may take time until he shows the initiative but it should be up to him how fast and how far he wants to go. Your role is to support him.
Get him interested in minecraft mods, there is a lot of educational stuff there. Java is a fairly horrible language, but you can make a small mod fairly easily and the ability to quickly see the fruits of your effort in game and get gratification from playing with the results is incredibly helpful to the learning process. Or you could go the whole crazy redstone computers route, where you can teach stuff like binary addition and low level concepts.
Other than that, to those saying kids should not program at this age - nobody says they will do it more than say 2 hours a week with Dad, where is the loss of social skills in that? And second - if you do not get kids inspired and excited about a bunch of things, something will. Opening up options for your kid is one of your tasks as a parent.
Take a look at Lightbot. It's an educational game where you program a robot to turn on lights on the board. It's very nice. My 4 year old daughter loves it and is able to solve simpler levels by herself. I introduce more complex ideas (procedures, loops) when we have some time to play together. It reminds me a bit of LOGO and turtle graphics - that's how I got started and I thinkg turtle graphics in one of modern editions is also one of good first steps.
This has to depend a lot upon the kid. My 6 yo really wanted to learn to program, so we did it over spring break one year.
I sat with her for a 1-3 hours a day for a couple of days, individually teaching core concepts. During this time I let her operate the computer exclusively. I watched, gave advice, drew pictures on paper, and didn't use my phone. I think being hands-off but present and engaged is critical. When I was a teenager I used to tutor grownups on PCs and found that having them drive the computer was the most effective way to ensure I wasn't losing them. After the first few days I found I could teach her something, make sure she was doing OK with it, and then go away for a few minutes to do something else and return to answer questions.
I had drawn up a list of concepts I hoped to teach, and shared that plan with her and used that as a general direction. Nonetheless, what we actually did was directly guided by her interest level and enthusiasm each day. I aimed to keep her engaged and focussed and adjusted speed and content to do so.
I opted to use a fairly old language environment, Logo. Drawing pictures is directly appealing to kids, and using a text-based programming environment exposed her to syntax and learning to edit actual code right from the get-go. I don't think drag-and-drop learning such as one gets with Scratch or Blockly translates very cleanly to other programming environments because you're only learning procedural concepts, not that commas and quotes and other kids of precision matter. For instance, because she needed to know syntax I showed her how to access and read the docs. That led her to discover that the specific Logo we used, ACS Logo (Mac), has speech synth support. Then she started using the speech synth to narrate her drawings. That was pretty cool and a big success she could claim for herself.
We did not make it through my whole list of concepts, but she did attain independent fluency with a subset of Logo and programming in general. A bit over a year later she periodically updates/extends her programs. And I recently watched her independently learn 2 other programming languages, one via watching videos, and another via an online course. So it's clear she is able to apply what she learned to new contexts.
In a telling comment that seemed to me to confirm my choice of Logo, she learned quite a bit of Python and then complained the language couldn't do anything she cared about. Of course that's naive, but it illustrates that you need to pick an environment with features that will appeal to your child early on, not in some far-off land after one has learned the basics. In this vein, you might also consider introducing a kid-oriented robotics microcontroller like the Hummingbird Duo. These have the appeal of making physical things light up, move, and sense. This will likely rate much higher on a kid's priority scale than building a website or crunching numbers. My daughter is now learning to build simple robots with a Hummingbird Duo and a bunch of sensors and servos and likes it. And even though this too is programming, it's a very different set of complexities than what she did before.
Good luck!
It has variables, loops, functions, etc.
**TODO** Steal someone elses sig.
It seems like a fairly new crafting "game" but it offers a web (WebGL) based MineCraft style world but uses JavaScript to control the world?
The guy building it has created a zombie escape world and old "snake" style game in it.. www.cubiverse.net
From my experience absolutely best is Scratch: https://scratch.mit.edu/ ;-)
Start with scratch (IMHO for any age
When the child is hooked and wants to "type" on keyboard try python.
This is from my experience with my son (BTW: he likes minecraft too).
Hey, I wrote the Web based game crafting system Cubiverse for bridging the gap between voxel style games (Minecraft, etc.) and "real programming". Basically Cubiverse gives you the ability to create cube worlds, but add Javascript to control them - you can make lift, teleport players, control the time of day, spawn items, etc.. Having said that it's still very much in BETA but I'm keen on hearing opinions on what to do :)
Check it out at http://www.cubiverse.net/
James
Does anyone program for programming's sake? Can you lead a horse to water AND make it drink?
Show a kid what the possibilities are first, which means learn what you want to teach them. Also, instant gratification is key - no kid wants to be there writing what seems like arbitrary lines of code so that they can see the Fibonacci sequence rendered up to n terms. My top 3 suggestions as a computer science teacher:
1. Scratch: free, online, massive community, tweak stuff before you make your own, instant gratification. There's some complex stuff out there so try to restrict examples to simple ones, stuff that they can try to emulate themselves. Kids will typically have very high expectations of what they can achieve without appreciating the complexities involved. Code is built using drag and drop. It's not immediately intuitive but you can get results very quickly once you pick it up.
2. Minecraft Pi: get a Raspberry Pi. The Raspbian distribution comes with a special version of Minecraft that has a Python API attached to it, and there are some very simple examples on the RPi website that can get you rendering all sorts of cool stuff in the Minecraft environment within minutes. Pixel art made from blocks, a digital clock floating in the sky, hunt the diamond, Midas touch, the list goes on. You can tweak the existing code after copying it out (like we used to do from coding magazines) before trying out your own programs. Also exposes him to an operating system other than Windows.
3. Spirograph: technically I mean 'turtle'. It's a great way for kids to learn about randomness, iteration, geometry and efficient coding tecniques. Scratch, Small Basic and Python all have a turtle module built in so you can draw shapes on screen very quickly and easily.
Create basic things in redstone.
Use that as a reference for something in another concept, be it visual programming, or written programming, block programming or whatever.
He is SEVEN! He want's to hear farytale stories, wander around, stop every 5 meters to look at something interesting.
He'll sit at a desk long enough in his life. I'd say 9-12 is the earliest to start progging - and only if he wants it/shows serious interest. He'll be a prodigy fast enough if that's his cup of tea.
We suffer more in our imagination than in reality. - Seneca
Roblox is your best bet! Play to your son's interests rather than starting from scratch. They have a scripting language which implements in Lua code into the games. He can start out by making his own items / weapons, and then move on to constructing a new game for Roblox. Get yourself an account and try it out! It's juvenile, but a little bit of fun at the same time.
Minecraft mods are a little more complicated, and do not offer the same level of ability to start small, and gradually build skills.
Show him your lack of Lua knowledge, and show him how you learn - he won't be very interested at 7, but seeing that you don't know is an important realization that will likely help him become a self-reliant tinkerer within a few years. If his interest is there, he will try to do things on his own eventually, but at first, copying what you help him with will be the majority of what he will do.
Seriously, he will ask you if he is interested. Also programming is just a tool, so rather teach him how (and why) to create (in whatever way) than one specific way of creating things without a purpose.
I told my son that when he got his first computer he would have to learn to code. I myself am a professional developer, so, no matter what he wants to do with his life, I think knowing something about codeing would be beneficial. He was given a laptop at 7, so I gave him "Python for Kids". There is a free version on the web if you search. We are going pretty slowly through it, but he is enjoying it very much. I would highly recommend it for any parent wishing to teach a child to write code. He also has a lego mindstorm, and we will soon be working with it with Python as well. Good Luck.
Khan Academy works really well for my kids (8 and 11).
https://www.khanacademy.org/computing/computer-programming
Over here in the UK children from the age of 7 are being taught coding in school. This will of course suck everrything that's cool about coding out of coding for ever.
Build a Man a Fire, and He'll Be Warm for a Day. Set a Man on Fire, and He'll Be Warm for the Rest of His Life.
Yes. Scratch is what I would recommend also. My children love it and have moved on to more advanced things after enjoying scratch. Turtle was another early "programming" language they were introduced to and enojoyed. LEGO Mindstorms is a good next step, but expensive to use. I would not start there because you have sunk money into something that may not ultimately be an interest.
The scripting engine at infiniquest.org uses point-and-click programming to create adventure games ... this may be less overwhelming for a 7-yr old than trying to learn a syntax.
Personally I learned programming fundamentals in Logo, and by the age of 8 was programming in basic. I picked up a Kano for my 5 year old, who is fanatical about Minecraft, and I'm hoping Kano Blocks gives my daughter the same passion for programming that I got from Logo. (Plus she is learning Linux & about computer components) http://www.theguardian.com/tec...
Seriously, please use google to find the answer to this question as it is posted extremely often here on /.
It happens so often that it starts looking as if it is some sort of homework question.
If you can not even able to use google to find the answer, you will not be able to teach a kid anything.
Don't fight for your country, if your country does not fight for you.
Before latching on to one particular language or another it might be worth familiarizing him with programming concepts without even touching a computer. Robot Turtles is a brilliant board game that captures the concept if instructions and how to efficiently group then into functions. My 7 year old loves it and really enjoys the challenge of optimizing his code into as few instructions as possible.
Introduce him the same way I was: set him down in front of a keypunch machine with a big stack of blank cards.
http://alternatives.rzero.com/
So I have an almost 7yo at home. My brothers and I are all programmers to one degree or another. I have introduced him to programming in two steps:
1. Robot Turtles
Best board game for programing ever. Not only does it not require batteries, but it provides great quality time and encourages them to think logically and linearly.
2. Scratch + Makeblock
Once he learned to read he was able to pick up scratch incredibly easily and understand it. To make it more fun I picked up a Makeblock starter robot which had a bluetooth connection and allows him to program his robot to chase his little sister around the house.
Honorable Mention:
Lego Mindstorms EV3
He also has a Lego EV3 mindstorms kit. The Lego / labview environment is still a bit overcomplicated for him to use I'm thinking he will be more ready for it in a year or two.
Best of luck
If you want to teach programming ideas and thought processes (as opposed to a specific language or syntax) I'd actually suggest taking a look at the game SpaceChem. It's about setting up a machine to move chemicals from a start point into specific configuration and then deliver them to an end point. It sounds unrelated, but there is a ton of "programming" there. Effectively the movement lines you make are programs and the chemicals are data objects you are manipulating to reach an objective.
You need to resolve race conditions, figure out orders of operations to manipulate the data correctly, deal with an open-ended problem with no specific goal (do you want to optimize for speed of execution, program size, etc), forecast how data will interact, repeatedly "compile" and test your machine to find problems and refine the solution, and other features of programming. It's clearly a puzzle game, but I'm sure other people with software development background who play it can see the strong connection to "real" programming.
It even has a free demo so you can get a taste of the game to see if it is something they like and which meets your desires.
Spare the rod, spoil the child.
This old adage tells us that to become good programmers, we must have proper indent style beaten into us. Corporal punishment is the only effective means to insure discipline in commit messages and proper identifier names.
How about introducing your kid to playing with other children instead?
I had to introduce my parents and teachers to computing.
My 9-yr old did the Hour of Code series. Good stuff and he got the concepts. It's drag and drop, so he never was at the keyboard doing it "by hand", but it's a great introduction.
I would suggest the Invent With Python books, from http://inventwithpython.com/
They are available both as paper books and as free e-books
Submitter dubbed THE_WELL_HUNG_OYSTER writing about his 7 year old son kind of creeps me out. I know that was not the intention. But still...
I learned to program by making changes to existing game code and observing the results. Of course In my day it was line-numbered BASIC, but substitute
java or something else modern. I'm sure source forge has lots of game code to play with. Not sure how much would be 7 year old friendly as I started as a teen
modding spacewar/star trek. Also 101 BASIC computer games by Ahl. (really old school stuff...) But take tic-tac-toe, and mod it to be 3D or something like that.
I started Logo when I was 6, and 30 years later I still have a IT job :-) So I can only recommend Logo language.
https://www.khanacademy.org/computing/computer-programming
I learned in 1st grade by reading MicroAdventure books. It was the early eighties so it was all in BASIC. But the books all follow a kid with a computer on his wrist and at various points in the book you're given source code and generally you have to find/fix the bugs so you can continue.
I recommend the Big Trax rover. Thinkgeek had a "mini" version a couple years ago, I bring mine anywhere I expect bored young relatives at family gatherings.
Try the DragonSpeak scripting language in the free game Furcadia. It's very kid friendly & easy.
KDE Kturtle is very fun, even on Windows....
supported by the National Science Foundation and Google. Comes with the Scalable Game Design curriculum used all over the US. This is a movie made by Google showing how it is used in schools:
https://www.youtube.com/embed/wStwKAVqSbY?autohide=1&cc_load_policy=0&hl=en&cc_lang_pref=en&autoplay=1
giving a kid a cheaper computer isn't going to be helpful unless they don't have access to another computer.
It turns out that a lot of kids are in just that situation, with parents having only locked-down devices in the house. They have an iPod, iPhone, or iPad, and actually making apps for those requires an eighteenth birthday, a Mac, and a $99 per year recurring fee (source: Apple.com). Or they have a game console, and console makers won't let anybody make programs for those unless the developer is an established company with a few commercially successful PC or Android titles under its belt.
The correct way, in classic basic, to designate type was with a suffix- such as "A$" for a string variable named a
So LET M$ = "Microsoft" was correct code? That might explain people calling a well-known publisher of BASIC interpreters "M$".
If you have a Raspberry Pi handy, you can install the latest Raspbian which comes with a free version of Minecraft (creative mode only) and Python programming interface installed and ready to go on it.
If you don't have a Raspberry Pi, you can always install CanaryMod and use the RaspberryJuice plugin to setup a Python programming interface in Windows/other environments.
Both use the same mcpi Python library, which is easy-to-use and documented here: http://www.stuffaboutcode.com/...
C. Griffin
"Can I keep his head for a souvenir?" --Max from Sam 'N Max Freelance Police