Live data from Hacker News

Ask HN: Teaching programming to a 10 year old, and I'm kind of lost

news.ycombinator.com

31–40 of 51 posts

Re: Ask HN: Teaching programming to a 10 year old, and I'm kind of lost

#31
FWIW (no teaching experience here): In Russia, they're using Pascal to teach programming although I would try to explain programming in some basic abstract concepts.

Like: Program is a list of instructions for computer to do and variable is a "box" where some value is contained.

To make it more engaging you probably need to homebrew some nice and easy to understand demos. Random idea: write a simple graphical library for visualisation for your favourite language to use with your demos.

Re: Ask HN: Teaching programming to a 10 year old, and I'm kind of lost

#32
The two vital things you can help a kid with are:

1. Setting tasks that are within reach but will stretch his ability (and getting his buy-in on the idea before you start)

2. Teaching him how to find the answers to his own questions

I'd do all the setup yourself so the kid can jump straight in to producing something. I'd use FTP as it's easy to conceptualize. Avoid the command line and version control.

I'd start with HTML (written in Notepad) so that you can learn to present any data output. Just teach basic tags: h1, p, table, a href. Use w3schools for reference. Build something like a 'My Family' website with a page for each family member and links to the others.

Then maybe stir in a bit of CSS - again just basic stuff (colors, borders, positioning) and again using w3schools for reference. Use this to make the My Family website a bit prettier.

Then try some PHP/MySQL. You could save each family member in a table and use one PHP file to display each one based on an id specified as a get var.

Simple project ideas to try after that could be a simple CMS or (my favourite) a very basic Twitter clone.

Re: Ask HN: Teaching programming to a 10 year old, and I'm kind of lost

#34
I'm with dpcan on this one. I started my current 10yo on Scratch at 8 and have been giving him incremental "challenges". The immediate feedback for even his first "program" was enough to keep him hooked. He regularly keeps making new games and often pushing the system to its limits (Scratch has many annoying limitations if you're a seasoned programmer or even a kid who has figured out that something like an array - he wouldn't use that word, tho - would be useful).

He started 5th grade last week and one of his classes is a programming class which uses MicroWorlds - http://www.microworlds.com/ - as the learning platform. I grabbed the demo and may shell out the $100 for the home version, just so he can do stuff here in it as well. It's not a horrible system, but it's definitely rough around the edges.

I fully expect to have him starting in Python by 6th grade, tho.

Re: Ask HN: Teaching programming to a 10 year old, and I'm kind of lost

#35
post #8

Logo worked for me. If you want to teach a "real" language (Logo is practically a LISP! It's real!) then Python has a turtle module.

Definitely. Learned Logo when I was 7 years old and it gave me all the fundamentals I needed.

Re: Ask HN: Teaching programming to a 10 year old, and I'm kind of lost

#37

I'd avoid Dive Into Python and HTML5 -- both are intended as quick-start guides for those specific technologies, not as general programming tutorials. They won't make a lick of sense without significant prior programming experience.

About Dive Into Python: http://oppugn.us/posts/1272050135.html

Re: Ask HN: Teaching programming to a 10 year old, and I'm kind of lost

#38
I learned programming through SilverCreator (http://www.silvercreator.net/?action=downloads) when I was younger than 10. SilverCreator is not updated anymore, it’s only for Mac, the official website doesn’t explain much about it, and there might be a few bugs, but nonetheless it’s a fun game-creation system.

It uses a card-based model where each “card” has an image area and a text area, plus buttons along the bottom, and you can switch between cards easily. You can start the kid off just implementing a guess-the-number game using dialogue boxes or the text area. There are built-in drawing tools for drawing to the image area, so it’s easy to create a simple choose-your-own adventure game and use the buttons along the bottom to switch screens. SilverCreator is made in REALbasic, and the programming language it uses is basically a slightly-more-easily-parsable version of REALbasic that uses global functions for everything. All code is started from an event, usually either a button click or entering a card. It’s missing some nice features for more advanced game creation, especially detecting whether a key is down or not (though it can detect key press events), but it supports sprites, sound effects, and even network connections with a simple API. The documentation for the programming language can be accessed from the program’s Help menu – many people have trouble finding it.

I created a Mayan number system translator, Collatz conjecture tester, Pong clone, and P2P chat client using SilverCreator, to give you an idea of what’s possible. You can check the forums on the SilverCreator site to view more examples of games or to ask for help.

Re: Ask HN: Teaching programming to a 10 year old, and I'm kind of lost

#39
First, before you ever turn the computer on, you should explain to them how computers work from a high-level that a kid can understand - i.e. how they are dumb, and they just follow instructions that we give them, and how those instructions are what's known as the program, etc.

Then I would suggest starting out with Hello World in Javascript. Javascript is straightforward, relatively forgiving, and it's on every computer, so it's basically the modern-day BASIC in my opinion. Show them what happens when things go wrong, not just when things go right, in order to drive home how computers are really just slaves to our directions.

Then maybe have them start working on a game, one piece at a time. Kids like games, after all. Maybe something simple like Tic-Tac-Toe or a Pong clone. The main advantage here in using Javascript is that they can email it to themselves and then play it anywhere with no need to set anything up - they can also continue to tinker with it on any computer after the teaching is over.

Re: Ask HN: Teaching programming to a 10 year old, and I'm kind of lost

#40
Wow, I am speechless at the amount I have learned from these replies, thank you all so much - and keep them coming ;)

I am teaching my 10 year old sister, but I don't really know much at all myself - I wish I had back then though, hence why I am teaching her.

She is learning just for the knowledge, with the aim of being able to use it as she needs - inspired by http://news.ycombinator.com/item?id=1299227.

I was thinking of something like this then, from the responses:

scratch/alice->hackety hack->lpthw/invent w python->how to think like a cs/a byte of python->tools/vim/emacs/vcs (?)->google code uni?->django book

Echoing Zed Shaw here (from the link about Dive Into Python, which was extremely helpful for me): what are some decent intros to all the tools used - eg git/vcs, emacs? This is as much for me as it is for her.

Any thoughts on this flow and the choice of resources, especially those with /options/?

hackety hack->?->rails guides? (what would be a similar path for ruby?)

And if this seems to be going a bit deeper than the original scope - it is - I suppose the latter bits are more aimed at teaching me and my brother. I have coded some vb6 before, and he hasn't done anything, but we both want to learn.

For us, we want to learn how to build websites first, so I was thinking:

Sitepoint tutorial (http://articles.sitepoint.com/article/html-css-beginners-gui... (beginner html+css)/w3schools->w3schools for html5/diveintohtml5

Post reply on HN