Re: Fwd(3): Lotto and Good Will Hunting

Duncan Chiu (
Sun, 19 Apr 1998 00:03:04 -0400


If the following interests you, please let me know. I am going to learn the Scheme language at Rice U. this June.

Lou and I met a couple from Chicago at NCTM in April. Lou may remember their names and schools. May get you connected.


Re: Fw: Java and C++ have little in common
Wed, 8 Apr 1998 23:19:09 -0500 (CDT)
Shriram Krishnamurthi <>
John Hanna <>
1 , 2

Duncan and John,

I posted a somewhat lengthy reply on the AP list. Unfortunately, the
moderator has sometimes censored our opinions. He also takes weeks to
approve messages, making any sort of interactive dialog impossible.
Therefore, I'll send my post in a separate message. But let me give
you a personal perspective on this.

You ask whether Scheme "floats boats". I deeply believe it does.
Some of the best students in our introductory course come from
departments like music, architecture and history. Often, they don't
just come, they stay and end up majoring in CS. We get numerous
students writing reviews that complain that their high school teachers
wasted their time on unimportant details, instead of giving them tools
that they could actually use, and knowledge that had actual
intellectual depth. As an example, I recently posted a challenge
problem to ap-compsci asking teachers to write the `differentiate'
procedure (from intro calculus). Maybe John forwarded that to you
too. Think about how you would solve that.

Scheme floats boats in two ways. First, it takes the choppiness out
of the water. You can cover FAR more material in a semester of
Scheme than in C++, and you can do it without ever mentioning pointers
or memory or addresses or .... There is in fact an intimate
relationship between these two points. Traditional languages cannot
be explained in a machine-independent way. Scheme, on the other had,
(a) is a natural extension of high school algebra, and (b) has only
about five rules that students need to learn to understand how
programs work. In short, students learn Scheme better because they
_already know how the "machine" works when they start to program_ --
the "machine" is just high school algebraic evaluation!

Second, when something goes wrong, it keeps your boat afloat. When
your program does something erroneous, (a) the computation halts
immediately, and (b) the system highlights exactly which expression
contained an error and what it was. In contrast, a C++ program can
contain an error but it will continue to compute. If you're _lucky_,
it'll core dump, but only after maybe a million instructions; you
spend the next six hours in your debugger figuring out what actually
went wrong. (The place of the actual core dump usually has _nothing_
to do with the error.) Or, it'll finish, but with a grossly wrong
answer. Worst of all, it will sometimes give you a vaguely
correct-looking answer. How do you know the answer is wrong?
(Answer: you don't. You stick your program in a radiation machine or
rocket, and they end up killing patients or falling out of the sky, as
recent examples have proven.)

I have compared programming in C++ to playing an especially violent
Nintendo . You're walking along the street, minding your own
business, hopefully trying to do something productive, and
***!!!WHAM!!!*** -- a seg fault slams into you sight unseen from a
side street, and you're on your butt in a debugger. Maybe you won't
recognize this if you've only programmed in traditional languages; if
so, hopefully you'll see this point this summer.

(People wonder why there aren't as many women as men in computer
science. I believe this Nintendo phenomenon is one of the reasons
why. There is no shortage of studies that show how most girls are
turned off by violent and pointless games. Our programming courses
aren't so different: we solve uninteresting problems (I recently saw a
Texas university teach variations on computing wages for the _entire
first semester_) in uninteresting ways (read in a number, implement
this formula, print out the answer) with uninteresting constructs
(numbers, vectors, more numbers, more vectors) using uninteresting
methods (introducing loops in the tenth week of a semester?!?).)

As my other message suggests, I think Cay's question is a rhetorical
gauntlet and not really a meaningful one. But to those who think
otherwise, I challenge them to point out how C++ (or even Pascal)
keeps boats afloat. Most of the above criticisms apply equally to
languages like Pascal.

I hope this helps. If not, feel free to call me on any point.



Sanderson Smith wrote:

> Matthew B. McCall,,Internet writes:
> >Doc,
> >Not a month goes by without my thinking about your gift for bringing the
> >joys and interests of math into everyday life. Often in playing with
> >Nicholas, I feel as if I could be doing so much more to bring his immediate
> >world al
> >ive. Your email is yet another example of the "Herkimerization"
> >of our modern world. Thanks for sending it out to me.
> >
> >On a side note, I have a basic question to ask you. Given what you know
> >about teaching math and computers, do you think there is any possible
> >strategy to address a) business's need for more computer programmers and
> >b) the inner city's high unemployment with kids in teens and twenties
> >by matching the two. Would inner city high tech centers of excellence
> >or training work in computers (C++ programming, problem solving, etc.)
> >starting even as early as junior high? Or are the basics required for
> >good programmers so lacking in many of these environments that it would
> >be a waste of money and effort? Just wondering (as usual...)
> >
> >Hope all is well...
> >
> >Matthew B. McCall
> >Graystone Venture Partners
> >One Northfield Plaza
> >Suite 530
> >Northfield, IL 60093
> >
> >847-446-9460
> >
> Hi Matt:
> I'm not really sure I have the best answers to what you are asking.
> However, I'm going to take the liberty of forwarding your note to
> This is a group approximately thirty fantastic, dedicated, and extremely intelligent mathematics teachers representing a
> variety of educational environments. Also receiving this note will be some wonderful folks associated with DIMACS (Rutgers
> University based). They may have some thoughts/suggestions/answers relating to your questions.
> To my DREI colleagues:
> Matthew McCall (I call him Matt) is a former student of mine. He's an amazing guy... highly intelligent ... and genuinely
> cares about people. He works in the Chicago area, he's very successful... and, as you can tell from his note, he really
> wants to help others. I know for a fact that Matt devotes time and his own personal resources to helping others. As I
> read the note Matt sent to me, I was initially disappointed since I didn't think I could give him much in the way of
> enlightenment. Then, I thought of DREI96... and realized that many of you might have some suggestions for Matt. One of
> the joys of teaching is keeping in touch with former students like Matt. I have special admiration for Matt since he "sees
> beyond himself." He feels an obligation to "serving ohers." Can you offer him some thoughts/comments/suggestions? (I
> never thought I would use DREI96 in this way, but Matt presented me with a wonderful opportunity to use this incredible
> resource.)