What programming language should we teach?

I had a discussion shortly before the end of the year with one of our exchange students regarding a programming class I wanted to teach. My goal was simply to introduce programming concepts and algorithmic thinking.

I had a discussion shortly before the end of the year with one of our exchange students regarding a programming class I wanted to teach. My goal was simply to introduce programming concepts and algorithmic thinking. Heck, I'd be happy if the kids could walk out of the class writing passable pseudocode.

My first introduction to programming (aside from SAS for statistical analysis at my job and LOGO in the fourth grade) was C. It wasn't long before we were looking at object oriented programming and the tools available in C++, but I thought it was actually a nice way to start programming. Java and javascript, of course, also fall right out of it, so I felt like I was well-prepared when I hit an algorithms class as an undergrad that used Java as the implementation language.

This was all as an undergrad, though. The same standards or expectations obviously can't be placed on the average high school student, who should, I believe, still be exposed to some degree of programming. The exchange student was actually a pretty solid Python programmer and was convinced that, because Python was such a high-level language that it was actually a much better choice.

Of course, there's Java, but I've heard complaints out of computer science departments that an overemphasis on Java is making for some poorly-rounded students.

So here's the question: What language (or languages) should we be teaching at the high school level to introduce kids to computer science and programmatic thinking? I'm not talking about turning out programmers; I want kids to think algorithmically and know what I mean when I say high-level programming language. I want them to be comfortable when they see Matlab or Maple in college and be ready to hit any number of languages later on.

So weigh in below...your input would be much appreciated.

Newsletters

You have been successfully signed up. To sign up for more newsletters or to manage your account, visit the Newsletter Subscription Center.
See All
See All