Best Introduction To Programming For Bright 11-14-Year-Olds?
firthisaword writes "I will be teaching an enrichment programming course to 11-14 year old gifted children in the Spring. It is meant as an introduction to very basic programming paradigms (conditions, variables, loops, etc.), but the kids will invariably have a mix of experience in dealing with computers and programming. The question: Which programming language would be best for starting these kids off on? I am tempted by QBasic which I remember from my early days — it is straightforward and fast, if antiquated and barely supported under XP. Others have suggested Pascal which was conceived as an instructional pseudocode language. Does anyone have experience in that age range? Anything you would recommend? And as a P.S: Out of the innumerable little puzzles/programs/tasks that novice programmers get introduced to such as Fibonacci numbers, primes or binary calculators, which was the most fun and which one taught you the most?" A few years ago, a reader asked a similar but more general question, and several questions have focused on how to introduce kids to programming. Would you do anything different in teaching kids identified as academically advanced?
In my experience, schools generally implement cutting edge educational ideas from some time in the last 50 years.
They are all cutting edge, they just aren't necessarily up to date, and they aren't interested in changing.
Nerd rage is the funniest rage.
Discrete math, autonoma theory, logic (truth tables, conditionals, boolean logic) that sort of stuff is more important to a good grounding in computer science than programming (all that on just a chalkboard). If the knowledge base is strong, the languages will reveal themselves as tools to solve those types of problems with. The language is just a construct for realizing the application of the theory. If the math and logic concepts aren't understood, you basically have a tool that you don't know how to use. Which is not bad. You're still better off than where you were, but now you're banging in nails with a socket wrench. Instead of learning what a bolt is, what it's for and how to tighten it, and then given a socket wrench.
On second thought, anything but Java.
Personally, I can't stand it and try not to use it, in favor of the more straightforward and less loaded "high ability."
But that's a completely wrong terminology. "High ability" is something that can be acquired. If someone has killer ability in some field it doesn't mean that they're bright or gifted -- it just means they may have poured a lot of work into it. The whole point of "gifted" kids is that they don't need to pour effort into anything -- they're just better at stuff than those other kids (who may well have equally "high ability" in any one field, but only because they worked hard at it).
Let me pre-empt the retards by stating that there's nothing wrong with hard work, of course. Sometimes the job at hand requires it. But when you are in that situation and the next guy just breezes through the same stuff without even much thinking about it then you'll understand what "gifted" means.
We're all born with nothing.
If you die in debt, you're ahead.