<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE rdf:RDF [
<!ENTITY % HTMLlat1 PUBLIC
 "-//W3C//ENTITIES Latin 1 for XHTML//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent">
 %HTMLlat1;
]>
<rdf:RDF
 xmlns="http://purl.org/rss/1.0/"
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:dc="http://purl.org/dc/elements/1.1/"
 xmlns:content="http://purl.org/rss/1.0/modules/content/"
 xmlns:admin="http://webns.net/mvcb/"
>
<channel rdf:about="http://www.cs.uni.edu/~wallingf/blog/index.xml">
<title>Knowing and Doing</title>
<link>http://www.cs.uni.edu/~wallingf/blog/index.html</link>
<description>Reflections of an Academic and Computer Scientist</description>
<dc:language>en-us</dc:language>
<dc:creator>Eugene Wallingford</dc:creator>
<admin:generatorAgent rdf:resource="http://home.columbus.rr.com/n1xt3r/nanoblogger/" />
<items>
<rdf:Seq>
<rdf:li rdf:resource="http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2008-05.html#e2008-05-16T14_55_04.htm" />
<rdf:li rdf:resource="http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2008-05.html#e2008-05-15T16_30_24.htm" />
<rdf:li rdf:resource="http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2008-05.html#e2008-05-15T09_15_56.htm" />
<rdf:li rdf:resource="http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2008-05.html#e2008-05-13T09_15_07.htm" />
<rdf:li rdf:resource="http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2008-05.html#e2008-05-12T12_24_08.htm" />
<rdf:li rdf:resource="http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2008-05.html#e2008-05-09T16_50_02.htm" />
<rdf:li rdf:resource="http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2008-05.html#e2008-05-09T08_03_49.htm" />
<rdf:li rdf:resource="http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2008-05.html#e2008-05-08T18_42_57.htm" />
<rdf:li rdf:resource="http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2008-05.html#e2008-05-07T15_20_52.htm" />
<rdf:li rdf:resource="http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2008-05.html#e2008-05-06T16_40_17.htm" />
</rdf:Seq>
</items>
</channel>
<item rdf:about="http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2008-05.html#e2008-05-16T14_55_04.htm">
<link>http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2008-05.html#e2008-05-16T14_55_04.htm</link>
<title>The Seductiveness of Job Security</title>
<dc:date>2008-05-16T14:55:04-05:00</dc:date>
<dc:creator>Eugene Wallingford</dc:creator>
<dc:subject>General, Personal</dc:subject>
<description><![CDATA[<p>A former student recently mentioned a tough choice he
faces.  He has a great job at a Big Company here in the
Midwest.  The company loves him and wants him to stay
for the long term.  He likes the job, the company, and
the community in which he lives.  But this isn't the
sort of job he originally had hoped for upon graduation.
</p><p>
Now a position of just the sort he was originally looking
for is available to him in a sunny paradise.  He says,
"I have quite a decision to make....  it's hard to
convince myself to leave the secure confines of [Big
Company].  Now I see why their turnover rate is so low."
</p><p>
I had a hard time offering any advice.  When I was growing
up, my dad work for Ford Motor Company in an assembly plant,
and he faced insecurity about the continuance of his job
several times.  I don't know how much this experience
affected my outlook on jobs, but in any case my personality
is one that tends to value security over big risk/big gain
opportunities.
</p><p>
Now I hold a job with greater job security than anyone
who works for a big corporation.  An older colleague is
fond of saying
<A HREF="http://en.wikipedia.org/wiki/Real_Men_Don't_Eat_Quiche">
   Real men don't accept tenure.</A>
I first heard him say that when I was in grad school,
and I remember not getting it at all.  What's not to
like about tenure?
</p><p>
After a decade with tenure, I understand better now what
he means.  I always thought that the security provided by
having tenure would promote taking risks, even if only
of the intellectual sort.  But too much security is just
as likely to stunt growth and inhibit taking risks.  I
sometimes have to make a conscious effort to push myself
out of my comfort zone.  Intellectually, I feel free to
try new things, but pushing myself out of a comfortable
nest here into a new wnvironment -- well, that's another
matter.  What are the opportunity costs in that?
</p><p>
I love what Paul Graham says about young CS students and
grads having the ability to take entrepreneurial risk,
and how taking those risks may well be the safer choice
in the long run.  It's kind of like investing in stocks
instead of bonds, I think.  I encourage all of my students
to give entrepreneurship a thought, and I encourage even
more the ones whom I think have a significant chance to
do something big.  There is probably a bit of wistfulness
in my encouragement, not having done that myself, but I
don't think I'm simply projecting my own feelings.  I
really do believe that taking some employment risk,
especially while young, is good for many CS grads.
</p><p>
But when faced with a concrete case -- a particular
student having to make a particular decision -- I don't
feel quite so cocksure in saying "go for it with abandon".
This is not abstract theory; his job and home and fiancee
are all in play.  He will have to make this decision on
his own, and I'd hate to push him toward something that
isn't right for him from my cushy, secure seat in the
tower.  I feel a need to stay abstract in my advice and
leave him to sort things out.  Fortunately, he is a bright,
level-headed guy, and I'm sure he'll do fine whichever way
he chooses.  I wish him luck.</p>]]></description>
</item>
<item rdf:about="http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2008-05.html#e2008-05-15T16_30_24.htm">
<link>http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2008-05.html#e2008-05-15T16_30_24.htm</link>
<title>Being Part of a Group</title>
<dc:date>2008-05-15T16:30:24-05:00</dc:date>
<dc:creator>Eugene Wallingford</dc:creator>
<dc:subject>General</dc:subject>
<description><![CDATA[<p>Surround yourself with smart, competent people, and
you will find
<A HREF="http://www.newyorker.com/reporting/2008/05/12/080512fa_fact_gladwell">
   ideas in the air</A>.
One of the compelling thoughts in that article is this:
</p><p>
<BLOCKQUOTE><EM>
A scientific genius is not a person who does what no one
else can do; he or she is someone who does what it takes
many others to do.
</EM></BLOCKQUOTE>
</p><p>
For those of us who are not geniuses, the lesson is
that we can still accomplish great things -- if we take
part in the right sort of collaboration and be curious,
inquisitive, and open to big ideas.  I think this applies
not only to inventions but also to ideas for
<A HREF="http://www.paulgraham.com/mit.html">
   start-ups</A>
and insight to class projects.
</p><p>
(So
<A HREF="http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2008-05.html#e2008-05-15T09_15_56.htm">
   go to class</A>.
You'll find people there.)
</p><p>
But being in a group is not a path to easy accomplishment,
as people who have tried to
<A HREF="http://mybiasedcoin.blogspot.com/2008/04/book-management.html">
   write a book in a group</A>
know:
</p><p>
<BLOCKQUOTE><EM>
Talking about a "group-book" is a lot of fun.  Actually
putting one together, maybe less fun.
</EM></BLOCKQUOTE>
</p><p>
The ongoing ChiliPLoP working group of which I am a member
is another datapoint for Mitzenmacher's claim.  Doing more
than brainstorming ideas in a groups takes all the same
effort, coordination, and individual and collective
responsibility as any other sort of work.
</p><p>
(As an aside, I love Stigler's Law as quoted in the Gladwell
article linked above!  Self-reference can be a joy, especially
with the twist engendered by this one.)</p>]]></description>
</item>
<item rdf:about="http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2008-05.html#e2008-05-15T09_15_56.htm">
<link>http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2008-05.html#e2008-05-15T09_15_56.htm</link>
<title>Being There</title>
<dc:date>2008-05-15T09:15:56-05:00</dc:date>
<dc:creator>Eugene Wallingford</dc:creator>
<dc:subject>Teaching and Learning</dc:subject>
<description><![CDATA[<p><A HREF="http://www.filmsite.org/bein.html">
   <IMG SRC="http://www.cs.uni.edu/~wallingf/blog-images/misc/being-there.jpg"
        ALT="the film Being There"
        ALIGN="right">
   </A>
</p><p>
I sometimes talk about lecture (say,
<A HREF="http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2008-05.html#e2008-05-09T08_03_49.htm">
   here</A>)
as not being the optimal way for students to learn.
That doesn't mean that I don't think it lecture has
value at all.  I still lecture, though I prefer to
punctuate my disquisition with occasional problem
breaks, during which students try out some idea.
Without those breaks, the active learning they afford,
and the feedback they can give students about where
they stand, I sometimes wonder how much value being
in class with me for seventy-five minutes has.
</p><p>
It turns out that there is probably value even in
"just listening".  Mark Guzdial
<A HREF="http://www.amazon.com/gp/blog/post/PLNK31YNU3IGFJYYA">
   recently described</A>
work by a psychology grad student that explains the
relationship between learning and reading text,
hearing narration, and viewing images.  Most people
learn more efficiently when they hear an explanation
while looking at text, code, or diagrams.  If they
read the same explanation while looking at the text,
code, or diagrams, it will take them longer to learn
the material to the same depth.
</p><p>
So, coming to class and hearing a good lecture can be
a good investment of time.  It jump-starts the brain.
Of course, the student still needs to read and work
through problems at home later, too.  Reading and
solving problems give the mind an opportunity to
rehearse and to process material more deeply.  The
result of listening to lecture followed by intense
study can be a powerful form of learning.
</p><p>
I encourage students to take advantage of all their
modalities.  Augmenting lecture with opportunities
for practice and feedback gives them a strong
combination of learning styles in class.  Then, as
often as I can, I provide students with written notes
that contain both my explanations and the in-class
exercises we did.  This allows them to recall their
in-class experience as much as possible.  On the
occasion when students really must miss class, they
can get a flavor of what happened in class, but
reading the notes is a poor substitute for experiencing
the class live.  Then, I assign readings from a text
or other sources that supplements the material with
cover in class with a different presentation.  Finally,
I ask students to do a significant amount of project
work, which gives them the chance to learn how to
do while exercising the knowledge of the material in
ways that make connections in their minds.  I hope
that this multi-faceted approach maximizes student
opportunities to learn deeply and come to appreciate
what they learn.</p>]]></description>
</item>
<item rdf:about="http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2008-05.html#e2008-05-13T09_15_07.htm">
<link>http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2008-05.html#e2008-05-13T09_15_07.htm</link>
<title>Solid and Relevant</title>
<dc:date>2008-05-13T09:15:07-05:00</dc:date>
<dc:creator>Eugene Wallingford</dc:creator>
<dc:subject>Computing, Teaching and Learning, General</dc:subject>
<description><![CDATA[<p></p><p>
I notice a common rhetorical device in many academic arguments.
It goes like this.  One person makes a claim and offers some
evidence.  Often, the claim involves doing something new or
seeing something in a new way.  The next person rebuts the
argument with a claim that the old way of doing or seeing
things is more "fundamental" -- it is the foundation on which
other ways of doing and seeing are built.  Oftentimes, the
rebuttal comes with no particular supporting evidence, with
the claimant relying on many in the discussion to accept
the claim <EM>prima facie</EM>.  We might call this The
Fundamental Imperative.
</p><p>
This device is standard issue in the CS curriculum discussions
about object-oriented programming and structured programming
in first-year courses.  I recently noticed its use on the
SIGCSE mailing list, in a discussion of what mathematics
courses should be required as part of a CS major.  After
several folks observed that calculus was being de-emphasized
in some CS majors, in favor of more discrete mathematics,
one frequent poster declared:
</p><p>
<BLOCKQUOTE><EM>
(In a word, computer science is no longer to be considered
a hard science.)
</p><p>
If we know [the applicants'] school well we may decide to
treat them as having solid and relevant math backgrounds,
but we will no longer automatically make that assumption.
</EM></BLOCKQUOTE>
</p><p>
Often, the conversation ends there; folks don't want to
argue against what is accepted as basic, fundamental, good,
and true.  But someone in this thread had the courage to
call out the emperor:
</p><p>
<BLOCKQUOTE><EM>
If you want good physicists, then hire people who have
calculus.  If you want good computer scientists, then hire
people who have discrete structures, theory of computation,
and program verification.
</p><p>
I don't believe that people who are doing computer science
are not doing "hard science" just because it is not physics.
The world is bigger than that.
</p><p>
...
</p><p>
You say "solid and relevant" when you really should be
saying "relevant".  The math that CS majors take is solid.
It may not be immediately relevant to problems [at your
company].  That doesn't mean it is not "solid" or "hard
science".
</EM></BLOCKQUOTE>
</p><p>
I sent this poster a private "thank you".  For some
reason, people who drop the The Fundamental Imperative
into an argument seem to think that it is true absolutely,
regardless of context.  Sure, there may be students who
would benefit from learning to program using a "back to
the basics" approach, and there may be CS students for
whom calculus will be an essential skill in their
professional toolkits.  But that's probably not true of
all students, and it may well be that the world has changed
enough that most students would benefit from different
preparation.
</p><p>
"The Fundamental Imperative" is a nice formal name for
this technique, but I tend to think of it as "if it was
good enough for me...", because so often it comes down
to old fogies like me projecting our experience onto the
future.  Both parties in such discussions would do well
not to
<A HREF="http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2008-05.html#e2008-05-12T12_24_08.htm">
   fall victim to their own storytelling</A>.</p>]]></description>
</item>
<item rdf:about="http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2008-05.html#e2008-05-12T12_24_08.htm">
<link>http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2008-05.html#e2008-05-12T12_24_08.htm</link>
<title>Narrative Fallacy on My Mind</title>
<dc:date>2008-05-12T12:24:08-05:00</dc:date>
<dc:creator>Eugene Wallingford</dc:creator>
<dc:subject>Computing, Patterns, General</dc:subject>
<description><![CDATA[<p></p><p>
In his recent bestseller <EM>The Black Swan: The Impact
of the Highly Improbable</EM>, Nassim Nicholas Taleb uses
the term <STRONG>narrative fallacy</STRONG> to describe
man's penchant for creating a story after the fact, perhaps
subconsciously, in order to explain why something happened
-- to impute a cause for an event we did not expect.  This
fallacy derives from our habit of imposing patterns on data.
Many view this as a weakness, but I think it is a strength
as well.  It is good when we use it to communicate ideas
and to push us into backing up our stories with empirical
investigation.  It is bad when we let our stories become
unexamined truth and when we use the stories to take actions
that are not warranted or well-founded.
</p><p>
Of late, I've been thinking of the narrative fallacy in its
broadest sense, telling ourselves stories that justify what
we see or want to see.  My entry on a
<A HREF="http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2008-05.html#e2008-05-09T08_03_49.htm">
   response to the Onward! submission</A>
by my ChiliPLoP group was one trigger.  Those of us who
believe strongly that we could and perhaps should be doing
something different in computer science education construct
stories about what is wrong and what could be better; we're
like anyone else.  That one OOPSLA reviewer shed a critical
light on our story, questioning its foundation.  That is
good!  It forces us to re-examine our story, to consider
to what extent it is narrative fallacy and to what extent
it matches reality.  In the best case, we now know more
about how to tell the story better and what evidence might
be useful in persuading others.  In the worst, we may learn
that our story is a crock.  But that's a pretty good worst
case, because it gets us back on the path to truth, if
indeed we have fallen off.
</p><p>
A second trigger was finding a reference in
<A HREF="http://www.amazon.com/gp/blog/A3W4CUXPE1WFNF">
   Mark Guzdial's blog</A>
to a short piece on
<A HREF="http://blog.kenperlin.com/?p=97">
   universal programming literacy</A>
at Ken Perlin's blog.  "Universal programming literacy" is
Perlin's term for something I've discussed here occasionally
over the last year, the idea that all people might want or
need to write computer programs.  Perlin agrees but uses
this article to consider whether it's a good idea to pursue
the possibility that all children learn to program.  It's
wise to consider the soundness of your own ideas every once
in a while.  While Perlin may not be able to construct as
challenging a counterargument as our OOPSLA reviewer did,
he at least is able to begin exploring the truth of his
axioms and the soundness of his own arguments.  And the
beauty of blogging is that readers can comment, which opens
the door to other thinkers who might not be entirely
sympathetic to the arguments.  (I know...)
</p><p>
It is essential to expose our ideas to the light of scrutiny.
It is perhaps even more important to expose the stories we
construct subconsciously to explain the world around us,
because they are most prone to being self-serving or simply
convenient screens to protect our psyches.  Once we have
exposed the story, we must adopt a stance of skepticism and
really listen to what we hear.  This is the mindset of the
scientist, but it can be hard to take on when our cherished
beliefs are on the line.</p>]]></description>
</item>
<item rdf:about="http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2008-05.html#e2008-05-09T16_50_02.htm">
<link>http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2008-05.html#e2008-05-09T16_50_02.htm</link>
<title>Two Conversations</title>
<dc:date>2008-05-09T16:50:02-05:00</dc:date>
<dc:creator>Eugene Wallingford</dc:creator>
<dc:subject>Managing and Leading</dc:subject>
<description><![CDATA[<p>... with folks in university administration, colleagues whom I
respect and with whom I like to work.
</p><p>
[earlier]
</p><p>
<EM>Them</EM>:  These reports can't be combined.  Please make
separate ones.
</p><p>
<EM>Me</EM>:  They will be identical.
</p><p>
<EM>Them</EM>:  That's okay.
</p><p>
<EM>Me</EM>:  Fine.
</p><p>
[later]
</p><p>
<EM>Them</EM>:  These reports are identical.  That's a problem.
</p><p>
<EM>Me</EM>:  That's what you asked me to do.
</p><p>
<EM>Them</EM>:  They can't be identical.  Please make them
different.
</p><p>
<EM>Me</EM>:  But the committee in charge told us long ago to
combine the tasks, so we did.  Most of the resulting document
really is one item, so we have a common report.
</p><p>
<EM>Them</EM>:  But the reports can't be the same.  Please make
them different.
</p><p>
<EM>Me</EM>:  But they aren't different.
</p><p>
<EM>Them</EM>:  If they aren't different, the board will be
unhappy.
</p><p>
<EM>Me</EM>:  But if I make reports that differ artificially,
they'll see that, too.  And if they differ only a little, then
it will be hard to tell where they differ.
</p><p>
<EM>Them</EM>:  If they aren't different, the board will be
unhappy.  Please make them different.
</p><p>
<EM>Me</EM>:  But...
</p><p>
<EM>Them</EM>:  Please.
</p><p>
~~~~~
</p><p>
This is the sort of situation that makes me wonder (1) if the
board really understands how universities work and (2) what I
am doing in The Office.</p>]]></description>
</item>
<item rdf:about="http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2008-05.html#e2008-05-09T08_03_49.htm">
<link>http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2008-05.html#e2008-05-09T08_03_49.htm</link>
<title>Verdict Is In On One OOPSLA Submission</title>
<dc:date>2008-05-09T08:03:49-05:00</dc:date>
<dc:creator>Eugene Wallingford</dc:creator>
<dc:subject>Computing, Teaching and Learning, Software Development</dc:subject>
<description><![CDATA[<p>The verdict is in on the paper we
<A HREF="http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2008-03.html#e2008-03-19T00_40_23.htm">
   wrote at ChiliPLoP</A>
and submitted to
<A HREF="http://www.oopsla.org/oopsla2008/cfp/cfp-onward.html">
   Onward!</A>:
rejected.  (We are still waiting to hear back on our
<A HREF="http://www.oopsla.org/oopsla2008/cfp/cfp-edusym.html">
   Educators' Symposium</A>
submission.)  The reviews of our Onward! paper were mostly
on mark, both on surface features (e.g., our list of references
was weak) and on the deeper ideas we offer (e.g., questions
about the history of studio approaches, and questions about
how the costs will scale).  We knew that this submission was
risky; our time was simply too short to afford enough
iterations and legwork to produce a good enough paper for
Onward!.
</p><p>
I found it interesting that the most negative reviewer
recommended the paper for acceptance.  This reviewer was
clearly engaged by the idea of our paper and ended up writing
the most thorough, thoughtful review, challenging many of our
assumptions along the way.  I'd love to have the chance to
engage this person in conversation at the conference.  For
now, I'll have to settle for pointing out some of the more
colorful and interesting bits of the review.
</p><p>
In at least one regard, this reviewer holds the traditional
view about university education.  When it comes to the
"significant body of knowledge that is more or less standard
and that everyone in the field should acquire at some point
in time", "the current lecture plus problem sets approach is
a substantially more efficient and thorough way to do this."
</p><p>
Agreed.  But isn't it more efficient to give the students
a book to read?  A full prof or even a TA standing in a
big room is an expensive way to demonstrate standard
bodies of knowledge.  Lecture made more sense when books
and other written material were scarce and expensive.
Most evidence on learning is that lecture is actually much
less effective than we professors (and the students who do
well in lecture courses) tend to think.
</p><p>
The reviewer does offer one alternative to lecture:
"setting up a competition based on mastery of these skills".
Actually, this approach is consistent with the spirit of
our paper's studio-based, apprenticeship-based, and
project-based.  Small teams working to improve their skills
in order to win a competition could well inhabit the studio.
Our paper tended to overemphasize the softer collaboration
of an idyllic large-scale team.
</p><p>
This comment fascinated me:
</p><p>
<BLOCKQUOTE><EM>
Another issue is that this approach, in comparison with
standard approaches, emphasizes work over thinking.  In
comparison with doing, for example, graph theory or
computational complexity proofs, software development has
a much lower ratio of thought to work.  An undergraduate
education should maximize this ratio.
</EM></BLOCKQUOTE>
</p><p>
Because I write a blog called
<A HREF="http://www.cs.uni.edu/~wallingf/blog/">
   Knowing and Doing</A>,
you might imagine that I think highly of the interplay
between working and thinking.  The reviewer has a point:
an education centered on projects in a studio must be
certain to engage students with the deep theoretical
material of the discipline, because it is that material
which provides the foundation for everything we do and
which enables us to do and create new things.  I am
skeptical of the notion that an undergrad education
should maximize the ratio of thinking to doing, because
thinking unfettered by doing tends to drift off into an
ether of unreality.  However, I do agree that we must
try to achieve an appropriate balance between thinking
and doing, and that a project-based approach will tend
to list toward doing.
</p><p>
One comment by the reviewer reveals that he or she is
a researcher, not a practitioner:
</p><p>
<BLOCKQUOTE><EM>
In my undergraduate education I tried to avoid any course
that involved significant software development (once I
had obtained a basic mastery of programming).  I believe
this is generally appropriate for undergraduates.
</EM></BLOCKQUOTE>
</p><p>
Imagine the product of an English department saying, "In
my undergraduate education I tried to avoid any course
that involved significant composition (once I had obtained
a basic mastery of grammar and syntax).  I believe this
is generally appropriate for undergraduates."  I doubt
this person would make much of a writer.  He or she might
be well prepared, though, to teach lit-crit theory at a
university.
</p><p>
Most of my students go into industry, and I encourage them
to take as many courses as they can in which they will
build serious pieces of software with intellectual content.
The mixture of thinking and doing stretches them and keeps
them honest.
</p><p>
An education system that produces both practitioners and
theoreticians must walk a strange line.  One of the goals
of our paper was to argue that a studio approach could do
a <STRONG>better</STRONG> job of producing both researchers
and practitioners than our current system, which often
seems to do only a middling job by trying to cater to both
audiences.
</p><p>
I agree wholeheartedly, though, with this observation:
</p><p>
<BLOCKQUOTE><EM>
A great strength of the American system is that it keeps
people's options open until very late, maximizing the
ability of society to recognize and obtain the benefits
of placing able people in positions where they can be
maximally productive.  In my view this is worth the lack
of focus.
</EM></BLOCKQUOTE>
</p><p>
My colleagues and I need to sharpen <EM>our</EM> focus so
that we can communicate more effectively the notion that
a system based on apprenticeship and projects in a studio
can, in fact, help learners develop as researchers and as
practitioners better than a traditional classroom approach.
</p><p>
The reviewer's closing comment expresses rather starkly
the challenge we face in advocating a new approach to
undergraduate education:
</p><p>
<BLOCKQUOTE><EM>
In summary, the paper advocates a return to an archaic
system that was abandoned in the sciences for good
reason, namely the inefficiency and ineffectiveness of
the advocated system in transmitting the required basic
foundational information to people entering the field.
The write-up itself reflects naive assumptions about the
group and individual dynamics that are required to make
the approach succeed.  I would support some of the
proposed activities as part of an undergraduate education,
but not as the primary approach.
</EM></BLOCKQUOTE>
</p><p>
The fact that so many university educators and graduates
believe our current system exists in its current form
because it is more efficient and effective than the
alternatives -- and that it was designed intentionally
for these reasons -- is a substantial cultural obstacle
to any reform.  Such is the challenge.  We owe this
reviewer our gratitude for laying out the issues so well.
</p><p>
In closing, I can't resist quoting one last passage from
this review, for my friends in the other sciences:
</p><p>
<BLOCKQUOTE><EM>
The problem with putting students with no mastery of the
basics into an apprenticeship position is that, at least
in computer science, they are largely useless.  (This is
less true in sciences such as biology and chemistry, which
involve shallower ideas and more menial activities.  But
even in these sciences, it is more efficient to teach
students the basics outside of an apprenticeship situation.)
</EM></BLOCKQUOTE>
</p><p>
The serious truth behind this comment is the one that
explains why building an effective computer science
research program around undergraduates can be so difficult.
The jocular truth behind it is that, well, CS is just plain
deeper and harder!  (I'll duck now.)</p>]]></description>
</item>
<item rdf:about="http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2008-05.html#e2008-05-08T18_42_57.htm">
<link>http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2008-05.html#e2008-05-08T18_42_57.htm</link>
<title>Old Teaching Wisdom</title>
<dc:date>2008-05-08T18:42:57-05:00</dc:date>
<dc:creator>Eugene Wallingford</dc:creator>
<dc:subject>Teaching and Learning</dc:subject>
<description><![CDATA[<p>Not from me, but from
<A HREF="http://books.google.com/books?id=Dy8VAAAAIAAJ">
   The Common School Journal</A>,
an early-1800s primer on teaching:
</p><p>
<BLOCKQUOTE><EM>
Make no effort to simplify language.
</EM></BLOCKQUOTE>
</p><p>
Also:  Treat all students as equals, with expectation that
all participate and learn.  Teach where each student lacks.
</p><p>
I think I have a more detailed essay on this topic in me,
in terms of how we teach programming and software development.
But it will have to wait for another day.  In any case, my
agedness seems to be growing asymptotically faster than my
wisdom.</p>]]></description>
</item>
<item rdf:about="http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2008-05.html#e2008-05-07T15_20_52.htm">
<link>http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2008-05.html#e2008-05-07T15_20_52.htm</link>
<title>Patterns as Descriptive Grammar</title>
<dc:date>2008-05-07T15:20:52-05:00</dc:date>
<dc:creator>Eugene Wallingford</dc:creator>
<dc:subject>Computing, Patterns, Software Development</dc:subject>
<description><![CDATA[<p>I've tried to explain the idea of software patterns in a lot
of different ways, to a lot of different kinds of people.
Reading James Tauber's
<A HREF="http://jtauber.com/blog/2008/04/30/grammar_rules/">
   Grammar Rules</A>
reminds me of one of my favorites: a pattern language is a
<EM>descriptive grammar</EM>.  Patterns describe how (good)
programmers "really speak" when they are working in the
trenches.
</p><p>
Talking about patterns as grammar creates the potential for
the sort of misunderstanding that Tauber discusses in his
entry.  Many people, including many linguists, think of
grammar rules as, well, rules.  I was taught to "follow the
rules" in school and came to think of the rules as beyond
human control.  Linguists know that the rules of grammar
are man-made, yet some still seem to view them as
prescriptive:
</p><p>
<BLOCKQUOTE><EM>
It is as if these people are viewing rules of grammar like
they would road rules--human inventions that one may disagree
with, but which are still, in some sense, what is "correct"...
</EM></BLOCKQUOTE>
</p><p>
Software patterns are rarely prescriptive in this sense.
They describe a construct that programmers use in a particular
context to balance the forces at play in the problem. Over
time, they have been found useful and so recur in similar
contexts.  But if a programmer decides not to use a pattern
in a situation where it seems to apply, the programmer isn't
"wrong" in any absolute sense.  But he'll have to resolve the
competing forces in some other way.
</p><p>
While the programmer isn't wrong, other programmers might
look at him (or, more accurately, his program) funny.  They
will probably ask "why did you do it that way?", hoping to
learn something knew, or at least confirm that the programmer
has done something oddly.
</p><p>
This is similar to how human grammar works.  If I say, "Me
wrote this blog", you would be justified in looking at me
funny.  You'd probably think that what I speaking incorrectly.
</p><p>
Tauber points out that, while I might be violating the
accepted rules of grammar, I'm not wrong in any absolute sense:
</p><p>
<BLOCKQUOTE><EM>
... most linguists focus on modeling the tacit intuitions
native speakers have about their language, which are very
often at odds with the "rules of grammar" learnt at school.
</EM></BLOCKQUOTE>
</p><p>
He gives a couple of examples of rules that we hear broken all
of the time.  For example, native speakers of English almost
always say "It's me", not "It's I", though that violates the
rules of nominative and accusative case.  Are we all wrong?
In Sr. Jeanne's 7th-grade English class, perhaps.  But English
grammar didn't fall from the heavens as incontrovertible rules;
it was created by humans as a description of accepted forms
of speech.
</p><p>
When a programmer chooses not to use a pattern, other programmers
are justified in taking a second look at the program and asking
"why?", but they can't really say he's guilty of anything more
than doing things differently.
</p><p>
Like grammar rules, some patterns are more "right" than others,
in the sense that it's less acceptable to break some than others.
I can get away with "It's me", even in more formal settings,
but I cannot get away with "Me wrote this blog", even in the
most informal settings.  An OO programmer might be able get
away with not using the Chain of Responsibility pattern in
a context where it applies, but not using Strategy or Composite
in appropriate contexts just makes him look uninformed, or
uneducated.
</p><p>
A few more thoughts:
</p><p>
So, patterns are not like a grammar for programming language,
which is prescriptive.  To speak Java at all, you have to
follow the rules.  They are like the grammar of a human
language, which model observations about how people speak
in the wild.
</p><p>
As a tool for teaching and learning, patterns are so useful
precisely because they give us a way to learn accepted usages
that go beyond the surface syntactic rules of a language.
Even better, the pattern form emphasizes documenting
<EM>when</EM> a construct works and <EM>why</EM>.  Patterns
are better than English grammar in this regard, at least
better than the way English grammar is typically taught
to us as schoolchildren.
</p><p>
There are certainly programmers, software engineers, and
programming language theorists who want to tell us how to
program, to define prescriptive rules.  There can be value
in this approach.  We can often learn something from a model
that has been designed based on theory and experience.  But
to me prescriptive models for programming are most useful
when we don't feel like we have to follow them to the
letter!  I want to be able to learn something new and then
figure out how I can use it to become a better programmer,
not a programmer of the model's kind.
</p><p>
But there is also a huge, untapped resource in writing the
descriptive grammar of how software is built in practice.
It is awfully useful to know what real people do -- smart,
creative people; programmers solving real problems under
real constraints.  We don't understand programming or
software development well enough yet not to seek out the
lessons learned by folks working in the trenches.
</p><p>
This brings to mind a colorful image, of software linguists
venturing into the thick rain forest of a programming
ecosystem, uncovering heretofore unexplored grammars and
cultures.  This may not seem as exotic as
<A HREF="http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2007-07.html#e2007-07-04T21_19_00.htm">
   studying the Pirah&atilde;</A>,
but we never know when some remote programming tribe might
upend our understanding of programming...</p>]]></description>
</item>
<item rdf:about="http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2008-05.html#e2008-05-06T16_40_17.htm">
<link>http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2008-05.html#e2008-05-06T16_40_17.htm</link>
<title>Optimizing Education</title>
<dc:date>2008-05-06T16:40:17-05:00</dc:date>
<dc:creator>Eugene Wallingford</dc:creator>
<dc:subject>Computing, Teaching and Learning</dc:subject>
<description><![CDATA[<p>Brian Marick
<A HREF="http://www.exampler.com/blog/2008/04/20/education/">
   lamented recently</A>
that his daughter's homework probably wasn't affecting her
future in the same way that some of his school experiences
affected his.  I've had that feeling, too, but sometimes
wonder whether (1) my memory is good enough to draw such
conclusions and (2) my daughters will remember key experiences
from their school days anyway.  After teaching for all these
years I am sometimes surprised by what former students
remember from their time in my courses, and how those
memories affect them.
</p><p>
Brian's mention of New Math elicited some interesting
comments.  Kevin Lawrence hit on a point that has been on
my mind in two contexts lately:
</p><p>
<BLOCKQUOTE><EM>
A big decision point in education is whether you are optimizing
for people who will go on to be very good at a subject or
for people who find it difficult.
</EM></BLOCKQUOTE>
</p><p>
In the context of university CS curricula, I often field
complaints from colleagues here and everywhere about how
the use of (graphics | games | anything post-1980 |
non-scientific applications) in CS courses is dumbing down
of our curriculum.  These folks claim that we are spending
too much time catering to folks who won't succeed in the
discipline, or at least excel, and that at the same time we
drive away the folks who would be good at CS but dislike
the "softness" of the new approach.
</p><p>
In the context of reaching out to pre-university students,
to show folks cool and glitzy things that they might do in
computer science, I sometimes hear the same sort of thing.
Be careful, folks say, not to popularize the science too
much.  We might mislead students into thinking that CS is
not serious, or that it <EM>is</EM> easy.
</p><p>
I fully agree that we don't want to mislead middle schoolers
or CS majors about the content or rigor of our discipline,
or to give the impression that we cannot do serious and
important work.  But physics students and math geeks are
not the only folks who can or should use computing.  They
are most definitely not the only folks who can make vital
contributions to the discipline.  (We can even learn from
people who
<A HREF="http://www.exampler.com/blog/2008/03/14/drive-out-waste/">
   quote "King Lear"</A>.)
</p><p>
By <STRONG>not</STRONG> reaching out to students with
different views and interests, we do computer science a
disservice.  Once they are attracted to the discipline and
excited to learn, we can teach them all about rigor and
science and math.  Some of those folks won't succeed in CS,
but then again neither do some of the folks who come in with
the more traditional "geeky" interests.
</p><p>
If this topic interests you, follow the trail from Brian's
blog to two blog entries by Kevin Lawrence, one
<A HREF="http://www.raggedclown.com/2007/06/16/like-maths/">
   old</A>
and one
<A HREF="http://www.raggedclown.com/2008/04/24/for-whom/">
   new</A>.
Both are worth a read.  (I always knew there was a really
good reason to enable comments on my blog -- Alan Kay might
drop by!)</p>]]></description>
</item>
</rdf:RDF>
