11 Replies - 6297 Views - Last Post: 04 December 2012 - 04:58 AM

#1 SmaJLe  Icon User is offline

  • New D.I.C Head

Reputation: 7
  • View blog
  • Posts: 21
  • Joined: 06-November 07

teaching kids programming

Posted 25 December 2011 - 04:21 AM

Hi fellow developers!

I was wondering/would like your input on teaching kids programming. I myself am a developer, working full time. I remember my (high)school and university teaching, remember what I liked and not about programming. And here I have a 12 y/o kid, who seems to be interested in programming.

My concern is: which language/technology should we start with? When I began, I was introduced to Logo (a little IDE, where one types commands such as "forward 50" and a turtle (or any other icon) is drawing 50px line forth). While it is a nice idea as introduction to functions and algorithms, eventually it turned out into "who can make nicest looking star".
Next in line was Turbo Pascal. It's cool for very basics: addition, subtraction, write/read line understanding and usage. But we weren't taught OOP and I can most definitely see benefits of it.

After high school, I went through Java and C# in university, the rest is too complex for a kid (as well as for some grown-ups..).

What I'm thinking, is that I'd like to start teaching the kind something relevant, useful, flexible and good for explaining programming as a skill. For example, Java/C# are flexible languages, which can be easily used to make practical desktop applications. This is helpful, if one wants to deepen knowledge and/or comes up with interesting free-time project.
Web development is also interesting, though a little more difficult to debug (therefore - little more difficult to find your mistakes, which can be highly demotivating).

There's also of course things like Perl and OO Pascal. But I was wondering if there's a point in teaching the kid something that is not very much used around these days in software development (correct me if i'm wrong!). As for Perl, I find it sweet and easy, but not sure whether console programming would be catchy enough for children of this century.


So I'm asking your opinion: what would you start with when teaching ~12 year old programming and why?

Is This A Good Question/Topic? 0
  • +

Replies To: teaching kids programming

#2 Atli  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 3719
  • View blog
  • Posts: 5,991
  • Joined: 08-June 10

Re: teaching kids programming

Posted 25 December 2011 - 04:59 AM

Flash seems like a good starting point for kids. You can start by drawing stuff in the IDE and then manipulate it with a line or two of code. And ActionScript has things like events and OOP, which you can work your way up to.

It's what I started doing at 13 and I loved it. - Even though ActionScript was kind of limited back then. Was basically just a bunch of goto statements :)


As for actual programming languages, I would suggest Python. It's got a very readable syntax, and it allows you to avoid the more complex things, like OOP, to begin with.
Was This Post Helpful? 0
  • +
  • -

#3 hiddenghost  Icon User is offline

  • D.I.C Addict
  • member icon

Reputation: 39
  • View blog
  • Posts: 621
  • Joined: 15-December 09

Re: teaching kids programming

Posted 25 December 2011 - 05:55 PM

Python because it's super easy to understand at first.

Javascript because your kid will like the ability to use actual graphics right away because the browser handles it. Plus it seems cool because of the internet factor. With javascript that kid will learn logic, variables, arrays, and so on. Maybe later they can move to compilable languages or some such with knowledge about loops and logic already in their tool belt. Plus there's tons of books about it.
Was This Post Helpful? 0
  • +
  • -

#4 wordswords  Icon User is offline

  • D.I.C Regular
  • member icon

Reputation: 76
  • View blog
  • Posts: 272
  • Joined: 17-December 11

Re: teaching kids programming

Posted 25 December 2011 - 06:17 PM

I would start with Python because it has an acceptable learning curve, teaches good programming practice, and is object orientated. There are also some very good tutorials and free books available, and it runs on most operating systems.

I did mentor a kid who was interested in learning programming, and encouraged him to learn Python. He picked it up and after a few years is doing very well out of it, currently he is employed as a developer at a startup.
Was This Post Helpful? 0
  • +
  • -

#5 Glorfindal  Icon User is offline

  • Java Enthusiast
  • member icon

Reputation: 23
  • View blog
  • Posts: 538
  • Joined: 31-December 08

Re: teaching kids programming

Posted 25 December 2011 - 10:25 PM

I am a kid and I started with HTML and CSS, then moved up to server-side scripting. Right now I use Classic ASP (Yeah behind the times I know) with a database. However, around the time I started learning HTML I worked with flash and actionscript but never went very far with it.
Was This Post Helpful? 0
  • +
  • -

#6 BetaWar  Icon User is offline

  • #include "soul.h"
  • member icon

Reputation: 1156
  • View blog
  • Posts: 7,171
  • Joined: 07-September 06

Re: teaching kids programming

Posted 25 December 2011 - 11:05 PM

I would suggest a slightly different approach. Instead of teaching them slowly and moving in a certain direction with their learning; see what they are interested in creating. I remember that when I was starting out I was absolutely fascinated with the web and how people could make things that tons of other people could see around the globe if they wanted. That is why I started down the web development route. Later I learned that there were compiled languages that ran natively on a computer (C and C++ in my case) and decided to delve into them -- my goal back then was to create an operating system even though everyone I talked to shot it down as something far too complicated. At this point I haven't made an operating system (unless you count simple hacking of a linux kernel or creating a bootable assembly program; neither of which I count as an OS), but I have learned an absolute TON and am still completely interested in programming (have been doing it for almost 8 years now and don't see that changing any time soon).

So, what I am saying is to let them set the bar. If they want to program as a hobby let them; if they want to go pro help them. It should be their life to lead. Just support them in whatever decisions they make (at least in this regard) and it will be fine.
Was This Post Helpful? 1
  • +
  • -

#7 111027  Icon User is offline

  • D.I.C Head

Reputation: 17
  • View blog
  • Posts: 141
  • Joined: 26-December 11

Re: teaching kids programming

Posted 29 December 2011 - 12:08 AM

There's nothing wrong with teaching kids how to program, but it can get a bit tricky. I agree with BetaWar about letting them set the bar, as interest is the key here; Though i believe that the choice of technology is also pretty important.

When i first started programming, i started with C. A lot of the people that know of my first language go insane, like "But it has a small standard library!" "It doesn't support OO" or something in those lines.

My point is, however, that those things are irrelevant in this context. Sure, they're nice and all, but that's for programmers. When someone is starting off they need first master the basics, and master them well.* Only then should their instructor introduce them to the more complex concepts.

As to what to teach the kids first - i'd say it depends. C seems like a good place to start for kids of a bit older age, say 12- 14. For younger ones, i would say something in the lines of Pascal, or similar. Of course, that only applies if they have a firm grasp of the English knowledge - for anyone else, i'd actually recommend C. It would also help to have it's preprocessor make things a bit easier, by translating if, for, while, do and the likes into their native language for a while.



* Sure, they're nice, the libraries. They also are bad for education, as they hide the potential future programmers from the problems that they solve; And problem solving is the skill to develop.
Was This Post Helpful? 2
  • +
  • -

#8 iniaes  Icon User is offline

  • D.I.C Head
  • member icon

Reputation: 34
  • View blog
  • Posts: 142
  • Joined: 23-October 10

Re: teaching kids programming

Posted 29 December 2011 - 02:30 AM

The selection of languages, and what they could advance into should be secondary to how your kids learn. Something like Small BASIC, or Kodu game lab from Microsoft, with small but accessible syntaxes would be good, or maybe the Alice system from CMU.

It seems that sometimes people forget that there are other ways to make applications and games other than through compilers and IDEs :)

By establishing the relations between simple algorithms, and seeing what happens in their program you will quickly establish how strong an interest in programming and computer science concepts your kids have, if the force is strong with them then you are in a good position to guide and help them become more immersed in the programming world and show them what languages to explore further.

Also see this previous thread on theaching the young to code.

This post has been edited by iniaes: 29 December 2011 - 02:36 AM

Was This Post Helpful? 1
  • +
  • -

#9 creativecoding  Icon User is offline

  • Hash != Encryption
  • member icon


Reputation: 926
  • View blog
  • Posts: 3,205
  • Joined: 19-January 10

Re: teaching kids programming

Posted 29 December 2011 - 09:10 PM

You can't forget that it also requires a certain mindset. They can't just like the outcome of their work, but everything about it. The whole process of creating something that does what you want it to should bring joy to them.

Also, make sure it doesn't consume them. It's great and all that kids are learning early, but they're still kids, you know? They still have to go outside and do what kids do. Just make sure they go outside and play ball or something while their code's compiling.
Was This Post Helpful? 2
  • +
  • -

#10 selimi02  Icon User is offline

  • New D.I.C Head

Reputation: 1
  • View blog
  • Posts: 8
  • Joined: 24-November 12

Re: teaching kids programming

Posted 28 November 2012 - 07:28 PM

I'm 12 and I started with C++ self taught and it's EASY.
Was This Post Helpful? 0
  • +
  • -

#11 modi123_1  Icon User is online

  • Suitor #2
  • member icon



Reputation: 9287
  • View blog
  • Posts: 34,811
  • Joined: 12-June 08

Re: teaching kids programming

Posted 28 November 2012 - 08:07 PM

Try not an dredge up topics a year old without adding helpful information.
Was This Post Helpful? 0
  • +
  • -

#12 shrik450  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 15
  • Joined: 01-December 12

Re: teaching kids programming

Posted 04 December 2012 - 04:58 AM

Hello,
I am 14, and I started learning to program when I was 10 with QBASIC. It was really simple and amazing to start with, and I learned a little about pixel graphics on the way.
When I was 11, I started teaching myself C - It went on well, and I soon progressed to C++ (Which I left midway for Java), C# and this year I learned Python. Back then, my focus was more to learn than to make something big - and if that is that kid's focus, take him to a language that is powerful but has a small learning curve. I suggest Python, Java or C. These are the languages that will help him kick start a programming career.
However, if he wants to get started with power, It's better to teach him Web - based scripting languages. In that case, I suggest Javascript, as it is simple and powerful.
Kudos for trying to teach a kid to code!
Was This Post Helpful? 0
  • +
  • -

Page 1 of 1