TITLE: One Observation from Short Iterations
AUTHOR: Eugene Wallingford
DATE: April 05, 2008 11:40 AM
DESC:
-----
BODY:
A while back, I
wondered out load
how I might be able to improve my "topics in languages" courses
over the course of the semester, with them being three 5-week
iterations instead of the usual 15-week course. The languages
in the three courses have been different -- bash, PHP, and now
Ruby -- which influences how and when I teach what, but all of
the courses are about scripting, so there is a common mindset.
This has made it possible, for example, to reuse several
in-class examples and homework exercises, as a way for students
participating in more than one of the iterations to compare and
contrast how the languages work.
I have noticed one unexpected phenomenon from the vantage point
of closer-than-usual iterations: How I teach a language I know
is different from how I teach a language I don't know. Or
perhaps I should say, how I want to teach a language I
know is different from how I want to teach a language I don't
know.
Going into the bash section, I knew a fair amount of shell
scripting already and felt a desire to delve into the areas
that I didn't know as well. But the shell was new enough to
most of the students, and different enough from the languages
they knew, that I was able comfortably in my mind to organize
the course around the basic principles of the Unix Way,
especially pipes. Using a good secondary text,
Classic Shell Scripting,
helped, too.
Then came PHP, about which I knew relatively little. I found
myself paying close attention to low-level syntactic issues as
I myself learned the language well. "Look at this cool thing
I just learned about variables..." was a typical expression
in class. Some of the examples I used were rather un-PHP-like
as I explored the boundaries of the language.
I am now teaching Ruby, a language I know and like pretty well.
I find myself wanting to jump passed the low-level stuff like
variables and classes right to the application level, where
students can see Ruby in action. This makes sense for me,
since I know most of that low-level stuff cold, but perhaps
not so much for a student seeing Ruby for the first time.
Fortunately, many of the ideas in Ruby are similar enough to
the ones they have seen in the previous scripting languages
and in other programming languages. Ruby also is pretty easy
to read, as was PHP, which makes code approachable. Still,
I am pushing on myself to be sure that the applications I
show them progress in a reasonable way from simpler language
features to more complex, so that students can grow in their
understanding smoothly. This week, I evolved a simple diff
script from
Everyday Scripting with Ruby
as our first example and wrote a script for finding popular
pages in a server log based on Tim Bray's chapter in
Beautiful Code.
I'll have to ask the students who have been all three sections
if they noticed differences in how I approached the languages
and what, if any, difference it made to them.
-----