Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×

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?"
This discussion has been archived. No new comments can be posted.

Teaching Primary School Students Programming?

Comments Filter:
  • HTML (Score:2, Insightful)

    by Chasa ( 998060 ) on Saturday August 26, 2006 @08:43PM (#15986751)
    I know my little cousins in that age group would love to make their own "pretty" web-pages. They could each make their own page linked from a page about the class.
  • by daeg ( 828071 ) on Saturday August 26, 2006 @09:02PM (#15986837)
    Stay away from any Macromedia or Adobe product. They make fine programs but I would think such complicated and, frankly, unpredictable user interfaces would just confuse the poor students.
  • Re:Scheme? *ducks* (Score:5, Insightful)

    by Nicolay77 ( 258497 ) <nicolay.g@gMENCKENmail.com minus author> on Saturday August 26, 2006 @09:27PM (#15986946)
    No no no, don't *duck*. You should be proud of your suggestion.

    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)

    by Anonymous Coward on Saturday August 26, 2006 @09:55PM (#15987107)
    They will be interested and it might help them to stay focussed, but it's NOT A PROGRAMMING LANGUAGE! (Sorry if it sounds pedantic, I'm just sick and tired of the "I can program in HTML" types). It's just markup. Various tags and some styling stuff. It doesn't teach anything programming related (javascript aside). And about CSS? Good luck trying to get them to understand the box model (we're talking about 10-13yo kids here). To get the results most people want, they'd have to learn a lot more than what you'll be able to teach in so little time, so it might be quite deceiving to them too (markup - including forms, css & box model, at least one server side tech, javascript basics, etc - if not flash too)

    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.
  • by Anonymous Coward on Saturday August 26, 2006 @10:14PM (#15987229)
    The parent is exactly correct. Children at that age do not typically have a real grasp of abstract thought. Most concepts, be it in algebra, language, or science are taught very concretely, even egocentrically. The building of a terrarium, the writing about the actual event like summer vacation, the using of specific numbers of specific physical objects. Many students will not understand that a variable as an abstract concept until middle high school or college, even if they can go through the motions of using x. As soon as bob is used instead, all hell breaks loose.

    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.

  • by Trizor ( 797662 ) <trizor@gmail.com> on Saturday August 26, 2006 @11:42PM (#15987653)
    As one of the 20 (My fifth grade teacher actually read Piaget and showed it to me and labeled me as such) I look at my classmates and see that now (12th grade) they still struggle with symbolic concepts because they were codeled with the concrete for much too long. The example is physics, where the solutions are often entirely symbolic, many students have trouble with manipulating and thinking abstractly in symbols. However in earlier classes they are encouraged to plug in concrete values as soon as they learn them, and I was actually repremanded for using symbols (My Father is a Professor of Physics and when helping me with math homework at a young age insisted on my use of symbols instead of concrete numbers.) in Chemistry I when we were working with heating and cooling and temperature. While the concrete numberse were initially easily grasped by the class, problems quickly arose when they forgot the meaning of each number because it changed problem to problem and began to forget the theory behind what they were doing. The result was that every single class member could work any type of problem they had seen previously on memory of the motions to go through, but had no clue as to what they were doing and could not solve any new type of problem based on the theory they knew. In short: While they may still be developing the ability to understand abstractions, the sooner they begin learning the better they will be for life. You'll be doing them a favor by introducing them to the concept of a variable and a general solution.
  • Re:BASIC? (Score:2, Insightful)

    by Dadoo ( 899435 ) on Sunday August 27, 2006 @12:13AM (#15987830) Journal
    I can't believe people are modding you up for that comment. At least suggest an alternative, rather than just complaining.

    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.
  • by dcapel ( 913969 ) on Sunday August 27, 2006 @12:22AM (#15987877) Homepage
    I think its clear [pbm.com] assembly [slashdot.org] is the best [slashdot.org] place [slashdot.org] to start learning [wikipedia.org] to program [smith.edu].
  • Starlogo (Score:3, Insightful)

    by njord ( 548740 ) on Sunday August 27, 2006 @12:25AM (#15987892)
    A few years ago, I as an NSF GK-12 teaching fellow at the University of Maine. Basically, University students were assigned to K-12 (non-US people, read: before college) classrooms and asked to help with science curriculum. One of the classes I was assigned to was the computer course for eigth-graders. Probably nobody remembers it, but a few years ago, the State of Maine gave all 7th and 8th graders iBooks to use in their classrooms, so the computer teacher and I conspired to teach some basic programming to the kids. In most public schools in Maine, programming is taught, even in high school, so this was almost certainly the first time any of the students saw programming, and probably the last they would be able to learn in school until college. I eventually decided to use Starlogo [mit.edu], given that it was designed to teach programming, it was available, and I have fond memories of learning basic programming on Logo on the Apple IIe. It worked as well as I could have hoped, and there were a few kids that were interested in doing more (I pointed them on to Python). Here are some things I learned that I'd like to pass on to you:
    • Kids don't always remember details. This can be difficult, because most computer langauges are not forgiving in their syntax. Kids are good at picking up on details, but don't expect them to memorize things like StupidConfusingClassname isn't the same as stupid_confusing_classname.
    • Kids like feedback. Thus, the read-eval-print-loop style is important toward keeping their interest.
    • Related to that, the intrinsic graphical nature of logo is very engaging.
    • This really just a general teaching comment (which I was totally new to when this project was given to me) - especially with totally new topics, kids will have all kinds of levels of ability and interest in the topic. It's important to have something that all of them can do, but also to have something to challenge the kids having an easier time of it. I would ususally introduce a simple topic and have everyone try it out, and then I would have a "master" level problem for the wiz kids to try.
    • Robustness and responsiveness is good; kids aren't very patient, as a rule, and if the programming environment crashes, or performs slowly (and Starlogo, being a Java app, did run poorly on those iBooks), the kids will lose interest in it while they wait for the app.
    I should also mention that StarLogo wasn't really being maintained when I was doing this (or it was being minimally maintained), but now it looks like someone has revamped the project with StarLogo, the next generation. Finally, whatever you end up choosing, don't teach them HTML and then tell them that it's programming. Few things irk me more than people talking about "programming in html". If you want to teach them HTML, fine, but don't let them think they're programming. By they way, youung children might have trouble with html for the first reason I gave above. The syntax is very clumsy and exacting, and worst of all, you don't get error messages from the browser when you screw it up! Anyway, have fun! njord
  • 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.

  • by MarkusQ ( 450076 ) on Sunday August 27, 2006 @04:58PM (#15990906) Journal

    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:

    Most children play is a simulation of life. Playing house, whatever. The play tends to be based in the concrete, mimicking what the child has seen, while very little elaboration.

    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 morning, a four year old taught me to play a game he had just invented, called "Iggilators and alligators," in which a bear named Iggilators was trying to catch fish from a pond filled with alligators. The bear preferred the taste of the fish's heads to the tails (which have too many "poinks"), but the alligators just ate the fish whole. New fish appeared in the pond at random, and the bear always saw them first because, from his jet pack hovering over the pond, he could see all over while the alligators could only see a short distance in front of them. There were many more rules which I don't recall, but you get the general idea.
    • When I recently introduced "Paper, scissors, and stone" to a few pre-schoolers, they quickly transformed it into a multiplayer game of much creater complexity by adding "gun" (which beats all three of the others), and then because gun was too powerful, "school bus", which caries all the other players to safety if anyone uses a gun (and causes the gun-user to miss a turn). They later added "the shootout rule," under which, if more than one player used a gun, the first of them to yell "bang" stayed in, school bus or no, and the other was permanently out.
    Each kid has a motherboard, and each kid was able to point to a component, recite it's name, and recite it's functionality. This was a good lesson because it was concrete and introduced some vocabulary. The lesson did not try to push the relations between components, or have the kids internalize the meaning and state functionality in their own words.

    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.

    Just try talking the same smart kid(20 IQ point would not make so much of a difference) to recital in which the music is complex. They might tolerate it, but would probably find the music on the Disney station more accessible.

    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

Our OS who art in CPU, UNIX be thy name. Thy programs run, thy syscalls done, In kernel as it is in user!

Working...