Just wondered which computer language is best suited for preteen students.
Any ideas or experiences?

I think its python, its a bit easier to learn the language and write the code compared to Java and C++

Edited 4 Years Ago by zeroliken: n/a

early start: pseudo code. let them grasp the logic behind the code, and later on choose a language, and show them how to transform

read number
set number2 to 0
do while number2 < number
-  print number2
-  add 1 to number2

into actual code. there are a lot of languages that are not too hard to learn, but you'll have to consider whether or not they are interested/motivated and what kind of code/applications you want them to be able to produce.

If you want them just building web pages, then PHP is fine.

But if you want them to be PROGRAMMERS, I think you can't go wrong with QuickBasic (you can still find v4.5 online). It doesn't require them to be computer scientists to start, and gives them lots of room to grow as they get more confident. Plus the graphics is fun to play with.

Of course, that presumes that you don't mind them doing console/DOS-style stuff.

Edited 4 Years Ago by BitBlt: n/a

Started with QBasic, had fun, but hated it at the same time. It was when I went to C that it all kind of made sense and I could make practical tools and not just speaker beeps and pixelated screens. Java would be good too with all the libraries that you can have fun with, out of the box.

But I suppose there's VisualBasic, it's what some schools try to teach. I hate it and think it's twelve times more frustrating than assembly(that's my opinion obviously), but you can play with all the IDE tools and make fancy GUIs and tools right off the bat with no programming experience, and that's why they teach it.

Yeah, BASIC

I started age 9/10 with VB5 and BlitzBasic (Like QBasic)
Then moved on to Delphi, then C# at 13/14
Did C++ and Java at uni.

Now a C++ developer.

Yeah echo Basic vb.net...

Possibly python because the syntax is supposed to EASIER/intuitive then say c or c++.

I don't believe that, I can still barely get python...

Possibly because you're dyslexic, as the language contains no opening and closing braces and relies more on indentation...
The elaborate studio interface which ships with vb.net would take care of indentation so you never need worry about it.

That being said, others swear by python, citing if they were to start coding from scratch, learning the pure basics... that language would be the most intuitive to learn from knowing NOTHING before. Why? Because it most represents pseudo code, and is sufficiently a high language to not worry about pointer syntax and other pitfalls. It's pretty light-weight and easy to install and cross platform.

Of course, in my opinion everything is subjective. I started with C++ so naturally I find this easier.

I started learning the blender3d interface so naturally I find this easier than say Maya or 3dMax...

Like most things in life, the more you practice the more easier you find it... If the kid is dead-set on programming he/she will eventually find other subsets of languages and grow accustomed to one. Just a matter of finding which one, and most importantly 'Picking the right tool for the job.'

Edited 4 Years Ago by iamthwee: n/a

Once you get the hang of using the languages required indentations for blocks of code, Python is much like a pseudo language and rather powerful.

Simple example:

food = 'fish', 'fowl', 'fruit', 'veggies', 'meat'
# show all food items
for item in food:
   print(item)

# print 10 dashes
print('-'*10)

# show only the items that start with a 'f'
for item in food:
    if item.startswith('f'):
        print(item)

''' output
fish
fowl
fruit
veggies
meat
----------
fish
fowl
fruit
'''

Python also has a built-in module called turtle that acts like LOGO.

Edited 4 Years Ago by HiHe: n/a

Yeah I learnt blender in Uni :) the new "improved" interface is even worse than the old one....

True, that being said, I didn't take long to unlearn some of the old features and get used to the new ones in 2.62. (sorry to derail the thread but)

the advantages of learning 2.62...

Just too many to list...

1) The introduction of their new unbiased render engine 'Cycles' which renders setups in real time and harnesses the power of GPU, which works cross platform on Linux, mac and windows.

http://www.youtube.com/watch?v=rQPDLWOd4wE

2) Subsurface scattering with cycles: (see my attachment)

3) Sculting features like zbrush.
4) Beautiful smoke/fire simulations.
http://www.youtube.com/watch?v=1mdIUjh5iFY

5) Advancing rig setups and new improved game engine with physics.
6) New scripts such as voroni fracturing, ivy generators, gear generators.
http://www.youtube.com/watch?v=FIPu9_OGFgc

7) Video editing and compositing


Forget 3DS max and Maya. Why fork out money when you can get all this for free?

Blender is now looking like the all new tool for 3D. There's probably more but I've missed it.

Edited 4 Years Ago by iamthwee: n/a

Attachments drag.JPG 15.51 KB

Not bad, looks like a reasonably good low poly mesh, although the table top looks like you may have applied a bad subsurf modifier to it. It would probably be best to leave it flat.

I think that at that age, if the kid wants to learn something, he'll learn it regardless of how hard it is. If he doesn't want to learn it, it won't matter much how easy it is. That's just the kind of curiosity and passion that kids have at that age (when they are old enough to understand complex things, but too young for their minds to be too occupied by other things.. you know what I'm talking about..).

The question is not a matter of the most "objectively easy" language (that is, if "objective" and "easy" can even make any sense together). The question is what topics of programming (or IT) can be interesting to kids of that age and which language (or tools) gets them to do that the quickest. In other words, how to direct the interest of the kid towards the path of least resistance.

My initial interests were in math stuff (simulation, 3D graphics, etc.) and software engineering puzzles. Delphi and C++ were great languages to progress quickly with those interests in mind.

Other interests, other fields, would mandate different languages as the easier entry-point to start getting some basic programs working easily. Python is probably good for basic computer sciency work (algorithms, data structures, etc.). VB is probably better for GUI apps and the like.

The problem with teaching programming to kids is that there are so many possible things that can trigger their interest. You cannot commit to one area or type of projects or programming language without excluding a majority of people who will never develop a strong interest in that particular subject regardless of how easy the language is. One of my first high-school computer class taught image and animation editing (paint shop and animation shop), then VB for basic GUI programs, then html for webpages, and then left the rest of the class (last quarter of the session) to do a "big" project in one of these areas. I think that's a good pattern for a basic IT class.

BTW, on the Python feud, people respond differently to a new language like python. Personally, I think I got put off from python by the drastically different syntax, but mostly by the lack of clarity in type specifications, scoping rules, abstract memory model, etc. These are aspect that are very strong and explicit in C++, and those who see those things as annoying things to worry about in C++ it is not surprising they adopt Python very easily, but those who see these things as great tools to create robust software will have a hard time letting go of it. Again, different fields make different languages more or less suitable, it's a matter of interests and focus on various aspects of programming that give good (or bad) taste to a programming language.

BTW, on the Python feud, people respond differently to a new language like python. Personally, I think I got put off from python by the drastically different syntax, but mostly by the lack of clarity in type specifications, scoping rules, abstract memory model, etc.

I don't think kids or those starting out with programming need to worry about such things. Nothing is more unrewarding than sitting down to solve a problem only to find the language getting in the way, time and time again. Is C++ or C a bad choice? Absolutely no. Is it a bad first language? If you are trying to learn programming, yes, I would say so.

and those who see those things as annoying things to worry about in C++ it is not surprising they adopt Python very easily, but those who see these things as great tools to create robust software will have a hard time letting go of it

I can sense this going in the direction of "this is what separates the boy's from the men". Python is pretty much capable of creating a "robust" software. Heck, I have seen Python being used as a backbone for creating pricing related apps in a "big bank".

Those of us who have tried to teach programming to kids would be pretty much aware of the problems one faces when using a language like C or C++ as the first language. I know I have. I'd personally recommend the top to bottom approach. Learn the high level basics and then keep digging deeper as you become comfortable with simple stuff.

I recommend telling pre-teens to leave their laptops, pcs, macs, ipads, ipods, smartphones in the box and going out to play with their friends. Eat some mud, climb a few trees, chase some cars. If my kid wanted to sit at his computer for hours at a time at the age of 12, I'd have banned him from using it and have given him a rugby ball and told him to go out and not come back until it was dark. If kids want to learn a little bit about programming later on fine, but I'd want to ensure that they were able to socialise and not be the last person to get chosen when two kids pick teams in their PE lessons. My 2p.

I would definetely say Flash AS2. The absolute most important part is that the students are motivated, and flash allows you to be very creative with just a basic knowledge of math. I got into programming through AS2 when I was about 12, and then started C++ a year later, which to my surprise had very similar syntax to flash actionscript. AS2 doesn't give annoying errors which will put off students, its flexible, and good practice. Since then, I've had a passion for programming because I see it as a form of art, not just a school subject.

Having now started at university, many people who have never programmed before are being forced to learn programming through dull Java console applications, it takes away the good enthusiasm I usually have when programming.

A good teacher can keep students interested regardless what programming language they have to use.

If I would have to teach children, I would most likely use Python because that has a turtle module (LOGO like).

Edited 4 Years Ago by vegaseat: I

Honestly, I would teach people Shell Scripting first as a precursor to a programming language. It's fast and easy to grasp and teaches the basic programming structures like "if", "while", "for", variables, and functions. Anybody who knows how to Shell Script should be ready to move on to C++ or another programming language in my opinion.

Our education system is getting a shake up with the Computing GCSE qualification (14-16 year olds) with programming being based around Greenfoot (Java based). Anybody have any experience of this? Any thoughts?

On the Python front there could be worse things to do than to check about Sugar on sugarlabs.org.

http://sugarlabs.org/

In addition to being Python based and open source (ever listened "read the source"? And Python source is really easy to read when done well) there is also the Smalltalkish
Etoys on the stick.

Hope my brains are not completely destroyed from starting with assemlyrish (Had no money for printer and display was numbers only) keycode language of TI58C programmable calculator and GOTO style BASIC. ;)

Edited 4 Years Ago by pyTony

Java with its forced OOP is suited for simple stuff for children.
Python has been mostly used to solve adult scientific problems.

This question has already been answered. Start a new discussion instead.