Beginner languages – the usual infinite loop

Alfred Thompson pointed out this article, Retiring Python as a Teaching Language, in his latest blog.  Mike Zamansky’s comment sort of hit the nail on the head.  I always wonder when I read articles like this who the authors are teaching.  High school freshmen?  Not likely unless the kids have one heck of a middle school programming curriculum.  AP level kids that have two or three years of programming background?  Then the author has an argument but they are far from “beginners”.  Most professional programmers that have ideas as to what a beginner language in education should be really do not understand the definition of “beginner”.  Beginners are not the kids that have done programming at home because it is fun.  Beginners do not know how to use an IDE of any kind.  Beginners do not understand that an equal sign does not always mean equal (or is that rarely means equal?).  Beginners do not understand that in order to use a language the language has to be downloaded and installed on the computer, sometimes not a trivial exercise.  Beginners are sometimes taught by teachers that are beginners themselves so any beginner language better be stupidly easy to install and get started with.  The language also needs a beginner level textbook written by a teacher, not a really smart expert in the language.  Beginners, more often than not, are kids taking this one and only programming course because there was nothing else offered that period.  (Small school issue but in Montana most schools are small.)

Just because a language does not do certain tasks easily is not a reason to eliminate the language.  I like to mess with Lego robots.  Visual Basic will work with Lego robots if you beat on it hard enough (the language, not the robot).  I do not want to beat on it so I use RobotC for the robots.  Does this mean I should remove VB from the list of languages to teach?  No way.  If I want a language to write a program that requires buttons of various types, text input fields, the ability to make pretty GUIs and can read and write to a simple text file VB is my choice.  Both VB and RobotC can be great beginner languages.

I will argue that the reason any language is used in a high school classroom is that the teacher is comfortable with the language.  It has little to nothing to do with the practicality of the language, its usefulness in the job market, or what the colleges want the incoming freshmen to know.  Teachers will teach what they know.  (Of course I am presently teaching Java and I know no Java, but then I am an idiot.)

Maybe JavaScript is a great beginner language but I have a feeling Scratch and Small Basic, just to name a couple of my favorite beginner languages, are much more appropriate for beginners.

Now that I have said all this I am curious about JavaScript.   I dug around for a few minutes and I noticed Khan Academy is using JavaScript as their intro language.  The trouble is KA does just coding on a web browser interface.  Nothing on how to do standalone coding on a computer, what IDE to use, what to download to program with JavaScript, how to publish to a device or any of those handy little skills.  I guess those should be obvious to a beginner.


2 Responses to “Beginner languages – the usual infinite loop”

  1. Mike Zamansky Says:

    There are a lot of things I love about Javascipt but as a teaching language there are a huge number of problems. No good IDE, really bad debugging tools, too loosey goosey (look up the “javascript wat” video) etc. To easy to develop seriously bad habits.

    When I choose a langauge for a class lots of things come into play:

    1. What am I trying to teach (mental tools, paradigms etc)
    2. What am I trying to teach (what will they be building, pratical considerations)
    3. My comfort
    4. where does it lead.
    and lots more

    Great point on the KA stuff which is similar to just about all the online learning platforms.

  2. gflint Says:

    Javascript wat!! OMG!

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: