[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: peasant revolt against DrScheme!



Leo Razoumov wrote:

> Regarding Caltech (other universities as well) freshmen student pro
> C/C++ revolts one should remember one thing: majority of them (the
> ones who protest most loudly) likely have already gotten some
> exposure to C/C++ languages during their high school years.  They
> just might not want to learn "yet another language" which from their
> prespective has no practical value.

I'm happy to report that the situation at Brown is quite different,
and in fact rather pleasant.

Brown has *two* year-long introductory sequences.  The traditional
one, 15-16, is managed by Andy van Dam.  The new one, 17-18, was
designed by Phil Klein, Leslie Pack Kaelbling and John Hughes.

15-16 uses only Java.  In the first semester, students primarily learn
to program in Java (so I am told; I have not observed the sequence
closely), using lots of TA-written support code.  In the second
semester they emphasize algorithms and design patterns.

17-18 was created a few years ago as an alternative to 15-16.  It is
based on two principles: that the material be "integrated", ie,
algorithms and design are taught throughout; and that it rely on as
little "magic" (ie, random TA code) as possible.  Not surprisingly,
it's hard to teach in Java without support.  Instead, 17-18 uses
Scheme and ML in the first semester, and Java (with possibly some more
ML) in the second semester.  I couldn't have asked for a better order.

Both courses coexist peacefully.  In the first week, van Dam and
Hughes go to each others' courses to pitch their own (Brown has a
vigorous "shopping" tradition for courses).  You can't switch tracks
mid-stream.  Instead, the two courses must satisfy a common interface
at the end of the year, which is primarily a knowledge of certain
algorithmic material, basic programming skills, and Java.

As part of the peaceful coexistence, *NO* course may require one
introductory sequence instead of the other.  Naturally, some courses
will exhibit an inevitable *bias* -- software engineering may be a bit
easier to those who've already dealt with code bases and libraries in
15-16, while my programming languages offering is undoubtedly easier
to those who have programmed in and can appreciate functional
programming.  But I may not exclude 15-16 students (and, indeed, have
no desire to do so).

In just three years, 17 has grown impressively.  I don't have exact
numbers, but I *believe* 15-16 ends up with about 150 students and
17-18 just over half of that.  (Please don't quote me on any of these
numbers -- they are quite possibly hopelessly off the mark.)

I should remark that we are not a large university: our undergrad pool
is about 5600 students, and the CS department has just under 20
faculty members with low teaching loads.  In some sense, this split is
very consistent with the *spirit* of Brown, which is one of extremely
(some argue excessively) liberal curricular choice.  Students with a
more mathematical bent, or with a leaning toward simplicity and
elegance, tend toward 17-18.  The ones who veer toward 15-16 probably
find it a safer alternative, may not intend to become CS majors, may
be drawn by the established reputation of the course and professor, or
may simply prefer an "industrial" language.

Yet 17-18 thrives.  Brown does admittedly draw on some of the more
free-spirited students in the nation, but I find it hard to believe
that matters much (nor have I been told it is a significant
discriminant between the two sequences -- the DrScheme logo may
resemble the Peace symbol, but I don't see Hippies Prefer Scheme
stickers on campus).  It is true that our student profile is probably
more upscale, but I don't sense that 17-18 is overrun by the idle rich
who bring in a servant to balance their parentheses.

I've come to fell that this arrangement is not a *compromise*; rather,
it seems to be an experiment that for too long has gone unperformed.
The growing numbers in 17-18 illustrate that students, when given a
genuine choice between equals, taught by equally passionate
instructors of comparable quality and standing, and when given a
proper understanding of the issues at hand, will consciously choose
the alternative many on this list prefer.  I draw great strength from
that.  While you do hear the inevitable snide jabs, two things stand
out: (1) there is much greater respect for the 17-18 option than I see
at or hear about from other places (probably because the trade-offs
have been explained clearly); and (2) with the growing numbers, the
snide remarks go in both directions (-:.  Scheme fans here do not seem
to feel the need to hold secret cabal rituals in the dead of night
with the full moon rising.

I obviously regret that more students do not learn about FP and
everything that goes with it.  There's a distinct tension beween
wanting to make my languages course much stronger, which I can do with
the superior background of the 17-18 students (even at Rice, you don't
get students who used ML type inference for several months in their
freshman year!), and making it a shade weaker, to attract and edify
the 15-16 students.  In an Aristotelian vein, the latter option is
clearly preferable.  But perhaps over time a more creative option will
spring to mind.

With my caveats discharged, I conclude that hostility is not
inevitable.  Students do not naturally shirk learning new languages.
In a state of nature, many students do in fact choose the more
contemplative path.  All is not lost.  Power on.  Lambda forever.

Shriram

--
Shriram Krishnamurthi                     http://www.cs.brown.edu/~sk/
Assistant Professor of Computer Science                sk@cs.brown.edu
Brown University