Mario had a great idea, and I think I'm going to work on it some. I'm creating a set of macros and classes that will make it fun for kids to learn c/c++. The target audience for me is my 7 year old daughter, who is interested in learning to program.

So the design goals are -

1. it should be fun, using themes familiar to kids like fairy princesses, poneys, ogres etc.
2. it has to be easy, and geared towards young children, which also means age appropriate content
3. It should be open source
4. It should be as cross platform as reasonable, which realistically means Windows and Linux, but the default is Windows, since most kids will have access to windows.
5. It should avoid excessively complex syntax, see rule #2
6. It should not be overly frustrating, see rule #1

Everyone is welcome to contribute, please post your cpp and h files here, Ill merge them into the project and post a zip of the full project whenever it seems appropriate.

01-16-2010

C_ntua

Except some few gifted, most kids wouldn't even bother learning C/C++ at that age.
The could try to learn programming in general. Something completely graphical and Object Oriented.

Like you place a teddy bear here and a teddy bear there. Each teddy bear will have some actions. And they would try to make a "video" in a way. Interact each teddy bear with each other by a sequence of actions.

Having that as a base, maybe they could learn some basic ideas. Like a flow chart. For example, if teddy bear A "has slapped" teddy bear B, teddy bear B gets now angry. Else, teddy bear B is now happy.

Another concept could be functions. A "slap" could be approach and hit. A combination of actions.

My point being that you should actually decide what concepts you want to teach the kids. Then make something graphical.

01-16-2010

MK27

Quote:

Originally Posted by abachler

1. it should be fun, using themes familiar to kids like fairy princesses, poneys, ogres etc.
2. it has to be easy, and geared towards young children, which also means age appropriate content
3. It should be open source
4. It should be as cross platform as reasonable, which realistically means Windows and Linux, but the default is Windows, since most kids will have access to windows.
5. It should avoid excessively complex syntax, see rule #2
6. It should not be overly frustrating, see rule #1

I'm telling you dude, that's Ruby.

1) only language I've seen with built-in class/type "Big Number"
2) The symbol -- actually a big, red, gleaming Ruby! Even better: one of the "early classics" on Ruby:Why's (Poignant) Guide to Ruby
is a hand drawn cartoon featuring a talking fox.
3) Ruby is open source, and written in C.
4) Ruby I think runs pretty much everywhere.
5) Everything is an object in ruby. So the syntax is totally.simple -- it's all object + method. Even arithmetic.
6) IMO, nothing frustrating about it.

I don't use it for anything now; I learned it to do "Ruby on Rails" stuff last year. But it's very cute.

01-16-2010

abachler

Quote:

Originally Posted by MK27

I'm telling you dude, that's Ruby.
.

I'm really not interested in teaching my daughter a useless language.

01-17-2010

MK27

Quote:

Originally Posted by abachler

I'm really not interested in teaching my daughter a useless language.

If she uses it, how would it be useless?

Like, it don't matter to me, but it seems that programming is programming. I am pretty sure most people would agree that knowing more than one language will give you a more complete perspective on all of them, even if the ultimate aim to just be really good with only one. You've referred to using BASIC as a kid, and BASIC is a totally useless language -- do you regret that time and wish you'd just used C++ from the beginning? The alpha and the omega, or something?

Also, it is a decent scripting language. I don't use it because I prefer perl (and perl ain't for kids), but there are any number of situations where an interpreted language is way more useful than a compiled one. IMO, and it's not a unusual one...

01-17-2010

abachler

Quote:

Originally Posted by MK27

You've referred to using BASIC as a kid, and BASIC is a totally useless language -

No it isn't. It is commonly used in rapid prototyping of circuits. Often a BASIC stamp will be used for proof of concept.

01-18-2010

MK27

Quote:

Originally Posted by abachler

No it isn't. It is commonly used in rapid prototyping of circuits. Often a BASIC stamp will be used for proof of concept.

Sure. Ruby is widely used on the web -- like, I guarantee there are more employed Ruby programmers than employed BASIC programmers. I presumed by "useless" you meant anything that wasn't C++. Now I understand you mean "anything abachler doesn't already know". This is fer sure a lost cause...the only reason I brought it up was because I have heard Ruby is used to teach kids in some schools (the way BASIC used to be used).

So forgetting about that, you may want to look at this:

Quote:

I have actually had a good bit of luck engaging my 10-year-old in programming using a device called a BASIC Stamp. So I would like to spend a little time here talking about it. It is not cheap, but it has three things going for it:

1. It combines programming and simple electronics
2. The programming tends to be very simple.
3. You can do real things with it

It's about halfway down the page and involves one of those reusable plastic circuit boards with the little grid of holes that adults also use to learn and experiment with:http://www.marshallbrain.com/kids-programming.htm
(...which of course you will want to at least research such things to avoid re-inventing the wheel)