Teaching Primary School Students Programming? 198
NotesSensei asks: "Recently I was teasing the teacher who runs the computer club in my sons' primary school: 'You teach the kids only how to use software but not how to make software.' Today I got an email: 'OK, you're in: teach them programming.' Now I wonder what language should I pick? My first lesson will be the board game c-jump, but after that? The contestants are: Kids programming language KPL (ab VB.net derivate; Java using BlueJ; Greenfoot (and the BlueJ); and HTML. Does it sound like I'm on the right track or should I try something completely different? We are looking at primary 3-5 (that's 10-13 in this part of the world). Where can I find inspiration for the curriculum?"
HTML (Score:2, Insightful)
Re:HyperCard forever! (Score:3, Insightful)
Re:Scheme? *ducks* (Score:5, Insightful)
Scheme is a beautiful language and for children and math and physics people, is easier to understand than traditional C syntax-based languages.
In fact, the main benefit of using a language from the lisp family is that it makes you a better programmer for the rest of your life, no matter what language you use in your job.
In a related note, I postulate LOGO, because that's what I learned when I was a child and it really helped me to grok programming. Beautiful programming.
Hell NO! (Score:1, Insightful)
Instead of teaching them basic loops, variables, constants, conditionnal statements, basic string/math ops, subroutines and such, you want to teach them tags for making their text bold and such? (and then try to explain doctypes/DTDs and such)
Learning to program helps to understand how computers work. I think it's very useful. Whereas HTML... Most of 'em will likely end up using a wysiwyg editor anyways if they ever have to write some markup later on (dreamweaver et al) - unless they become web devs... Anyone can pickup simple markup in no time at all regardless.
Re:too young for abstract thought (Score:1, Insightful)
With modern languages the amount of abstraction has significantly decrease, which is why we have ever larger numbers of people who can perform the task. We also have methods of scaffolding the abstract concepts so that younger children can understand them. This does not mean that the younger children understand the concept, merely that they a basis for understanding that helps facilitate future learning. In a sense, this is what happened to revolutionize the teaching of music and lead to ever younger musicians of top quality.
So yes the ability of the young is often underrated. OTOH, teaching is a very sensitive to developmental stages, and not use developmentally appropriate methods is asking for disaster.
Re:As an Educator I Recommend Piaget (Score:5, Insightful)
Re:BASIC? (Score:2, Insightful)
Personally, I have to agree with the people who are suggesting BASIC. To start with, it's easy. One advantage that no one else has mentioned, yet, is that it requires less thought about the intricacies of programming. One of the hardest things beginning programmers have to deal with is the whole "the computer does what you tell it to do, not what you want it to do". Why is it necessary to throw in stuff like character vs integer vs floating point vs data structures on top of that? The good thing about BASIC is that, because there are only two data types, numeric and string, there's less to worry about - as it should be. That's why the "B" stands for "beginner".
Over the years, I've argued with a lot of people who think Pascal should be everyone's first language. I will never understand that, even if I live to be 1000.
Re:Kid's Programming Languages (Score:3, Insightful)
Starlogo (Score:3, Insightful)
Re:too young for abstract thought (Score:3, Insightful)
You, sir, were simply an exception. I was in your league too. Alas, I did the mistake of becoming a teacher 1.5 years ago (I quit, now I am unemployed). Yes, I did teach some programming. You see, I thought too that kids could do this and I was confronted with 16+ year olds that had no concept of a variable. Something I took granted at that age. So, perhaps I was a lousy teacher (I will not argue over that, I know I was a bad teacher), but they did not know what a variable was even tought they had algebra the last few years. Go figure.
Oh, I also tried to teach HTML to a bunch of 13 year olds. That was a bad idea... A really bad one.
No, the AC is right. Most kids have problems with abstract notions. That you'll find slashdotters that knew what a variable was at age 10 is no surprise. I'd bet that over 50% of us knew what a variable was at that age. I too did the mistake of projecting my own competencies on the chidren of today. Of course, the article says it's a computer club. The situation might be different with kids attending a computer club and thus already showing interest.
I that case, why not give Alice [alice.org] a try.
That isn't an answer (Score:3, Insightful)
First off, you didn't really answer the question (I'm assuming here that this AC post was written by fermion, since it contains the same types of odd grammatical errors as the grand parent post). Have you ever actually worked with kids?
I have, and my experience is much more in accord with the standard view of childhood as a period of intense learning and rapid acquisition of new abstractions than it is with your picture of children locked in a world of simple and concrete structures. If you want to teach languages, math, music, computer science, or any other "structure rich" subject, childhood is the time to do it. The only things I would suggest holding off on are things like history, music appreciation, and literary criticism which require the acquisition of a large body of concrete but unstructured information before the underlying abstract structures can be perceived.
Addressing a few of your specific points:
This is the sort of thing that makes me think you don't have much experience with real children. You have described the stereotype of childhood play, which is but a faint shadow of the reality. For example:
This was a horrible lesson, for exactly the reasons you list. It taught the kids nothing of lasting value (most of what they memorized will no longer apply by the time they have a chance to apply it) and it focused on rote memorization, which is hard work, instead of developing an understanding which is much easier.
It depends on the source of the complexity. J.S. Bach and Scott Joplin are both complex and accessible without a great deal of prior knowledge, and kids tend to love them (go listen to the tunes of baby toys). On the other hand, if by "complex" you mean music that draws on a body of conventions and idioms that the kids won't know, you are right that they won't enjoy it as much as they would music which uses conventions they are familiar with. This is because it depends on concrete information which they lack, and not due to any deficit in appreciating abstractions.
--MarkusQ