Computer Science Education Benefits from FLOSS

Post Syndicated from Bradley M. Kuhn original http://ebb.org/bkuhn/blog/2010/02/17/education-floss.html

I read with interest today
when Linux Weekly
News
linked

to
Greg DeKoenigsberg’s response
to
Mark
Guzdial’s ACM Blog post, The Impact of Open Source on Computing
Education
(which is mostly a summary
of his
primary argument on his personal blog)
. I must sadly admit that I
was not terribly surprised to read such a post from an ACM-affiliated
academic that speaks so negatively of
FLOSS‘s
contribution to Computer Science education.

I mostly agree with (and won’t repeat) DeKoenigsberg’s arguments, but I
do have some additional points and anecdotal examples that may add
usefully to the debate. I have been both a student (high school,
graduate and undergraduate) and teacher (high school and TA) of Computer
Science. In both cases, software freedom was fundamental and frankly
downright essential to my education and to that of my students.

Before I outline my copious disagreements, though, I want to make
abundantly clear that I agree with one of Guzdial’s primary three
points: there is too much unfriendly and outright sexist (although
Guzdial does not use that word directly) behavior in the
FLOSS
community. This should not be ignored, and needs active attention.
Guzdial, however, is clearly underinformed about the extensive work that
many of us are doing to raise awareness and address that issue. In
software development terms: it’s a known bug, it’s been triaged, and
development on a fix is in progress. And, in true FLOSS fashion,
patches are welcome, too (i.e., get involved in a FLOSS community and
help address the problem).

However, the place where my disagreement with Guzdial begins is that
this sexism problem is unique to FLOSS. As an undergraduate Computer
Science major, it was quite clear to me that a sexist culture was
prevalent in my Computer Science department and in CS in general. This
had nothing to do with FLOSS culture, since there was no FLOSS in my
undergraduate department until I installed a few GNU/Linux
machines. (See below for details.)

Computer Science as a whole unfortunately remains heavily
male-dominated with problematic sexist overtones. It was common when I
was an undergraduate (in the early 1990s) that some of my fellow male
students would display pornography on the workstation screens without a
care about who felt unwelcome because of it. Many women complained that
they didn’t feel comfortable in the computer lab, and the issue became a
complicated and ongoing debate in our department. (We all frankly could
have used remedial sensitivity training!) In graduate school, a CS
professor said to me (completely straight-faced) that women didn’t major
in Computer Science because most women’s long term goals are to have
babies and keep house. Thus, I simply reject the notion that this
sexism and lack of acceptance of diversity is a problem unique to FLOSS
culture: it’s a CS-wide problem, AFAICT. Indeed,
the CRA’s
Taulbee Survey shows (see PDF page 10)
that only 22% of the tenure
track CS faculty in the USA and Canada are women, and only 12% of the
full professors are. In short, Guzdial’s corner of the computing world
shares this problem with mine.

Guzdial’s second point is the most offensive to the FLOSS community.
He argues that volunteerism in FLOSS sends a message that no good jobs
are available in computing. I admit that I have only anecdotal evidence
to go on (of course, Guzdial quotes no statistical data, either), but in
my experience, I know that I and many others in FLOSS have been
successfully and gainfully employed precisely because of past
volunteer work we’ve done. Ted
T’so
is fond of saying: Thanks to Linux, my hobby became my job
and my job became my hobby
. My experience, while neither as
profound nor as important as Ted’s, is somewhat similar.

I downloaded a copy of GNU/Linux for the first time in 1992. I showed
it to my undergraduate faculty, and they were impressed that I had a
Unix-like system running on PC hardware, and they encouraged me to build
a computer lab with old PC’s. I spent the next three and half years as
the department’s volunteer0 sysadmin and
occasional developer, gaining essential skills that later led me to a
lucrative career as a professional sysadmin and software developer. If
the lure of software freedom advocacy’s relative poverty hadn’t
sidetracked me, I’d surely still be on that same career path.

But that wasn’t even the first time I developed software and got
computers working as a volunteer. Indeed, every computer geek I know
was compelled to write code and do interesting things with computers
from the earliest of ages. We didn’t enter Computer Science because we
wanted to make money from it; we make a living in computing because we
love it and are driven to do it, regardless of how much we get paid for
it. I’ve observed that dedicated, smart people who are really serious
about something end up making a full-time living at that something, one
way or the other.

Frankly, there’s an undertone in Guzdial’s comments on this point that
I find disturbing. The idea of luring people to Computer Science
through job availability is insidious. I was an undergraduate student
right before the upward curve in CS majors, and a graduate student
during the plateau
(See PDF
page 4 of the Taulbee Survey for graphs
). As an undergraduate, I
saw the very beginnings of people majoring in Computer Science
“for the money”, and as a graduate student, I was surrounded
by these sorts of undergraduates. Ultimately, I don’t think our field
is better off for having such people in it. Software is best when it’s
designed and written by people who live to make it better
— people who really hate to go to bed with a bug still open. I
must constantly resist the urge to fix any given broken piece of
software in front of me lest I lose focus on my primary task of the
moment. Every good developer I’ve met has the same urge. In my
experience, when you see software developed by someone who doesn’t have
this drive, you see clearly that it’s (at best) substandard, and
(usually) pure junk. That’s what we’re headed for if we encourage
students to major in Computer Science “for the money”. If
students’ passion is making money for its own sake, we should encourage
them to be investment bankers, not software developers, sysadmins, and
Computer Scientists.

Guzdial’s final point is that our community is telling newcomers
that programming is all that matters
. The only evidence Guzdial
gives for this assertion is a pithy quote from Linus Torvalds. If
Guzdial actually listened
to interviews
that Torvalds has given
, Guzdial would hear that Torvalds cares
about a lot more than just code, and spends most of his time in
natural language discussions with developers. The Linux community
doesn’t just require code; it requires code plus a well-argued
position of why the code is right for the users.

Guzdial’s primary point here, though, is that FLOSS ignores usability.
Using Torvalds and the Linux community as the example here makes little
sense, since “usability” of a kernel is about APIs for
fellow programmers. Linus’ kernel is the pinnacle of usability measured
against the userbase who interacts with it directly. If a kernel is
something non-technical users are aware of “using”, then
it’s probably not a very usable kernel.

But Guzdial’s comment isn’t really about the kernel; instead, he subtly
insults the GNOME community (and other GUI-oriented FLOSS projects).
Usability work is quite expensive, but nevertheless the GNOME community
(and others) desperately want it done and try constantly to fund it. In
fact, very recently, there has
been great
worry in the GNOME community
that Oracle’s purchase of Sun means
that various usability-related projects are losing funding. I encourage
Guzdial to get in touch with projects like the GNOME accessibility and
usability projects before he assumes that one offhand quote from Linus
defines the entire FLOSS community’s position on end-user usability.

As a final anecdote, I will briefly tell the story of my year teaching
high school. I was actively recruited (again, yet another a job I got
because of my involvement in FLOSS!)
to teach a high
school AP Computer Science class
while I was still in graduate
school in Cincinnati. The
students built
the computer lab themselves from scratch
, which one student still
claims
is one
of his proudest accomplishments
. I had planned to teach only
‘A’ topics, but the students were so excited to learn, we
ended up doing the whole ‘AB’ course. All but two of the
approximately twenty students took the AP exam. All who took it at
least passed, while most excelled. Many of them now have fruitful
careers in computing and other sciences.

I realize this is one class of students in one high school. But that’s
somewhat the point here. The excitement and the “do it
yourself” inspiration of the FLOSS world pushed a random group of
high school students into action to build their own lab and get the
administration to recruit a teacher for them. I got the job as their
teacher precisely because of my involvement in FLOSS. There is no
reason to believe this success story of FLOSS in education is an
aberration. More likely, Guzdial is making oversimplifications about
something he hasn’t bothered to examine fully.

Finally, I should note that Guzdial
used Michael
Terry
‘s work as a jumping off point for his comments. I’ve met,
seen talks by, and exchanged email with Terry and his graduate students.
I admit that I haven’t read Terry’s most recent papers, but I have read
some of the older ones and am familiar generally with his work. I was
thus not surprised to find
that Terry
clarified that his position differs from Guzdial’s
, in particular
noting that we found that open source developers most
certainly do care about the usability of their
software
, but that those developers make an error by focusing too
much on a small subset of their userbase (i.e., the loudest). I can
certainly verify that fact from the anecdotal side. Generally speaking,
I know that Terry is very concerned about FLOSS usability, and I think
that our community should work with him to see what we can learn from
his research. I have never known Terry to be dismissive of the
incredible value of FLOSS and its potential for improvement,
particularly in the area of usability. Terry’s goal, it seems to me, is
to convince and assist FLOSS developers to improve the usability of our
software, and that’s certainly a constructive goal I do support.

(BTW, I mostly used last names through out this post because Mark,
Michael, and Greg are relatively common names and I can think of a dozen
FLOSS celebrities who have one of those first names. 🙂


0Technically,
I was “paid” in that I was given my own office in
the department because I was willing to do the sysadmin duties.
It was nice to be the only undergraduate on campus (outside of
student government) with my own office.