Re: "Sorting" assignment
- From: spinoza1111 <spinoza1111@xxxxxxxxx>
- Date: Fri, 8 Feb 2008 10:33:09 -0800 (PST)
On Feb 8, 10:25 pm, Julienne Walker <happyfro...@xxxxxxxxxxx> wrote:
On Feb 7, 11:54 pm,spinoza1111<spinoza1...@xxxxxxxxx> wrote:
On Feb 7, 10:40 pm, Julienne Walker <happyfro...@xxxxxxxxxxx> wrote:
On Feb 6, 10:52 pm,spinoza1111<spinoza1...@xxxxxxxxx> wrote:
On Feb 6, 12:20 am, Julienne Walker <happyfro...@xxxxxxxxxxx> wrote:
On Feb 5, 10:56 am,spinoza1111<spinoza1...@xxxxxxxxx> wrote:
example, you can use bubble sort as a simple implementation for adding
step-based execution and performance analysis. It's a simple algorithm
for introducing asymptotic notation and time complexity. It's also an
immediately useful exercise that covers non-trivial loop and array
logic, modularization, and comparison based sorting. I'd hardly call
that "nothing of value".
Nothing of beauty.
The reality of programming is that it's not always elegant or
beautiful. If you only learn the beautiful side of programming, you
won't be very useful in the real world.
...and we must, mustn't we, be useful in the real world.
I'm a practical person. Thought experiments typically don't interest
me unless I can see a practical use for them. As such, I see
programming as a means to an end, where the end is a useful piece of
software.
But the "end" is another "means". If the end doesn't justify the
means, and it doesn't, how could the means justify the means, unless
we are chasing our tails?
I mean something precise, and something my Mom noticed before her
untimely death. She noticed that I was engaged in all sorts of tasks
in raising my kids and holding down a job but some, most or all of
those tasks had to be performed by my wife and myself only because
their very manner of performance was constrained so strictly by our
own expectations, and "practical, time-saving" things such as email
simply made things more time-consuming in the large.
Consider the TV remote. When we were kids, we didn't need one. My Dad
would instruct one of us to select a channel after consulting TV Guide
and finding something suitable (such as the BBC series An Age of
Kings, the complete cycle of Shakespeare's history plays aired in
Chicago in 1962). One kid would turn the channel. End of story.
Today, how many of us spend inordinate amounts of time searching for
the "time-saving" remote under the couch, in the kitchen, in the
toilet, where have you?
The problem is that to be "practical" means today to treat all tasks
outside of church and leisure as means to ends and to be always
willing to justify compromises in mere workmanship by saying that one
is "practical", as if one could be anything but: the "overly
theoretical" person doesn't exist except as a caricature because he's
merely marching to a different drummer, seeking his own goals (one of
which might be the aesthetic satisfaction, perhaps tantamount to
ethical, of mere integrity) with his own practical devices and
petards.
The petards of the "impractical" person are seen from the outside as
"impractical". Before he's hoist with his own petard, this is a mere
prediction: afterward, it is merely gloating and *schadenfreude*. If
they work, people either throw money at him, or else ignore him in an
embarassed silence.
In data processing, I'm a practical person, too. And I have endured
one too many perverted vigils in front of a computer screen in which
the developers used "practicality" to sacrifice minimal "workability"
resulting in a "suckability" beyond the moon.
That's one reason why I regularly use C, C++, Java, C#, and
Perl (for example) instead of "beautiful" languages that are certainly
more elegant, but I don't feel are as useful for the tasks I need to
complete.
In a short pamphlet, "On the Old Saw: 'That is all very well in theory
but won't work in practice'", Kant replied to certain of his critics
of his ideas for European peace, ideas which Kant (with a practicality
inclusive of mere compassion) derived from the sight of, and reports
about, the carnage of the Seven Years' War and which are part of
European Union polity today.
His critics had said, "Herr Doktor Professor Kant, your ideas are
certainly very beautiful. But it is because of this beauty that we
reject them, and also because we are 'practical' men who are
unconvinced of the wisdom of changing our current practice to run
after a theory which to our knowledge and to this day has not been
applied by the Machiavellian statesmen of our day, who seem to hew to
a far more cynical and overall less theory driven scheme. Their
results, even for so skilled a general and incisive a statesman as
your very own Frederick the Great, often come a cropper as witness
Frederick's many defeats and the misery which he visited upon his
people."
"They are great ones: we, mere Burghers, and you, a mere privat-
dozent. It is certainly pretentious of you to wish to outthink
Frederick II, Franz Josef, or George III. They have come their
croppers, this is true, George at Saratoga last week. But they are
practical men whose practicality is constituted in their narrow-minded
petty ignorance that they share with us and which we recognize."
"These princes and their practice must be preferred for they work more
or less, and we all got through the winter after the war, losing only
little Kaspar, poor little perisher that he was."
Kant's riposte was that the "practical" man is often the most highly
theoretic in the shop. In the case of 18th century politics, Frederick
based his betrayal of his promises to the rather pious and fat Maria
Theresa down in Austria, and put the boot into Silesa after telling
her he would not, on a well-developed theory of *jus sovereignis*
developed in fact by Grotius and which remained part of the THEORY of
international law until taken to its logical, and genocidal,
conclusion by Adolf Hitler. Kant had the last laugh, because the
practical statescraft of the 18th century, in insisting that the
sovereign was above the law, fathered the Fuhrer-prinzip.
And even if that theory had not been written down, it still would have
been a theory. For Kant, people are precisely theorising engines who
for example form a theory about getting out of the sack in the
morning: I certainly do, because it's colder than *** here in Hong
Kong and I need a whole hour listening to BBC World Service and
theorizing about how to power up the hot water heater before emerging
from bed.
News, in other words, fa, to be precise, lash. C is a theory too. Just
because it's full of nonsense justified at the time by micro-appeals
to time gods doesn't make it any less of a theory, it just makes it a
bad theory as to how to program computers.
I'd say that the students have the right to start
with something of reasonable elegance and beauty which derives that
elegance and beauty from the fact that we developed this algorithm
before computers. The insertion sort can be illustrated and is
illustrated by Cormen using a poker hand.
I'd say that the students have the right to start with whatever is
easiest for them to understand. That way they can progressively learn
Why? Why not start with the hard stuff, get it over with?
That's certainly a valid option, but it's that kind of system that
breeds the elitist view of "let's weed out the losers right away"
Nobody's trying to weed anybody out. Did I say that? No, I said that
our task is to beat in the hard stuff first by getting in the
student's face. This can be done in the style of a USMC drill
instructor, or it can be done more gently, but it's gotta be done
sometime.
Indeed, the preference in data systems development for some horse***
first cut at a solution which then becomes the only solution worth
talking about may RESULT from the preference in the education system
in recent years for special entry level nonsense which simply conceals
and does not eliminate difficulty, such as see and say reading rather
than phonics.
rather than "let's encourage everyone to excel". Both have their
...but if you downsize content, teaching the bubble sort and ignoring
Cormen's Algorithms, nobunny "excels".
If to excel means to stand out and be a sort of *stupor mundi* then
it's ridiculous to "encourage everybody to excel". In fact, the very
culture of "everybody should be encouraged to excel" generates its own
shadow in which the teacher, after encouraging everybody to excel,
winks at the students she's selected as the real comers and smirks at
the born losers, usually kids marked as such by race and class.
Dijkstra as a teacher had no truck whatsoever with "encouraging
everybody to excel", but neither did he set himself to eliminating the
losers. His goal was to create a relationship between the student and
applied mathematics in which the student could reflect on symbolic
systems and means of expression, and formulate problems in such a way
that the first step towards their solution would emerge along with
ideas for getting from subsequent steps to the steps after these
(learning as mathematical induction).
Dijkstra didn't care who got to this point, any more than after 1948,
the United States Marines cared about your race or social origin.
From the outside, Marine training looks pretty darn exclusive and just
plain mean. The paradox is that it represents one last chance to so
many poor and minority kids because the expectations are so cruelly
precise. It's been influenced by the culture of "everyone wins",
especially at the finish of boot camp, but basically the recruit knows
he's accomplished something.
Likewise, in programming, the programmer needs to understand something
beyond "d'oh, it seems to work".
advantages and disadvantages, and clearly you and I have a different
opinion of how to teach.
the gamut of algorithms and build on existing knowledge. Once more
I'll offer myself as an example. I didn't understand the "poker hand"
explanation of insertion sort at first. I had a much easier time of
things once I had a couple of sorting algorithms under my belt.
It doesn't matter how elegant an algorithm is if the student can't
wrap her mind around it.
Who is "the student" here? The solecism is similar to the solecism
noticed by Dijkstra in a text in Dutch in which the English word for
the "user" was untranslated because to the translator, who knew more
English grammar, apparently, than many English speakers, a noun phrase
that starts with a definite article needs to have a preintroduced
referent.
You don't tell children a story by saying the monster came out of the
closet. You introduce the monster using the indefinite article and
appropriate adjectives.
Likewise, Dijsktra didn't know what SORT of user was being spoken of.
Here, all I know is that the student is female (hint: there is no
solution to the absence of a non-neuter pronoun in English that means
male or female person, but in your passage you could replace "her"
with "the student's").
I for one am sick to death of being treated as an abstraction by
edumocationistical theoretical types who reason in terms of signifiers
with no referent.
Sorry, but that was a wasted rant. I feel like you didn't bother to
comprehend my words, as I clearly said "I'll offer myself as an
example." The "her" being me, as I was the example and the topic of
the sentence you quoted was the example.
But you eventually understood it. I'm not saying the student shouldn't
experiment in her own way. When I studied CS, we were limited to only
one test a day on a mainframe, nonetheless I more or less camped out
at the data center because it was only through experimentation that I
was going to understand.
However, you are making the mistake of Kant's interlocutors when you
try to make my *bricolage*, my improvisations, a new model
edumocational theory in which the students shall try, All Together
Now, to write some bonehead program. Individual bone headed detours
and frolics should be permitted and encouraged. But the written
ciricculum (there must be a reason I'm blocked on spelling such a
reifying word) should respect the individual learner by presenting,
not the textbook author's OWN detours and frolics but the formal
expectations of computer science as an international discipline.
Missing in many "feminist" theories of CS education is precisely the
tension or dialectic between utter randomness and utter precision.
What I mean is something we have lost. Guy in the 1970s wrote a whole
book on Fortran for Cambridge University Press. He did so by carefully
HAND-PRINTING the book, neatly and readably.
What was interesting about this was that there was absolutely no
reason at all for him to do this. The typesetter had all the symbols
he needed. No, he chose to do so as merely a personal choice and this
made all the difference: one was amused and entranced in fact by the
fact that the guy knew Fortran and had a visual "voice".
One size fits all edumocational theories, on the other hand,
especially New Era and New Age theories, destroy the teacher's voice.
Dijkstra was a good teacher but was re-presented in an ACM series in
1992 as a bad teacher who wanted to arrogantly select only white males
for success because Dijkstra insisted that mathematical thought starts
in the mind, and his mind in particular with respect to his thoughts.
This was "arrogant" because the Platonism of the corporation is that
we cannot have a thought that has not been thunk before, or is
worthless.
Keep in mind that those learning bubble sort are likely to be very new
to programming, so while implementing the algorithm won't teach *you*
anything, it's very instructive to a less experienced programmer.
<snip> However, he did see
a contradiction between the tentative way in which people talk about
other people in sets and classes (such as "less experienced
programmer") in such a way that the rule governing the set replaces
thought.
I get the impression you're basically saying "exceptions exist".
That's nice, but exceptions are just that: exceptions. You're welcome
to show me a study or two that proves students learn nothing from
bubble sort, but until then I'll maintain that lessons can be learned
even from an "ugly" algorithm.
The "studies" are studies that established in the 1990s that a
striking plurality of employed programmers DO NOT CODE.
Yes, but studies of *what*? Your "proof" certainly isn't proof that
students learn nothing from bubble sort, and I'm somewhat curious why
you thought I would accept it as such.
Experimentation upon and studies of human beings are for the most part
nonsense on stilts, because unlike the objects of hard science people
know they're being fucked with, I mean "studied".
-Jul- Hide quoted text -
- Show quoted text -- Hide quoted text -
- Show quoted text -- Hide quoted text -
- Show quoted text -
.
- Follow-Ups:
- Re: "Sorting" assignment
- From: Julienne Walker
- Re: "Sorting" assignment
- References:
- "Sorting" assignment
- From: Ivica
- Re: "Sorting" assignment
- From: spinoza1111
- Re: "Sorting" assignment
- From: Bartc
- Re: "Sorting" assignment
- From: spinoza1111
- Re: "Sorting" assignment
- From: Bartc
- Re: "Sorting" assignment
- From: Malcolm McLean
- Re: "Sorting" assignment
- From: spinoza1111
- Re: "Sorting" assignment
- From: Julienne Walker
- Re: "Sorting" assignment
- From: spinoza1111
- Re: "Sorting" assignment
- From: Julienne Walker
- Re: "Sorting" assignment
- From: spinoza1111
- Re: "Sorting" assignment
- From: Julienne Walker
- "Sorting" assignment
- Prev by Date: Re: "Sorting" assignment
- Next by Date: Re: "Sorting" assignment
- Previous by thread: Re: "Sorting" assignment
- Next by thread: Re: "Sorting" assignment
- Index(es):