hudebnik: (teacher-mode)
hudebnik ([personal profile] hudebnik) wrote2011-05-06 12:48 pm

Call for geek help: scripting languages

I'm teaching a Survey of Programming Languages course in the fall. The goals of the course are to teach students how to learn a language, and to introduce students to ideas and techniques they didn't see in their first-year Java courses; if they happen to learn a language that gets them a job, that's a bonus. They're familiar with (if not necessarily good at) class-based OOP and imperative programming; they haven't seen higher-order functions, closures, continuations, comprehensions, macros, or declarative programming in general. Most of them haven't seen any kind of parallel or multithreaded programming, nor network programming.

Traditionally, this course has been about 50% C++, 25% Scheme, and 25% Prolog, but the C++ content has been moved to another course. After polling the preregistered students by e-mail, I've decided to fill the gap with some reasonably-modern scripting language. Leading candidates so far are PHP, Python, Ruby, Lua, Erlang, and Scala.

I can make an unbiased choice among these because I don't really know any of them (although I've written some PHP-based server-side web scripts). So I'll be learning them just ahead of the students :-)

Any advice?

[identity profile] goldsquare.livejournal.com 2011-05-09 04:17 am (UTC)(link)
Hmmm. This sounds like a very interesting course.

If that goal is your real goal, then I'd focus on the more interesting languages such as Scala and Erlang. Python is not all that interesting, except that it's collections/iterators/generators are useful. Insofar as they grew out of PERL and its map operator... maybe PERL is interesting too.

I might, also, look at something like BASH - for a week or so. The notional idea of a glue language, and some discussion of how pipes and files are both more powerful than one might think AND also somewhat too primitive, might be useful.

I'm going to be very curious what you end up teaching.

[identity profile] hudebnik.livejournal.com 2011-05-09 10:44 am (UTC)(link)
I might, also, look at something like BASH - for a week or so. The notional idea of a glue language, and some discussion of how pipes and files are both more powerful than one might think AND also somewhat too primitive, might be useful.

Almost all the students in the course will be concurrently taking a Unix course that covers shell scripting (and C++, among other things).