From: Jeff Rollin
Subject: Dumbing down?
Date: 
Message-ID: <nr-dnTF6OpWndsjbnZ2dnUVZ8szinZ2d@pipex.net>
A friend (who should know better than I) and myself both agree that an
understanding of maths is necessary to be able to program.

So why do so many introductory textbooks insist that it isn't?

Jeff

From: Christopher Koppler
Subject: Re: Dumbing down?
Date: 
Message-ID: <1180037061.366652.135190@h2g2000hsg.googlegroups.com>
On May 24, 9:44 pm, Jeff Rollin <··············@gmail.com> wrote:
> A friend (who should know better than I) and myself both agree that an
> understanding of maths is necessary to be able to program.
>
> So why do so many introductory textbooks insist that it isn't?

How deep an/what kind of understanding do you think is necessary?

I have a good understanding of numbers (not number theory!) and think
I am good at recognizing (many kinds of) patterns, but don't have any
formal maths training beyond high school level, yet consider myself a
competent programmer - at least competent enough to have taught
programming to beginners when I was freelance 10 years ago.

None of those beginners had any formal higher maths education, most
acknowledged having no real interest in or background involving maths.
As to what I could teach them about programming (using VB, alas), some
'got it' while others didn't really grasp essential concepts.
Intuitive mathematical ability may have played a role, but in this
case, social factors (those people were sent to the courses by the
Employment Agency and didn't all really *want* to learn programming)
may have been more important.

So, depending on the definition of 'understanding of maths' I'm not so
sure if such is strictly necessary to be able to program.
From: Pillsy
Subject: Re: Dumbing down?
Date: 
Message-ID: <1180043522.419957.244090@q75g2000hsh.googlegroups.com>
On May 24, 3:44 pm, Jeff Rollin <··············@gmail.com> wrote:
> A friend (who should know better than I) and myself both agree that an
> understanding of maths is necessary to be able to program.

> So why do so many introductory textbooks insist that it isn't?

I know a whole bunch of math and I'm a lousy programmer. That's one of
the main reasons I use Lisp, since it shields me from a lot that can
go wrong when a lousy programmer tries programming in C or Fortran.
OTOH, in college, I had quite a few friends who were good or excellent
programmers, and who were pretty bad at math.

I just don't think there's that much of a dependence. Being good at
math makes some sorts of reasoning you need to do when you program
easier, but other people seem to be able to tackle them in other ways.

Cheers,
Pillsy
From: Ken Tilton
Subject: Re: Dumbing down?
Date: 
Message-ID: <h9m5i.265$lB1.260@newsfe12.lga>
Jeff Rollin wrote:
> A friend (who should know better than I) and myself both agree that an
> understanding of maths is necessary to be able to program.
> 
> So why do so many introductory textbooks insist that it isn't?

Sorry, point of information: you and your friend agreeing on X has 
exactly what power over X's truth?

hth,kt

-- 
http://www.theoryyalgebra.com/

"Algebra is the metaphysics of arithmetic." - John Ray

"As long as algebra is taught in school,
there will be prayer in school." - Cokie Roberts

"Stand firm in your refusal to remain conscious during algebra."
    - Fran Lebowitz

"I'm an algebra liar. I figure two good lies make a positive."
    - Tim Allen
From: Jeff Rollin
Subject: Re: Dumbing down?
Date: 
Message-ID: <hLqdnRc84KWwjsvbnZ2dnUVZ8tPinZ2d@pipex.net>
In the last episode, on Thursday 24 May 2007 21:00, Ken Tilton wrote:

> 
> 
> Jeff Rollin wrote:
>> A friend (who should know better than I) and myself both agree that an
>> understanding of maths is necessary to be able to program.
>> 
>> So why do so many introductory textbooks insist that it isn't?
> 
> Sorry, point of information: you and your friend agreeing on X has
> exactly what power over X's truth?
> 
> hth,kt
> 

Heh. As I've already had to admit, that was a lousy metric to have started
out with.

A better question might be, "what are the arguments for and against a good
understanding of maths being necessary to programming?

Jeff.
From: Ken Tilton
Subject: Re: Dumbing down?
Date: 
Message-ID: <s2p5i.275$lB1.262@newsfe12.lga>
Jeff Rollin wrote:
> In the last episode, on Thursday 24 May 2007 21:00, Ken Tilton wrote:
> 
> 
>>
>>Jeff Rollin wrote:
>>
>>>A friend (who should know better than I) and myself both agree that an
>>>understanding of maths is necessary to be able to program.
>>>
>>>So why do so many introductory textbooks insist that it isn't?
>>
>>Sorry, point of information: you and your friend agreeing on X has
>>exactly what power over X's truth?
>>
>>hth,kt
>>
> 
> 
> Heh. As I've already had to admit, that was a lousy metric to have started
> out with.
> 
> A better question might be, "what are the arguments for and against a good
> understanding of maths being necessary to programming?

The better question definitely is: where the h*ll do you (and a friend 
who should know better than I) even /see/ maths in programming?!

Suppose I hack up a little finite state machine to help me come to grips 
with a hairy little bit of functionality (IPC over a mechanism where 
either party can be expected to go South at the most awkward of times). 
Is that math? Asking, not arguing.

kt

-- 
http://www.theoryyalgebra.com/

"Algebra is the metaphysics of arithmetic." - John Ray

"As long as algebra is taught in school,
there will be prayer in school." - Cokie Roberts

"Stand firm in your refusal to remain conscious during algebra."
    - Fran Lebowitz

"I'm an algebra liar. I figure two good lies make a positive."
    - Tim Allen
From: Jeff Rollin
Subject: Re: Dumbing down?
Date: 
Message-ID: <w8ydnc_Gx4Qxg8vbnZ2dnUVZ8sXinZ2d@pipex.net>
In the last episode, on Friday 25 May 2007 00:17, Ken Tilton wrote:

> 
> 
> Jeff Rollin wrote:
>> In the last episode, on Thursday 24 May 2007 21:00, Ken Tilton wrote:
>> 
>> 
>>>
>>>Jeff Rollin wrote:
>>>
>>>>A friend (who should know better than I) and myself both agree that an
>>>>understanding of maths is necessary to be able to program.
>>>>
>>>>So why do so many introductory textbooks insist that it isn't?
>>>
>>>Sorry, point of information: you and your friend agreeing on X has
>>>exactly what power over X's truth?
>>>
>>>hth,kt
>>>
>> 
>> 
>> Heh. As I've already had to admit, that was a lousy metric to have
>> started out with.
>> 
>> A better question might be, "what are the arguments for and against a
>> good understanding of maths being necessary to programming?
> 
> The better question definitely is: where the h*ll do you (and a friend
> who should know better than I) even /see/ maths in programming?!
> 
> Suppose I hack up a little finite state machine to help me come to grips
> with a hairy little bit of functionality (IPC over a mechanism where
> either party can be expected to go South at the most awkward of times).
> Is that math? Asking, not arguing.
> 
> kt
> 
Good counterexample.

Jeff
From: Charlton Wilbur
Subject: Re: Dumbing down?
Date: 
Message-ID: <873b1lcw56.fsf@mithril.chromatico.net>
>>>>> "KT" == Ken Tilton <···········@optonline.net> writes:

    KT> Suppose I hack up a little finite state machine to help me
    KT> come to grips with a hairy little bit of functionality (IPC
    KT> over a mechanism where either party can be expected to go
    KT> South at the most awkward of times). Is that math? Asking, not
    KT> arguing.

The theory of finite state machines was taught by the faculty of
mathematics in the institution I got my first degree from.  I have no
objection to calling it mathematics, especially when it's approached
as a formalism involving sets of tuples about which statements must be
proven or disproven.

However, in an introductory text for novices, the word "mathematics"
is likely to conjure up associations of trig identities, conic
sections, and congruent triangles; these are likely to be useful in
some problem domains, but not understanding them is no barrier to
general programming.

Charlton




-- 
Charlton Wilbur
·······@chromatico.net
From: Jeff Rollin
Subject: Re: Dumbing down?
Date: 
Message-ID: <EKydnXt_mKr8NsvbnZ2dnUVZ8tfinZ2d@pipex.net>
In the last episode, on Friday 25 May 2007 06:25, Charlton Wilbur wrote:

>>>>>> "KT" == Ken Tilton <···········@optonline.net> writes:
> 
>     KT> Suppose I hack up a little finite state machine to help me
>     KT> come to grips with a hairy little bit of functionality (IPC
>     KT> over a mechanism where either party can be expected to go
>     KT> South at the most awkward of times). Is that math? Asking, not
>     KT> arguing.


> However, in an introductory text for novices, the word "mathematics"
> is likely to conjure up associations of trig identities, conic
> sections, and congruent triangles; these are likely to be useful in
> some problem domains, but not understanding them is no barrier to
> general programming.

If you even know what those are!
> 
> The theory of finite state machines was taught by the faculty of
> mathematics in the institution I got my first degree from.  I have no
> objection to calling it mathematics, especially when it's approached
> as a formalism involving sets of tuples about which statements must be
> proven or disproven.

Hmm, now I think I understand. See "mathematics" scares me, "formalism
involving sets of tuples about which statements must be proven or
disproven" doesn't ;-)

Jeff.
> 
> 
> Charlton
> 
> 
> 
> 
From: Charlton Wilbur
Subject: Re: Dumbing down?
Date: 
Message-ID: <87tztyaicb.fsf@mithril.chromatico.net>
>>>>> "JR" == Jeff Rollin <··············@gmail.com> writes:

    JR> In the last episode, on Friday 25 May 2007 06:25, Charlton
    JR> Wilbur wrote:

    >> However, in an introductory text for novices, the word
    >> "mathematics" is likely to conjure up associations of trig
    >> identities, conic sections, and congruent triangles; these are
    >> likely to be useful in some problem domains, but not
    >> understanding them is no barrier to general programming.

    JR> If you even know what those are!

They were all part of the mathematics curriculum for everyone who was
not pursuing a vocational track at the public high school I attended.

This does not indicate, of course, that any reasonably well-educated
person would remember anything about them, or even that a reasonably
well-educated person having been exposed to another curriculum would
even have encountered them; but then, I would doubt the
characterization of such a person as reasonably well-educated.

Charlton


-- 
Charlton Wilbur
·······@chromatico.net
From: Jeff Rollin
Subject: Re: Dumbing down?
Date: 
Message-ID: <CYydnTKbyrE7ycTbRVnyhgA@pipex.net>
In the last episode, on Sunday 27 May 2007 07:31, Charlton Wilbur wrote:

>>>>>> "JR" == Jeff Rollin <··············@gmail.com> writes:
> 
>     JR> In the last episode, on Friday 25 May 2007 06:25, Charlton
>     JR> Wilbur wrote:
> 
>     >> However, in an introductory text for novices, the word
>     >> "mathematics" is likely to conjure up associations of trig
>     >> identities, conic sections, and congruent triangles; these are
>     >> likely to be useful in some problem domains, but not
>     >> understanding them is no barrier to general programming.
> 
>     JR> If you even know what those are!
> 
> They were all part of the mathematics curriculum for everyone who was
> not pursuing a vocational track at the public high school I attended.
> 
> This does not indicate, of course, that any reasonably well-educated
> person would remember anything about them, or even that a reasonably
> well-educated person having been exposed to another curriculum would
> even have encountered them; but then, I would doubt the
> characterization of such a person as reasonably well-educated.
> 

That's an incredibly arrogant assumption to make. It's perfectly possible
for someone to excel in some subjects, be mediocre in others and completely
utterly awful in others. The fact that maths might come into the last
category has nothing at all to do with the idea of being "reasonably
well-educated".

Jeff
From: Charlton Wilbur
Subject: Re: Dumbing down?
Date: 
Message-ID: <878xba9xf8.fsf@mithril.chromatico.net>
>>>>> "JR" == Jeff Rollin <··············@gmail.com> writes:

    JR> That's an incredibly arrogant assumption to make. 

You define "well-educated" as you see fit, and I'll do the same.

    JR> It's perfectly possible for someone to excel in some subjects,
    JR> be mediocre in others and completely utterly awful in
    JR> others. The fact that maths might come into the last category
    JR> has nothing at all to do with the idea of being "reasonably
    JR> well-educated".

Having huge gaps in your knowledge is, I think, incompatible with
being reasonably well-educated.

Charlton


-- 
Charlton Wilbur
·······@chromatico.net
From: Jeff Rollin
Subject: Re: Dumbing down?
Date: 
Message-ID: <UMadnVf6U-UZBcTbnZ2dnUVZ8tXinZ2d@pipex.net>
In the last episode, on Sunday 27 May 2007 15:02, Charlton Wilbur wrote:

>>>>>> "JR" == Jeff Rollin <··············@gmail.com> writes:
> 
>     JR> That's an incredibly arrogant assumption to make.
> 
> You define "well-educated" as you see fit, and I'll do the same.
> 
>     JR> It's perfectly possible for someone to excel in some subjects,
>     JR> be mediocre in others and completely utterly awful in
>     JR> others. The fact that maths might come into the last category
>     JR> has nothing at all to do with the idea of being "reasonably
>     JR> well-educated".
> 
> Having huge gaps in your knowledge is, I think, incompatible with
> being reasonably well-educated.
> 
> Charlton
> 
> 
Then - by YOUR definition - I suspect there are many, many more people who
are not "reasonably well-educated" than the set of those who are defined as
such in practice.

Jeff
From: Jeff Rollin
Subject: Re: Dumbing down?
Date: 
Message-ID: <UMadnVb6U-WoBMTbnZ2dnUVZ8tXinZ2d@pipex.net>
In the last episode, on Sunday 27 May 2007 15:40, Jeff Rollin wrote:

> In the last episode, on Sunday 27 May 2007 15:02, Charlton Wilbur wrote:
> 
>>>>>>> "JR" == Jeff Rollin <··············@gmail.com> writes:
>> 
>>     JR> That's an incredibly arrogant assumption to make.
>> 
>> You define "well-educated" as you see fit, and I'll do the same.
>> 
>>     JR> It's perfectly possible for someone to excel in some subjects,
>>     JR> be mediocre in others and completely utterly awful in
>>     JR> others. The fact that maths might come into the last category
>>     JR> has nothing at all to do with the idea of being "reasonably
>>     JR> well-educated".
>> 
>> Having huge gaps in your knowledge is, I think, incompatible with
>> being reasonably well-educated.
>> 
>> Charlton
>> 
>> 
> Then - by YOUR definition - I suspect there are many, many more people who
> are not "reasonably well-educated" than the set of those who are defined
> as such in practice.
> 

Make that "not reasonably well educated". Damn. The perils of imprecise
thinking.
From: Tim X
Subject: Re: Dumbing down?
Date: 
Message-ID: <87abvpwewc.fsf@lion.rapttech.com.au>
Charlton Wilbur <·······@chromatico.net> writes:

>>>>>> "JR" == Jeff Rollin <··············@gmail.com> writes:
>
>     JR> That's an incredibly arrogant assumption to make. 
>
> You define "well-educated" as you see fit, and I'll do the same.
>
>     JR> It's perfectly possible for someone to excel in some subjects,
>     JR> be mediocre in others and completely utterly awful in
>     JR> others. The fact that maths might come into the last category
>     JR> has nothing at all to do with the idea of being "reasonably
>     JR> well-educated".
>
> Having huge gaps in your knowledge is, I think, incompatible with
> being reasonably well-educated.
>
> Charlton
>

While I think I can appreciate what you mean, I do have to say that on the
whole, I'm constantly amazed by the 'gaps' in the knowledge of many people who
are programmers - particularly in non-technical areas. When I was doing my
postgrad studies, I was often asked to help other grad students with writing as
their knowledge and skill in this area definitely represented a 'gap'. To some
extent, the education system in Australia has in the past contributed to this.
Unlike some other countries, you enrol at University in a specialised area
right from the start. This means you can graduate having studied nothing but
units specifically related to your area and don't do anything more 'general'.
Often, science graduates end up with quite extensive knowledge in their field,
but have next to no knowledge past a high school level in other areas. Unless
you undertake honors or post graduate studies, you can often graduate having
written nothing but short papers of only a couple of thousand words, often
don't know how to reference things correctly and lack any skill in presenting
well structured written arguments. 

I'm regularly amazed at people who have almost no knowledge of or understanding
of politics, history, philosophy, economics or anything else that wasn't
directly related to their topic of study. I even met a fairly experienced
programmer a couple of weeks ago who didn't know/understand what the difference
was between left wing/right wing or what a socialist/communist was (they just
knew they were 'evil'). This guy was over 30! Despite this, he had a degree and
would be considered by many to be well educated. 

Bringing things back on topic....

I actually think that a well rounded general education is probably more
important in determining the quality of a programmer than having strong skills
in any one area, such as maths. While I think we would all agree a good
knowledge of maths is probably an asset (the jury is still out on whether it is
a prerequisite IMO), a person with well rounded knowledge is probably going to
deal with the real world aspects of programming better than someone who has
excellent math and programming skills. This sort of person will likely handle
the 'mirkiness' of the real world better, is likely to have better written and
oral communication skills, can draw on the lessons from history and understand
the shifting sands of politics and economics and will cope better with the
social and psychological aspects of working with others and extracting key
information from clients.

Tim


-- 
tcross (at) rapttech dot com dot au
From: Damien Kick
Subject: Re: Dumbing down?
Date: 
Message-ID: <26w5i.10011$296.4982@newsread4.news.pas.earthlink.net>
Ken Tilton wrote:
> Jeff Rollin wrote:
>> A better question might be, "what are the arguments for and against a
 >> good understanding of maths being necessary to programming?
> 
> The better question definitely is: where the h*ll do you (and a friend 
> who should know better than I) even /see/ maths in programming?!

And this coming from a guy who is writing software to help teach 
algebra?!  For shame, Kenny.  Put your head down on your desk for the 
rest of this thread.

> Suppose I hack up a little finite state machine to help me come to grips 
> with a hairy little bit of functionality (IPC over a mechanism where 
> either party can be expected to go South at the most awkward of times). 
> Is that math? Asking, not arguing.

It seems to me that the unifying concept is algorithms 
<http://en.wikipedia.org/wiki/Algorithm>: "In mathematics, computing, 
linguistics, and related disciplines, an algorithm is a finite list of 
well-defined instructions for accomplishing some task that, given an 
initial state, will terminate in a defined end-state."

Look.  See?  The words mathematics and computing are right next to each 
other in that sentence.  What?  Not convinced by this compelling use of 
the proximity agrument?  I think that the etymology of the word is 
interesting, too:

<blockquote cite="ibid">
Al-Khwa-rizmi-, the Persian astronomer and mathematician, wrote a treatise 
in Arabic in 825 AD, On Calculation with Hindu Numerals, which was 
translated into Latin in the 12th century as Algoritmi de numero 
Indorum[1], which title was likely intended to mean "Algoritmi on the 
numbers of the Indians", where "Algoritmi" was the translator's 
rendition of the author's name; but people misunderstanding the title 
treated Algoritmi as a Latin plural and this led to the word "algorithm" 
(Latin algorismus) coming to mean "calculation method". The intrusive 
"th" is most likely due to a false cognate with Greek ??????? arithmos = 
"number".
</blockquote>

So I think that mathematics called dibs on algorithms quite a long time 
ago.  Of course, I doubt that an intimate knowledge of Hindu numerals is 
going to help one cough out some PHP for that online store web-site. 
Touch�.

Still not convinced by proximity and etymology?  "The concept [of the 
algorithm] was formalized in 1936 through Alan Turing's Turing machines 
and Alonzo Church's lambda calculus, which in turn formed the foundation 
of computer science." [ibid]  Come on!  Slam dunk!  Lambda calculus. 
This is comp.lang.lisp.  You can't see the math, little fish, because 
you're swimming in it!

But word proximity in sentences on Wikipedia, etymology, and aquatic 
arguments aside, I seems to me that mathematics comes up in programming 
in realms other than just numerical analysis, cryptography, digital 
signal processing, financial software, physics engines for gaming, 
rocket science at the JPL, programs to teach algebra, etc.  Most good 
SPAM filters these days use the so-called Bayesian approach.  Unless I'm 
mistaken, computer simulations and mathematical modeling feed off each 
other quite a bit.  I remember, back from college, helping one of my 
professors (you know, I got him coffee and stuff) work on his 
publication of S.J. Merrill and J. R. Cochran, "Markov chain methods in 
the analysis of heart rate variability", Fields Institute Comm., 11 
(1997) 241-252.  I really just ran data through Mathematica programs of 
formulas he had spoon fed to me.  But I remember that he had hopes that 
one day such mathematical analysis could be used to create a new kind of 
heart rate monitor, the programming of which would certainly entail the 
use of the mathematics from the modeling work.  And from my copy of 
_Artificial Intelligence: A Modern Approach_ (I'm not claiming to 
understand or to have even read hardly any of this book), one finds the 
following from chapter 1.5, "Summary":

<blockquote>
Mathematicians provided the tools to manipulate statements of logical 
certainty as well as uncertain, probabilistic statements.  They also set 
the groundwork for reasoning about algorithms.
</blockquote>

This book is chock full of all kinds of "traditional" mathematics.  I'm 
flipping through the chapter on image processing right now and find all 
kinds of "convolution with linear filters", "one possible measure of 
similarity is the sum of squared differences", "one can maximize the 
cross-correlation", etc.

Of course, all of this is coming from a professional programmer who 
couldn't pass a college calculus course anymore unless he had 
Mathematica or Maple or Xah Lee or some other program feeding him the 
answers.  Is it just me or do Jon Harrop and Xah Lee seem to agree with 
each other <pause> well, at all <http://tinyurl.com/ynngpa>.  I mean, 
who the fsck else ever agrees with Xah?  Did Jon write Xahbot in OCaml? 
  Have we ever seen them together in the same room at the same time?  I 
realize that it could just be some confederacy of trolls but...

So it seems to me that, as always, theoretical mathematics leads the 
way.  Long after the theoreticians have moved on to something else, 
somebody comes up with a practical application for the theory.  For 
example, somebody makes a working heart rate monitor using Markov chain 
methods to figure out when it should beep to warn the surgeon that the 
patient has been given too much anaesthesia.  After the first few 
successful practical applications of that theory are working, these 
techniques become part of the common tool chest of that branch of 
application.  In programming terms, people start developing libraries or 
writing down design patterns or have written down detailed descriptions 
of the big-O properties of the, for example, beam-search or A* or 
whatever algorithm.

So, yes, I think that maths can help one be a better programmer but I 
don't think that there is some kind of cause-effect relationship whereby 
maths implies programming.  And I also think that somebody could 
probably code the next great killer application web-client display 
whatever without even knowing basic arithmetic as long as they had 
access to some library to take care of the things that he or she did not 
know how to do.  But I do think that maths and programming go together 
like <pause> chocolate and peanut butter.
From: Thomas F. Burdick
Subject: Re: Dumbing down?
Date: 
Message-ID: <1180080381.147360.103800@b40g2000prd.googlegroups.com>
On May 25, 9:19 am, Damien Kick <····@earthlink.net> wrote:
> Ken Tilton wrote:
>
> > Suppose I hack up a little finite state machine to help me come to grips
> > with a hairy little bit of functionality (IPC over a mechanism where
> > either party can be expected to go South at the most awkward of times).
> > Is that math? Asking, not arguing.
>
> It seems to me that the unifying concept is algorithms
> <http://en.wikipedia.org/wiki/Algorithm>: "In mathematics, computing,
> linguistics, and related disciplines, an algorithm is a finite list of
> well-defined instructions for accomplishing some task that, given an
> initial state, will terminate in a defined end-state."
>
> Look.  See?  The words mathematics and computing are right next to each
> other in that sentence.

Ah yes, wikidixitsm[*], the favorite contemporary variation of appeal
to a questionable authority: a million monkeys said it, so it must be
true.  Perhaps you could get Kenny to accede to argumentum ad
kilomonkeys, if only because he has a soft spot for the work of
trained monkeys, but really can't we just agree to recognize this
fallacy for what it is and quit with the wikidixitsm on cll?

[*] Yes, I just made that word up.  But look, it must be a real term,
Wikipedia says so: http://en.wikipedia.org/wiki/Wikidixitism
From: Damien Kick
Subject: Re: Dumbing down?
Date: 
Message-ID: <fMx5i.10021$296.3743@newsread4.news.pas.earthlink.net>
Thomas F. Burdick wrote:
> On May 25, 9:19 am, Damien Kick <····@earthlink.net> wrote:
>> Ken Tilton wrote:
>>
>>> Suppose I hack up a little finite state machine to help me come to grips
>>> with a hairy little bit of functionality (IPC over a mechanism where
>>> either party can be expected to go South at the most awkward of times).
>>> Is that math? Asking, not arguing.
>> It seems to me that the unifying concept is algorithms
>> <http://en.wikipedia.org/wiki/Algorithm>: "In mathematics, computing,
>> linguistics, and related disciplines, an algorithm is a finite list of
>> well-defined instructions for accomplishing some task that, given an
>> initial state, will terminate in a defined end-state."
>>
>> Look.  See?  The words mathematics and computing are right next to each
>> other in that sentence.
> 
> Ah yes, wikidixitsm[*], the favorite contemporary variation of appeal
> to a questionable authority: a million monkeys said it, so it must be
> true.

First of all, monkeys don't talk.  If one ever did, I would certainly 
pay attention to what it had to say.  But I thought that the *real* 
point was that a million monkeys said it with the two words right next 
to each other.  Or is *that* what wikidixitism means?

 > [...] but really can't we just agree to recognize this
> fallacy for what it is and quit with the wikidixitsm on cll?

Why are you picking on wikipedia?  Hell, I thought that most of usenet 
was a great big dixitism.  Most of the internet, in fact.  How do we 
even know that you *are* Thomas Burdick, if that is, in fact, your real 
name?  But if you hate wikipedia so much, how about the following from 
Meriam-Webster <http://tinyurl.com/25xnkg>:

<blockquote>
Etymology: alteration of Middle English algorisme, from Old French & 
Medieval Latin; Old French, from Medieval Latin algorismus, from Arabic 
al-khuwa-rizmi, from al-Khwa-rizmi- fl a.d. 825 Islamic mathematician
Date: 1926

: a procedure for solving a mathematical problem (as of finding the 
greatest common divisor) in a finite number of steps that frequently 
involves repetition of an operation; broadly : a step-by-step procedure 
for solving a problem or accomplishing some end especially by a computer
</blockquote>

Is this an unquestionable authority, whatever that is, or is this some 
kind of Merriam-Webster-dixitism?  Or is it supposed to somehow be more 
legitimate if I just make up a definition on my own and pretend that 
nobody else has ever tried to define the term before now?

But, damn!  You may just have a point.  In this version the word 
computer is really rather far away from the word mathematical.  Touch�.

> [*] Yes, I just made that word up.  But look, it must be a real term,
> Wikipedia says so: http://en.wikipedia.org/wiki/Wikidixitism

Be careful.  Before you know it it just could become a real term without 
you're having wanted it to do so.  Or did you think that all words have 
some kind of a priori existence as some kind of Platonic form? 
(platonic-form-p is like special-form-p but those symbols for which it 
returns true are even more special.)  However, I doubt you've the 
cultural cache of a Stephen Colbert and truthiness or wikiality is a 
much better term than wikidixitism anyway.  And those are real made up 
words, unlike you're fake made up word.
From: Timofei Shatrov
Subject: Re: Dumbing down?
Date: 
Message-ID: <4656ac06.15275675@news.readfreenews.net>
On 25 May 2007 01:06:21 -0700, "Thomas F. Burdick" <········@gmail.com> tried to
confuse everyone with this message:

>[*] Yes, I just made that word up.  But look, it must be a real term,
>Wikipedia says so: http://en.wikipedia.org/wiki/Wikidixitism

Oi, it looks like it has been deleted, just one minute after creation! Damn
those million monkeys, they always keep the man down!

-- 
|Don't believe this - you're not worthless              ,gr---------.ru
|It's us against millions and we can't take them all... |  ue     il   |
|But we can take them on!                               |     @ma      |
|                       (A Wilhelm Scream - The Rip)    |______________|
From: Robert Uhl
Subject: Re: Dumbing down?
Date: 
Message-ID: <m3ps4osxa1.fsf@latakia.dyndns.org>
"Thomas F. Burdick" <········@gmail.com> writes:
>
> Ah yes, wikidixitsm[*], the favorite contemporary variation of appeal
> to a questionable authority: a million monkeys said it, so it must be
> true.  Perhaps you could get Kenny to accede to argumentum ad
> kilomonkeys, if only because he has a soft spot for the work of
> trained monkeys, but really can't we just agree to recognize this
> fallacy for what it is and quit with the wikidixitsm on cll?

You ignored the rest of his (excellent) post, which used other
arguments.

And besides, it's not really a fallacy: that Wikipedia says X does not
mean that X is true; it does, however, lend some support to X.

-- 
Robert Uhl <http://public.xdi.org/=ruhl>
...with the Smart Ship's reputation so far, they will have to build a
bloody big trebuchet for the damn thing to be useful as a weapon.
                                                --Derry Hamilton
From: Ken Tilton
Subject: Re: Dumbing down?
Date: 
Message-ID: <WiC5i.2$3N7.1@newsfe12.lga>
Thomas F. Burdick wrote:

> Ah yes, wikidixitsm[*], the favorite contemporary variation of appeal
> to a questionable authority: a million monkeys said it, so it must be
> true.  Perhaps you could get Kenny to accede to argumentum ad
> kilomonkeys, if only because he has a soft spot for the work of
> trained monkeys, 

/Trained/ monkeys? What part of brute force do you not understand? The
chess crowd figured that out -- don't try to get the computer to figure
out the best move, just have it try them all.

We ended up releasing to the wild all the longtails exposed to PCL, they 
started /designing software/ for chrissakes. Progress halted.

And kilomonkeys?! Chya, if I need that Fibonachos thingy maybe. We're up
to six teramonkeys and procreating more all the time. Version control 
seems to be the main bottleneck now...

kt
From: fireblade
Subject: Re: Dumbing down?
Date: 
Message-ID: <1180530307.372818.166210@p47g2000hsd.googlegroups.com>
On May 25, 4:22 pm, Ken Tilton <···········@optonline.net> wrote:
> Thomas F. Burdick wrote:
> > Ah yes, wikidixitsm[*], the favorite contemporary variation of appeal
> > to a questionable authority: a million monkeys said it, so it must be
> > true.  Perhaps you could get Kenny to accede to argumentum ad
> > kilomonkeys, if only because he has a soft spot for the work of
> > trained monkeys,
>
> /Trained/ monkeys? What part of brute force do you not understand? The
> chess crowd figured that out -- don't try to get the computer to figure
> out the best move, just have it try them all.
>

Every problem could be solved by  enough time, brute force and
ignorance.
From: Thomas F. Burdick
Subject: Re: Dumbing down?
Date: 
Message-ID: <1180532186.913643.160050@a26g2000pre.googlegroups.com>
On May 25, 4:22 pm, Ken Tilton <···········@optonline.net> wrote:
> Thomas F. Burdick wrote:
> > Ah yes, wikidixitsm[*], the favorite contemporary variation of appeal
> > to a questionable authority: a million monkeys said it, so it must be
> > true.  Perhaps you could get Kenny to accede to argumentum ad
> > kilomonkeys, if only because he has a soft spot for the work of
> > trained monkeys,
>
> /Trained/ monkeys? What part of brute force do you not understand?

I mean potty trained, of course.  Unless I've completely misunderstood
your centamonkey development process.
From: Alex Mizrahi
Subject: Re: Dumbing down?
Date: 
Message-ID: <4656a337$0$90272$14726298@news.sunsite.dk>
(message (Hello 'Thomas)
(you :wrote  :on '(25 May 2007 01:06:21 -0700))
(

 TFB> Ah yes, wikidixitsm[*], the favorite contemporary variation of appeal
 TFB> to a questionable authority: a million monkeys said it, so it must be
 TFB> true.

will something change if it would be a citation from some printed 
Encyclopaedia?
i have a "Big Soviet Encyclopaedia" consisting of 30+ tomes, printed in 
1970.
"Algorithm" article starts with "algorithm, one of main concepts 
(categories) of mathematics, ".
does it have enough authority?

if not, this Encyclopaedia says that "Algorithm" article was written by V. 
A. Uspensky. this guy is quite famous for his works in math, especially math 
logic and algorithm theory (he is the head of this section in biggest 
russian university), and also in linguistics. Uspensky was taught by, and 
has many common works with Kolmogorov, maybe you know at least this guy?

 TFB> is and quit with the wikidixitsm on cll?

i have an advise for anal guys like you -- most wikipedia pages have 
"references" section, if you are that anal to question material in 
wikipedia, please first look through those references before saying that 
"wikipedia material might be wrong".

as you might know, saying "your sources might be wrong, so your statement is 
wrong" is a fallacy? ye, statement _might_ be wrong, you still need to prove 
if it's wrong or not.

p.s. even if you were joking, i'm already too aggravated by all those anal 
"anti-wikidixitists" out there..

)
(With-best-regards '(Alex Mizrahi) :aka 'killer_storm)
"I am everything you want and I am everything you need") 
From: Jeff Rollin
Subject: Re: Dumbing down?
Date: 
Message-ID: <EKydnXh_mKoBN8vbnZ2dnUVZ8tfinZ2d@pipex.net>
In the last episode, on Friday 25 May 2007 09:49, Alex Mizrahi wrote:

> 
> i have an advise for anal guys like you -- most wikipedia pages have
> "references" section, if you are that anal to question material in
> wikipedia, please first look through those references before saying that
> "wikipedia material might be wrong".

<applause>

May I quote you on that?
From: ········@gmail.com
Subject: Re: Dumbing down?
Date: 
Message-ID: <1180112508.060817.247510@q75g2000hsh.googlegroups.com>
> But word proximity in sentences on Wikipedia, etymology, and aquatic
> arguments aside, I seems to me that mathematics comes up in programming
> in realms other than just numerical analysis, cryptography, digital
> signal processing, financial software, physics engines for gaming,
> rocket science at the JPL, programs to teach algebra, etc.  Most good
> SPAM filters these days use the so-called Bayesian approach.  Unless I'm
> mistaken, computer simulations and mathematical modeling feed off each
> other quite a bit.  I remember, back from college, helping one of my
> professors (you know, I got him coffee and stuff) work on his
> publication of S.J. Merrill and J. R. Cochran, "Markov chain methods in
> the analysis of heart rate variability", Fields Institute Comm., 11
> (1997) 241-252.

You bring up Bayesian approaches and HMMs, both of which feature
prominently in Machine Learning.  And Machine Learning is definitely
all about Math, especially Statistics.  It is also one of the most
popular graduate level CS classes at the university where I work.  And
it is a field that the likes of Google and their competitors are very
interested in.

So, I think this is another example of Math being important in
Computer Science, but maybe not so much for Software Engineering.
Google and others have shown that being good at Computer Science can
be very lucrative.  Maybe focusing on Computer Science has more
variance in financial outcomes, some get very rich, many toil in
obscurity.  Software Engineering is where most of the activity
happens, so there is more stability there and better odds for job
security and mobility.

I would say, then, to someone new to programming that you should study
advanced math if you want to someday make a significant advance to the
field of computing.  Study software engineering if you want a steady
job.

 -jimbo
From: Tamas Papp
Subject: Re: Dumbing down?
Date: 
Message-ID: <873b1krfu9.fsf@pu100877.student.princeton.edu>
········@gmail.com writes:

> You bring up Bayesian approaches and HMMs, both of which feature
> prominently in Machine Learning.  And Machine Learning is definitely
> all about Math, especially Statistics.  It is also one of the most
> popular graduate level CS classes at the university where I work.  And
> it is a field that the likes of Google and their competitors are very
> interested in.

What you are saying is that if you are programing a specific
algorithm, you better understand its background.  True, but not
surprising: everyone who writes programs with nontrivial or
field-specific algorithms knows this already.

For example, in the natural or social sciences, it is pointless to
hire a research assistant from is outside the (often very narrow)
field, even if he/she is a very good programmer in general.

Tamas
From: Tim X
Subject: Re: Dumbing down?
Date: 
Message-ID: <878xbd7dkf.fsf@lion.rapttech.com.au>
Ken Tilton <···········@optonline.net> writes:

> Jeff Rollin wrote:
>> In the last episode, on Thursday 24 May 2007 21:00, Ken Tilton wrote:
>>
>>
>>>
>>>Jeff Rollin wrote:
>>>
>>>>A friend (who should know better than I) and myself both agree that an
>>>>understanding of maths is necessary to be able to program.
>>>>
>>>>So why do so many introductory textbooks insist that it isn't?
>>>
>>>Sorry, point of information: you and your friend agreeing on X has
>>>exactly what power over X's truth?
>>>
>>>hth,kt
>>>
>>
>>
>> Heh. As I've already had to admit, that was a lousy metric to have started
>> out with.
>>
>> A better question might be, "what are the arguments for and against a good
>> understanding of maths being necessary to programming?
>
> The better question definitely is: where the h*ll do you (and a friend who
> should know better than I) even /see/ maths in programming?!
>
> Suppose I hack up a little finite state machine to help me come to grips with a
> hairy little bit of functionality (IPC over a mechanism where either party can
> be expected to go South at the most awkward of times). Is that math? Asking,
> not arguing.
>

I think your on the right track. The extent to which maths skill makes you a
better programmer depends on what you consider maths to be and the domain you
program in. Some would say that to be a good programmer working with relational
databases you need a solid grasp of relational algebra and that might be
considered a mathematical skill. Others would argue its about modelling and
understanding entities and relationships and downplay the more theoretical
relational algebra perspective. If you were working in signal processing,
cryptography data compression etc, good math skills are probably essential.
However, if your writing web applications, a customer relationship management
system or a word processor, maths is probably less important. 

In programming, I find skills from other areas are often extremely useful for
bringing new ideas into play. A friend of mine, who wasn't a programmer,
developed a really neat system for cracking DES encryption which was based on a
model of how liquids behave when heated and cooled. While there certainly was
considerable maths involved in this solution, the key was really his background
in physics. 

The importance of maths in programming is less than it use to be, mainly due to
higher level and reliable libraries, languages and other abstractions that are
now available. I think there will always be areas of programming that require
good maths skills to be a good programmer, but there is a growing area in which
only minimal mathematical knowledge is necessary to produce good quality
software and a reduction in the need to understand the theoretical basis of the
tools being used. 

A good grasp of methematics is a useful tool for a programmer and it is likely
to broaden the domain of problems you address. However, I don't think it is a
prerequisite for being a good programmer. Likewise, a good grasp of maths
doesn't make you a good programmer. The world simply isn't that black and
white.

Tim

-- 
tcross (at) rapttech dot com dot au
From: Christian Haselbach
Subject: Re: Dumbing down?
Date: 
Message-ID: <f395pr$p7o$1@online.de>
Ken Tilton wrote:
> 
> Suppose I hack up a little finite state machine to help me come to grips 
> with a hairy little bit of functionality (IPC over a mechanism where 
> either party can be expected to go South at the most awkward of times). 
> Is that math? Asking, not arguing.

IMHO, yes. Well, the computer science faculty of the university where I 
studied originated in the math department "applied mathematics, 
particularly computer science", hence I would categorize automata theory 
as applied mathematics, which covers finite state machines.

Regards,
Christian
From: Tamas Papp
Subject: Re: Dumbing down?
Date: 
Message-ID: <877iqxreq4.fsf@pu100877.student.princeton.edu>
Jeff Rollin <··············@gmail.com> writes:

> In the last episode, on Thursday 24 May 2007 21:00, Ken Tilton wrote:
>
>> 
>> 
>> Jeff Rollin wrote:
>>> A friend (who should know better than I) and myself both agree that an
>>> understanding of maths is necessary to be able to program.
>>> 
>>> So why do so many introductory textbooks insist that it isn't?
>> 
>> Sorry, point of information: you and your friend agreeing on X has
>> exactly what power over X's truth?
>> 
>> hth,kt
>> 
>
> Heh. As I've already had to admit, that was a lousy metric to have started
> out with.

Indeed.  "Math" is quite broad.  I don't think a programmer needs to
know any differential topology ;-)

This is not strictly "math", but I found it quite useful when
programming numerical algorithms:

What Every Computer Scientist Should Know About Floating-Point Arithmetic
www.validlab.com/goldberg/paper.pdf 

> A better question might be, "what are the arguments for and against a good
> understanding of maths being necessary to programming?

Time is a scarce resource.  Math might be useful, but is it more
useful as the same amount of time spent on programming per se?
Diminishing returns kick in quite early.

Tamas
From: Cor Gest
Subject: Re: Dumbing down?
Date: 
Message-ID: <87sl9lomnp.fsf@telesippa.clsnet.nl>
> A better question might be, "what are the arguments for and against a good
> understanding of maths being necessary to programming?

In stating the question this way,  you presume there is no (good) programming
possible whithout math.

Cor

-- 
	 (defvar MyComputer '((OS . "GNU/Emacs") (IPL . "GNU/Linux"))) 
The biggest problem LISP has, is that it does not appeal to dumb people
If that fails to satisfy you, start reading the HyperSpec or woman frig
			 mailpolicy @ http://www.clsnet.nl/mail.php
From: Jeff Rollin
Subject: Re: Dumbing down?
Date: 
Message-ID: <w8ydnczGx4QSg8vbnZ2dnUVZ8sXinZ2d@pipex.net>
In the last episode, on Thursday 24 May 2007 23:57, Cor Gest wrote:

> 
> 
>> A better question might be, "what are the arguments for and against a
>> good understanding of maths being necessary to programming?
> 
> In stating the question this way,  you presume there is no (good)
> programming possible whithout math.
> 
> Cor
> 
In which case how would you restate it to get rid of this presumption?

Jeff
From: Cor Gest
Subject: Re: Dumbing down?
Date: 
Message-ID: <87odk9oer5.fsf@telesippa.clsnet.nl>
>>> A better question might be, "what are the arguments for and against a
>>> good understanding of maths being necessary to programming?

>> In stating the question this way,  you presume there is no (good)
>> programming possible whithout math.

> In which case how would you restate it to get rid of this presumption?

Why would it be good (or bad) to get rid of any presumption ?
Just for semantical purposes, or the presumed math in the question ? 
why bother at all ?
if it's good it lives on and thrives, if not it dies.
Nature seems to grok it allready for a couple of million of years.
Alltough some people believe it was a mere 4000. Again a math problem :
what constitutes the size of the entity named 'day'.

Cor

-- 
	 (defvar MyComputer '((OS . "GNU/Emacs") (IPL . "GNU/Linux"))) 
The biggest problem LISP has, is that it does not appeal to dumb people
If that fails to satisfy you, start reading the HyperSpec or woman frig
			 mailpolicy @ http://www.clsnet.nl/mail.php
From: Charlton Wilbur
Subject: Re: Dumbing down?
Date: 
Message-ID: <87odkac7ar.fsf@mithril.chromatico.net>
>>>>> "JR" == Jeff Rollin <··············@gmail.com> writes:

    JR> A friend (who should know better than I) and myself both agree
    JR> that an understanding of maths is necessary to be able to
    JR> program.

    JR> So why do so many introductory textbooks insist that it isn't?

1) Because they disagree with you and your friend, possibly because
   you and your friend are wrong.  "A friend (who should know better
   than I) and I both agree that heavy objects fall faster than light
   ones.  So why do so many introductory physics textbooks insist that
   they fall at the same speed?"

2) Because the kind of mathematics that is most useful in introductory
   programming is not the algebra and calculus and geometry that most
   non-programmers and non-mathematicians think of when they think
   "mathematics," but combinatorics and algorithms, and if they say
   "you must need math, but not the kind of math you're thinking of,"
   they'll just confuse people.

Charlton


-- 
Charlton Wilbur
·······@chromatico.net
From: Jeff Rollin
Subject: Re: Dumbing down?
Date: 
Message-ID: <hLqdnRQ84KXSj8vbnZ2dnUVZ8tPinZ2d@pipex.net>
In the last episode, on Thursday 24 May 2007 21:09, Charlton Wilbur wrote:

>>>>>> "JR" == Jeff Rollin <··············@gmail.com> writes:
> 
>     JR> A friend (who should know better than I) and myself both agree
>     JR> that an understanding of maths is necessary to be able to
>     JR> program.
> 
>     JR> So why do so many introductory textbooks insist that it isn't?
> 
> 1) Because they disagree with you and your friend, possibly because
>    you and your friend are wrong.  "A friend (who should know better
>    than I) and I both agree that heavy objects fall faster than light
>    ones.  So why do so many introductory physics textbooks insist that
>    they fall at the same speed?"
> 
> 2) Because the kind of mathematics that is most useful in introductory
>    programming is not the algebra and calculus and geometry that most
>    non-programmers and non-mathematicians think of when they think
>    "mathematics," but combinatorics and algorithms, and if they say
>    "you must need math, but not the kind of math you're thinking of,"
>    they'll just confuse people.
> 
> Charlton
> 
> 
Well, yeah, it's a lousy metric. But after all, a computer really doesn't do
much more than add, subtract or compare two numbers - it doesn't understand
English, can't appreciate music, and wouldn't have a use for a jet engine.

Jeff
From: Tim X
Subject: Re: Dumbing down?
Date: 
Message-ID: <874pm17cpl.fsf@lion.rapttech.com.au>
Jeff Rollin <··············@gmail.com> writes:

> In the last episode, on Thursday 24 May 2007 21:09, Charlton Wilbur wrote:
>
>>>>>>> "JR" == Jeff Rollin <··············@gmail.com> writes:
>> 
>>     JR> A friend (who should know better than I) and myself both agree
>>     JR> that an understanding of maths is necessary to be able to
>>     JR> program.
>> 
>>     JR> So why do so many introductory textbooks insist that it isn't?
>> 
>> 1) Because they disagree with you and your friend, possibly because
>>    you and your friend are wrong.  "A friend (who should know better
>>    than I) and I both agree that heavy objects fall faster than light
>>    ones.  So why do so many introductory physics textbooks insist that
>>    they fall at the same speed?"
>> 
>> 2) Because the kind of mathematics that is most useful in introductory
>>    programming is not the algebra and calculus and geometry that most
>>    non-programmers and non-mathematicians think of when they think
>>    "mathematics," but combinatorics and algorithms, and if they say
>>    "you must need math, but not the kind of math you're thinking of,"
>>    they'll just confuse people.
>> 
>> Charlton
>> 
>> 
> Well, yeah, it's a lousy metric. But after all, a computer really doesn't do
> much more than add, subtract or compare two numbers - it doesn't understand
> English, can't appreciate music, and wouldn't have a use for a jet engine.
>

Thats very true and why I think that 30 years ago, higher math skill did tend
to result in better programming. However, these days, very few people work at
that level. The 'programmers interface' has been abstracted quite highly. As
Charlton points out, much of what some would consider mathematics wouldn't even
be considered maths by others. 

I did study discrete maths at Uni and although I have always enjoyed the
problem solving and clearer definitions/results of maths (compared to, lets say
english composition, critical analysis of novels, poetery etc), it wasn't
something that I would say came naturally to me. On the other hand, nearly all
the concepts associated with programming, like recursion, closures, analysis of
algorithms and big O etc, were amongst the easiest concepts I've ever studied.
At the same time, I found courses on cryptography, fractals and data
compression pretty hard going. 

Since completing my degree and after over 20 years working in the industry,
mainly as a programmer, I've rarely ever needed to draw on anything other than
fairly trivial math skill. However, I've not been working for the NSA cracking
encryption or NASA programming flight controllers or for a hardware company
writing embedded software for their graphics cards etc. 

Tim


-- 
tcross (at) rapttech dot com dot au
From: Bob Felts
Subject: Re: Dumbing down?
Date: 
Message-ID: <1hymn39.4tfo17apzp9iN%wrf3@stablecross.com>
Jeff Rollin <··············@gmail.com> wrote:

> A friend (who should know better than I) and myself both agree that an
> understanding of maths is necessary to be able to program.
> 
> So why do so many introductory textbooks insist that it isn't?
> 

Probably because it isn't.  The ability to write well is far more
important than knowledge of mathematics.
From: Barry Margolin
Subject: Re: Dumbing down?
Date: 
Message-ID: <barmar-299962.19461624052007@comcast.dca.giganews.com>
In article <··························@stablecross.com>,
 ····@stablecross.com (Bob Felts) wrote:

> Jeff Rollin <··············@gmail.com> wrote:
> 
> > A friend (who should know better than I) and myself both agree that an
> > understanding of maths is necessary to be able to program.
> > 
> > So why do so many introductory textbooks insist that it isn't?
> > 
> 
> Probably because it isn't.  The ability to write well is far more
> important than knowledge of mathematics.

However, the kind of logical and precise thinking that you learn when 
writing mathematical proofs is very similar, IMHO, to what you do when 
programming.

So while you don't need to know things like calculus or differential 
equations (unless the applications you're writing happen to involve 
them), other areas of mathematics provide a good foundation for the 
thought processes required.

-- 
Barry Margolin, ······@alum.mit.edu
Arlington, MA
*** PLEASE post questions in newsgroups, not directly to me ***
*** PLEASE don't copy me on replies, I'll read them in the group ***
From: Bob Felts
Subject: Re: Dumbing down?
Date: 
Message-ID: <1hynvdj.1xsq7n19geqcyN%wrf3@stablecross.com>
Barry Margolin <······@alum.mit.edu> wrote:

> In article <··························@stablecross.com>,
>  ····@stablecross.com (Bob Felts) wrote:
> 
> > Jeff Rollin <··············@gmail.com> wrote:
> > 
> > > A friend (who should know better than I) and myself both agree that an
> > > understanding of maths is necessary to be able to program.
> > > 
> > > So why do so many introductory textbooks insist that it isn't?
> > > 
> > 
> > Probably because it isn't.  The ability to write well is far more
> > important than knowledge of mathematics.
> 
> However, the kind of logical and precise thinking that you learn when
> writing mathematical proofs is very similar, IMHO, to what you do when
> programming.

Which is kinda like planning an essay.  You have to choose a topic,
determine the points you wish to make and arrange those points in a
logical progression.

> 
> So while you don't need to know things like calculus or differential 
> equations (unless the applications you're writing happen to involve 
> them), other areas of mathematics provide a good foundation for the 
> thought processes required.

Logical thought processes are needed in all kinds of disciplines; not
just math.
From: Barry Margolin
Subject: Re: Dumbing down?
Date: 
Message-ID: <barmar-19FA30.21144225052007@comcast.dca.giganews.com>
In article <···························@stablecross.com>,
 ····@stablecross.com (Bob Felts) wrote:

> Barry Margolin <······@alum.mit.edu> wrote:
> > So while you don't need to know things like calculus or differential 
> > equations (unless the applications you're writing happen to involve 
> > them), other areas of mathematics provide a good foundation for the 
> > thought processes required.
> 
> Logical thought processes are needed in all kinds of disciplines; not
> just math.

True, but I think the particular style of thinking in programming is 
very similar to that of designing mathematical proofs.  If you have 
trouble with math, I believe you'll probably be poor at programming.

-- 
Barry Margolin, ······@alum.mit.edu
Arlington, MA
*** PLEASE post questions in newsgroups, not directly to me ***
*** PLEASE don't copy me on replies, I'll read them in the group ***
From: Jeff Rollin
Subject: Re: Dumbing down?
Date: 
Message-ID: <3I6dnYZATpFqCcrbRVnyvQA@pipex.net>
In the last episode, on Saturday 26 May 2007 02:14, Barry Margolin wrote:

> In article <···························@stablecross.com>,
>  ····@stablecross.com (Bob Felts) wrote:
> 
>> Barry Margolin <······@alum.mit.edu> wrote:
>> > So while you don't need to know things like calculus or differential
>> > equations (unless the applications you're writing happen to involve
>> > them), other areas of mathematics provide a good foundation for the
>> > thought processes required.
>> 
>> Logical thought processes are needed in all kinds of disciplines; not
>> just math.
> 
> True, but I think the particular style of thinking in programming is
> very similar to that of designing mathematical proofs.  If you have
> trouble with math, I believe you'll probably be poor at programming.
> 
Hmm. I'm not good at arithmetic, but I don't seem to have many problems with
understanding formulae and logic.

Jeff
From: Barry Margolin
Subject: Re: Dumbing down?
Date: 
Message-ID: <barmar-A2D900.20185726052007@comcast.dca.giganews.com>
In article <·······················@pipex.net>,
 Jeff Rollin <··············@gmail.com> wrote:

> In the last episode, on Saturday 26 May 2007 02:14, Barry Margolin wrote:
> 
> > In article <···························@stablecross.com>,
> >  ····@stablecross.com (Bob Felts) wrote:
> > 
> >> Barry Margolin <······@alum.mit.edu> wrote:
> >> > So while you don't need to know things like calculus or differential
> >> > equations (unless the applications you're writing happen to involve
> >> > them), other areas of mathematics provide a good foundation for the
> >> > thought processes required.
> >> 
> >> Logical thought processes are needed in all kinds of disciplines; not
> >> just math.
> > 
> > True, but I think the particular style of thinking in programming is
> > very similar to that of designing mathematical proofs.  If you have
> > trouble with math, I believe you'll probably be poor at programming.
> > 
> Hmm. I'm not good at arithmetic, but I don't seem to have many problems with
> understanding formulae and logic.

Mathematics != arithmetic

How did you do in plane geometry, when you were learning about things 
like the proofs of the Pythagorean Theorem or inductive reasoning?  Or 
Boolean algebra?

-- 
Barry Margolin, ······@alum.mit.edu
Arlington, MA
*** PLEASE post questions in newsgroups, not directly to me ***
*** PLEASE don't copy me on replies, I'll read them in the group ***
From: Jeff Rollin
Subject: Re: Dumbing down?
Date: 
Message-ID: <g9CdnXngm94tQcXbnZ2dnUVZ8trinZ2d@pipex.net>
In the last episode, on Sunday 27 May 2007 01:18, Barry Margolin wrote:


> 
> How did you do in plane geometry, when you were learning about things
> like the proofs of the Pythagorean Theorem or inductive reasoning?  Or
> Boolean algebra?
> 
I can't honestly say I did well at them in grade school, both due to
circumstances beyond my control and due to the way maths is taught in this
country (UK), which requires you to be able to do arithmetic before you
even smell the above; but having recently decided to go back to college to
do maths, and having seen some of the things they do in algebra and so on,
I don't seem to be finding it that hard.

Jeff
From: Barry Margolin
Subject: Re: Dumbing down?
Date: 
Message-ID: <barmar-AA4C26.21373226052007@comcast.dca.giganews.com>
In article <································@pipex.net>,
 Jeff Rollin <··············@gmail.com> wrote:

> In the last episode, on Sunday 27 May 2007 01:18, Barry Margolin wrote:
> 
> 
> > 
> > How did you do in plane geometry, when you were learning about things
> > like the proofs of the Pythagorean Theorem or inductive reasoning?  Or
> > Boolean algebra?
> > 
> I can't honestly say I did well at them in grade school, both due to
> circumstances beyond my control and due to the way maths is taught in this
> country (UK), which requires you to be able to do arithmetic before you
> even smell the above; but having recently decided to go back to college to
> do maths, and having seen some of the things they do in algebra and so on,
> I don't seem to be finding it that hard.

In this case, I'd say it's working the other way around: your experience 
in programming probably helps with your math.

-- 
Barry Margolin, ······@alum.mit.edu
Arlington, MA
*** PLEASE post questions in newsgroups, not directly to me ***
*** PLEASE don't copy me on replies, I'll read them in the group ***
From: Jeff Rollin
Subject: Re: Dumbing down?
Date: 
Message-ID: <M9adnZl49YmqfsXbnZ2dnUVZ8s_inZ2d@pipex.net>
In the last episode, on Sunday 27 May 2007 02:37, Barry Margolin wrote:

> In article <································@pipex.net>,
>  Jeff Rollin <··············@gmail.com> wrote:
> 
>> In the last episode, on Sunday 27 May 2007 01:18, Barry Margolin wrote:
>> 
>> 
>> > 
>> > How did you do in plane geometry, when you were learning about things
>> > like the proofs of the Pythagorean Theorem or inductive reasoning?  Or
>> > Boolean algebra?
>> > 
>> I can't honestly say I did well at them in grade school, both due to
>> circumstances beyond my control and due to the way maths is taught in
>> this country (UK), which requires you to be able to do arithmetic before
>> you even smell the above; but having recently decided to go back to
>> college to do maths, and having seen some of the things they do in
>> algebra and so on, I don't seem to be finding it that hard.
> 
> In this case, I'd say it's working the other way around: your experience
> in programming probably helps with your math.
> 
I agree. I've probably been absorbing maths concepts for a long time due to
my interests in computers.

Jeff
From: Tim X
Subject: Re: Dumbing down?
Date: 
Message-ID: <871wh250su.fsf@lion.rapttech.com.au>
Jeff Rollin <··············@gmail.com> writes:

> In the last episode, on Sunday 27 May 2007 01:18, Barry Margolin wrote:
>
>
>> 
>> How did you do in plane geometry, when you were learning about things
>> like the proofs of the Pythagorean Theorem or inductive reasoning?  Or
>> Boolean algebra?
>> 
> I can't honestly say I did well at them in grade school, both due to
> circumstances beyond my control and due to the way maths is taught in this
> country (UK), which requires you to be able to do arithmetic before you
> even smell the above; but having recently decided to go back to college to
> do maths, and having seen some of the things they do in algebra and so on,
> I don't seem to be finding it that hard.
>

Its funny, but that is all way to common. I was pretty bad at maths when at
school. At the time, I found this a paradox as I quite enjoyed it (i.e. I
enjoyed the problem solving), but just didn't seem to get it or was never very
good at it. 

When I first left school, I was going to be an accountant (OMG!), but after two
years I dropped out. One of the reasons was because I failed the second year
economic statistics course and had only just passed first year. 

Some years later, I returned to uni and started a degree in social science. I
was very worried as you had to do quite a few stats courses and I didn't think
I'd pass. Well, things really turned around and I think it was nearly totally
due to having a good lecturer (and possibly being a bit more mature). Suddenly,
within the first month of the course, everything just dropped into place. In
fact, I ended up with a prize at the end of the first semester for completing a
perfect 100% exam and a prize at the end of the second year stats course for
best overall mark and for best original analysis of the statistical analysis
used in a published research paper. 

After finishing my degree, I worked for a couple of years and soon got bored
because of lack of intellectual challenge. When I finished my degree, computers
were just becoming more popular and students had started using word processors
rather than typewriters. I'd found computers fun when using the PDP-11 at Uni
and decided I'd like to understand how they worked and try some programming. I
found it really interesting and for some reason I found the concepts really
quite straight-forward. I decided to go back and do a computing science degree.
I was very concerned at one level because you had to do at least discrete maths
to do the degree and were even encouraged to also do some pure maths. 

Well, things completely turned around. This was largely due to yet another
really good lecturer who I think immediately realised what was holdinig me
back. He gave me some books on the history of mathematics and some descriptions
of how some of the major discoveries were made. It was only at this point I
became aware of the "Is maths discovered or invented" arguement. Suddenly, I
stopped thinking of maths as it had been taught to me - that is, that it
consists of a whole  lot of well defined rules which you merely memorise and
apply where appropriate. This was how I'd been taught in school. Each problem
had one and only one solution which you obtained by applying the correct
recepie/algorithm. Suddenly, maths became a true problem solving process in
which I was free to use any of my knowledge to solve the problem and not merely
a process matching activity in which I tried to work out which method was
appropriate without really understanidn what I was trying to do. I found maths
problems popping into my head all the time and often filled hours sitting down
with pen and paper tyring to work out a solution having nothing other than the
problem and my knowledge of various techniques. 

The best day was when I was doing a course on chaos theory and fractals. We
were given a 'simple' assignment that night to write some formal proofs
associated with some of the known properties of a fractal. I turned up the next
day with my proofs, very nervous as this was still something I wasn't totally
comfortable with. The lecturer looked at my work and said yep, well done.
However, he also suggested I talk to a couple of my fellow students and get
them to show me their proofs. The fact was, while my proof was fine, it was not
very elegant. Many of my fellow students were coming from a pure maths
background with much better knowledge of number theory etc. My proof was based
on what I'd learnt in discrete maths, while theirs were based mainly on what
they had learnt studying pure maths. They had a bigger and better equipped
toolbox and therefore were able to implement more elegant proof. The really
nice thing was that once they showed me the proof and I worked through it with
them, for the first time, I really understood what was going on and could
apprreciate what they had done. 

Now, while I can say my maths is reasonable (its probably more unreasonable now
as I rarely get to practice it), I'm not sure how much it contributed to my
programming ability. To a large extent, my programming skill occured before my
maths skill. My growing ability and interest in maths certainly influenced
later course choices (I really enjoyed courses on computability, logic etc) and
they probably did have some influence on my programming. However, all the stuff
I learnt on algorithms, abstract data types, program structure, recursion, etc
all occured prior to my development of maths skills and I don't think my
understanding or appreciation of these things was changed or affected by growth
in maths skill. I am very convinced that most maths teachers in school don't
actually understand what they are teaching though. 

I do have to say I've found this thread quite interesting. Not so much because
of the debate as to whether maths skill is a prerequisite for being a good
programmer, but more in the way som eof the arguments have gone. Therre has
been considerable debate as to whether there is a link/relationship between
maths and programming and whether you need maths to program in some domains. I
think these threads missed the point. I don't believe anyone has argued there
isn't a relationship between maths and programming and I think its pretty
obvious that in some problem domains, you will need advanced skill in the maths
associated with that domain. I also think maths can't hurt in making someone a
better programmer, but I'm not convinced it is required. It has been argued
that the sort of logical thinking geneally associated with maths is important
for programming. However, I find that a fairly arrogant assumption because it
implies only mathematicians have the skills/discipline for that type of
thinking. This simply isn't true - there are many many areas of study, work and
life that require those sorts of skills and which are done by people who have
little maths skill. it is even possible that the type of person who is good at
maths may be that way because they already have the skills before they start
the math. Maybe all that doing maths does is help you to refine those skills
you already have. If this is the case, then that same person would likely be
good at programming without doing any maths at all. maybe maths will make them
even better or maybe it won't have any noticeable affect. 

I did notice a number of posters make reference to historical change and
changes in the sort of knowledge you require. I think this is very relevant. In
fact, I've long thought that in the long term, programming will become more
trivial (and probably more boreing) as the process becomes more abstract. Early
programmers had to put a lot of effort into making things small, tight and
efficient because storage was expensive, CPUs werre slow and you were often
working 'close to the metal'. You actually implemented the algorithms to sort
your data or the hashing and collision resolution functions for that hash table
or the low level numerical functions you needed. These days, you are more
likely to use the built in library functions and leave optimisation to the
compiler (hands up those who remember going into the assembly code to unwind
loops by hand to make them faster or use less memory). 

Tim


-- 
tcross (at) rapttech dot com dot au
From: Jeff Rollin
Subject: Re: Dumbing down?
Date: 
Message-ID: <CYydnTCbyrEmzsTbRVnyhgA@pipex.net>
In the last episode, on Sunday 27 May 2007 05:48, Tim X wrote:

>>
> 
> Its funny, but that is all way to common. I was pretty bad at maths when
> at school. At the time, I found this a paradox as I quite enjoyed it (i.e.
> I enjoyed the problem solving), but just didn't seem to get it or was
> never very good at it.
> 
> When I first left school, I was going to be an accountant (OMG!), but
> after two years I dropped out. One of the reasons was because I failed the
> second year economic statistics course and had only just passed first
> year.
> 
> Some years later, I returned to uni and started a degree in social
> science. I was very worried as you had to do quite a few stats courses and
> I didn't think I'd pass. Well, things really turned around and I think it
> was nearly totally due to having a good lecturer (and possibly being a bit
> more mature).

Indeed. A teacher (and/or a book, especially if you are teaching yourself)
you get along with (in the sense of grokking his/her teaching style) is
absolutely essential, imo. And to be fair to the way maths is taught in
British schools, I also would say that perhaps one of the reasons why I am
finding it easier this time round is maturity.

> It has been argued that
> the sort of logical thinking geneally associated with maths is important
> for programming. However, I find that a fairly arrogant assumption because
> it implies only mathematicians have the skills/discipline for that type of
> thinking. This simply isn't true - there are many many areas of study,
> work and life that require those sorts of skills and which are done by
> people who have little maths skill. 

Indeed. In fact I would say that what I am best at is writing, and in order
to argue a point well in writing you definitely need to be able to think
logically. Several other things come into language that are associated with
maths, too, e.g. recursion is necessary for things like "The man who I saw
who went into the bookshop that's beside the old statue that they put up in
1889," or the (in)famous "What did you bring that book that I didn't want
to be read to out of up for?!"/"This is nonsense up with which I shall not
put."

Jeff
From: Tim X
Subject: Re: Dumbing down?
Date: 
Message-ID: <87zm3t5xxz.fsf@lion.rapttech.com.au>
Barry Margolin <······@alum.mit.edu> writes:

> In article <··························@stablecross.com>,
>  ····@stablecross.com (Bob Felts) wrote:
>
>> Jeff Rollin <··············@gmail.com> wrote:
>> 
>> > A friend (who should know better than I) and myself both agree that an
>> > understanding of maths is necessary to be able to program.
>> > 
>> > So why do so many introductory textbooks insist that it isn't?
>> > 
>> 
>> Probably because it isn't.  The ability to write well is far more
>> important than knowledge of mathematics.
>
> However, the kind of logical and precise thinking that you learn when 
> writing mathematical proofs is very similar, IMHO, to what you do when 
> programming.
>
> So while you don't need to know things like calculus or differential 
> equations (unless the applications you're writing happen to involve 
> them), other areas of mathematics provide a good foundation for the 
> thought processes required.
>

True, but math skill is not the only way of developing/having that type of
disiplin re: thinking/expression.

Tim

> -- 

-- 
tcross (at) rapttech dot com dot au
From: Cor Gest
Subject: Re: Dumbing down?
Date: 
Message-ID: <87wsyxooy2.fsf@telesippa.clsnet.nl>
> A friend (who should know better than I) and myself both agree that an
> understanding of maths is necessary to be able to program.
> So why do so many introductory textbooks insist that it isn't?

It just depends on your definition of what 'maths' entails.

Some functions one programs and thinks of as 'mere logical stuff' some bloke
may have a strange mathematical name for that procedure, I never heard of
either, but then again what is in a name anyway.
To write, basic knowledge of the alfabet is sufficient, masterpieces is
another story.

Cor


-- 
	 (defvar MyComputer '((OS . "GNU/Emacs") (IPL . "GNU/Linux"))) 
The biggest problem LISP has, is that it does not appeal to dumb people
If that fails to satisfy you, start reading the HyperSpec or woman frig
			 mailpolicy @ http://www.clsnet.nl/mail.php
From: Jens Teich
Subject: Re: Dumbing down?
Date: 
Message-ID: <f3566e$too$00$1@news.t-online.com>
Jeff Rollin wrote:
> A friend (who should know better than I) and myself both agree that an
> understanding of maths is necessary to be able to program.
>
> So why do so many introductory textbooks insist that it isn't?

Or they excuse, like the elisp tutorial I just had a glance at:

| Some people dislike examples using arithmetic; however, if
| you are such a person, do not despair.  Hardly any of the code we will
| study in the remainder of this introduction involves arithmetic or
| mathematics.  The examples mostly involve text in one way or another.

The example introduced with this excuse is

|     (defun multiply-by-seven (number)
|       "Multiply NUMBER by seven."
|       (* 7 number))

So the rest is more about text. Hm. My friend and I agree that you have
to be a poet to learn elisp :)

-Jens 
From: Ant
Subject: Re: Dumbing down?
Date: 
Message-ID: <1180093392.894956.315740@k79g2000hse.googlegroups.com>
On 24 May, 20:44, Jeff Rollin <··············@gmail.com> wrote:
> A friend (who should know better than I) and myself both agree that an
> understanding of maths is necessary to be able to program.
>
> So why do so many introductory textbooks insist that it isn't?

I think it entirely depends on what context you are programming in. In
my first job, the work was intensely mathematical - which was to be
expected in a post-doc research post in theoretical computer science.

My last three jobs however in the "Real World" of professional
software development, there has been practically no mathematical
content at all. Arithmetic and financial at best.

Since the majority of people learning from introductory textbooks will
be in the latter camp, I think it's a reasonable standpoint.

--
Ant...

http://antroy.blogspot.com/
From: Timofei Shatrov
Subject: Re: Dumbing down?
Date: 
Message-ID: <46567fd1.3958652@news.readfreenews.net>
On Thu, 24 May 2007 20:44:47 +0100, Jeff Rollin <··············@gmail.com> tried
to confuse everyone with this message:

>A friend (who should know better than I) and myself both agree that an
>understanding of maths is necessary to be able to program.
>
>So why do so many introductory textbooks insist that it isn't?
>

Because the authors of those textbooks don't understand math?

I mean, what do they use to illustrate recursion? Fibonacci numbers. And if a
person has an understanding of math, he certainly won't be using recursion to
calculate them.

Why don't these introductory textbooks include examples how to draw stuff on the
screen? I mean, it's pretty and fun and all that. Well, the fact is that to
simply rotate an object on the screen you have to know either trigonometry or
complex numbers, and you can't expect an introductory textbook author to know
that stuff, much less be able to explain it to the reader.

Simple fact: programming that doesn't involve math tends to be boring.

-- 
|Don't believe this - you're not worthless              ,gr---------.ru
|It's us against millions and we can't take them all... |  ue     il   |
|But we can take them on!                               |     @ma      |
|                       (A Wilhelm Scream - The Rip)    |______________|
From: Thomas F. Burdick
Subject: Re: Dumbing down?
Date: 
Message-ID: <1180077271.462857.162580@r19g2000prf.googlegroups.com>
On May 25, 8:34 am, ····@mail.ru (Timofei Shatrov) wrote:
> On Thu, 24 May 2007 20:44:47 +0100, Jeff Rollin <··············@gmail.com> tried
> to confuse everyone with this message:
>
> >A friend (who should know better than I) and myself both agree that an
> >understanding of maths is necessary to be able to program.
>
> >So why do so many introductory textbooks insist that it isn't?
>
> Because the authors of those textbooks don't understand math?

Yes, I'm sure that must be it...

> I mean, what do they use to illustrate recursion? Fibonacci numbers. And if a
> person has an understanding of math, he certainly won't be using recursion to
> calculate them.

Fibonacci numbers are a really crappy way to illustrate recursion.
Pascal's triangle is a pretty good one, and is what I've seen as an
example explaining recursion to those who don't yet get the concept.
It is math, but it's math in the same sense that playing with blocks
is.
From: Timofei Shatrov
Subject: Re: Dumbing down?
Date: 
Message-ID: <4656a938.14558273@news.readfreenews.net>
On 25 May 2007 00:14:31 -0700, "Thomas F. Burdick" <········@gmail.com> tried to
confuse everyone with this message:


>> I mean, what do they use to illustrate recursion? Fibonacci numbers. And if a
>> person has an understanding of math, he certainly won't be using recursion to
>> calculate them.
>
>Fibonacci numbers are a really crappy way to illustrate recursion.
>Pascal's triangle is a pretty good one, and is what I've seen as an
>example explaining recursion to those who don't yet get the concept.
>It is math, but it's math in the same sense that playing with blocks
>is.
>

I'd say calculating binomial coefficients has much more to do with math than
playing with blocks. And I'm not sure that using recursion is the best way to
generate them either.

-- 
|Don't believe this - you're not worthless              ,gr---------.ru
|It's us against millions and we can't take them all... |  ue     il   |
|But we can take them on!                               |     @ma      |
|                       (A Wilhelm Scream - The Rip)    |______________|
From: Andrew Reilly
Subject: Re: Dumbing down?
Date: 
Message-ID: <pan.2007.05.25.01.47.46.291236@areilly.bpc-users.org>
On Thu, 24 May 2007 20:44:47 +0100, Jeff Rollin wrote:

> So why do so many introductory textbooks insist that it isn't?

Jacquard's cards originated in the weaving industry.  There might have
been arithmetic involved, but I doubt that there was much "math".

Programming is one of those things where the patterns and designs get more
interesting when you look at them through the lens of mathematics, but
there isn't any obvious need to start from that perspective if all you
want is some code.

IMO, YMMV, etc...

-- 
Andrew
From: Alex Mizrahi
Subject: Re: Dumbing down?
Date: 
Message-ID: <4656b1aa$0$90265$14726298@news.sunsite.dk>
(message (Hello 'Jeff)
(you :wrote  :on '(Thu, 24 May 2007 20:44:47 +0100))
(

JR> A friend (who should know better than I) and myself both agree that an
JR> understanding of maths is necessary to be able to program.

JR> So why do so many introductory textbooks insist that it isn't?

i think there are different kinds of programming, and also different kinds
of math.
it's quite possible that some (primitive) kinds of programming do not
require math skills at all.
but most (even basic) programming requires at least basic math
understanding.

in our culture math is being learned from early childhood, so typically when
person faces programming, he already has many years of math training behind,
and might not require additional training. but that does not mean that
programming does not require math skills. some research i've read of
indicates that people in other culture that do not have school learning like
ours are not able to do even simple logical conclusions (syllogisms)! i
don't know if there was such reasearch about programming abilities, but most
likely without school learning and technical culture it would be very
difficult to start programming.

certainly, math skills here is not just abilities to multiply -- it's more
about a way of thinking, doing logical conclusions, manipulating abstract
constructs etc.

more complex programming tasks require more abilities in manipulating those
abstract constucts and logical conclusions -- mathematical way of thinking.
even if programmer rarely uses calculus directly, mind-bending proofs of
theorems in calculus might be very helpful for proper understanding
programming constructs.

so i think math education is very important for highly-qualified
programmers.

but maybe if person does programming he aquires that skills automatically,
and eventually he'll also have good understanding of mathematical constucts?
while it's true to some extent, current programming practices are very
different from mathematics practices.

so it's quite possible that poor reliability of software we are currently
facing comes from dominations of "engineering" practices rather than
mathematics. most people nowadays are in threat of being hacked today, with
extremely bad possible consequences -- and actually there's no real reason
for such a bad situation except bad software developement practices.

mechanisms that are constructed by engineers simply cannot work in _all_
circumstances -- there always can be some defects on physical level, that
couldn't be tested. so they constuct stuff that works in _most_ situations.

but algorithms are not like mechanisms. they have 100% repeatability, so
they come from abstract mathematics world. and in the world of mathematical
proofs there is no word "most". either proof is correct in absolutely all
cases, or we can say that there exists some cases where it is true, but if
one finds "almost correct" in math book most likely he will laugh.

so if software development will use more formal math approach, rather than 
experimental/practical approach, i believe that software would be much more 
reliable and will not bring its users under threat.

there are lots of examples.. Intel released their chip with FDIV fault, 
because they didn't use formal testing. AMD was using ACL2 (A Computational 
Logic Applicative Common Lisp), and it have found some glitches (minor, i 
think) that megatons of tests were not able to find..

...

i adhere to an "elistist" approach of software development (also i've seen 
few people expressed it) -- there should be a few highly-qualified 
programmers, who will do low-level stuff and implement DSL for particular 
domain, which will be very easy to use (maybe it can be graphical), it 
should be hard to make bugs that don't belong to a problem domain, it should 
be testable etc. then less skilled programmers can use it to build the final 
solution -- or maybe they won't be even called programmers, it can look more 
like configuration..

certainly, with such approach only lead developers actually need good math 
and programming skills. 'configurators' might need only skills in the 
problem's domain with only basic skills in programming and math.

but typically another approach is used -- they throw more medium-skilled 
programmers on the problem. even if there are some highly skilled 
programmers there, they will not have enough power to rule horde of 
medium-skilled programmers, as it's harder to control person that has own 
opinion..
as a result of this aproach comes a horde of crappy software out there..

so to answer your question, most likely this were books for these 
medium-skilled programmers, they don't really need much math indeed..
this approach dominates industry, and there is no escape, as OS, programming 
tools and languages are based on this approach, and in some cases even 
hardware and protocols are. so if one has enlightment and tries to do the 
other way, he'll got many problems..

)
(With-best-regards '(Alex Mizrahi) :aka 'killer_storm)
"I am everything you want and I am everything you need")
From: George Neuner
Subject: Re: Dumbing down?
Date: 
Message-ID: <kemf535np5n8qsmoid9pqbqv7agcblpm6h@4ax.com>
On Fri, 25 May 2007 12:51:32 +0300, "Alex Mizrahi"
<········@users.sourceforge.net> wrote:

>so i think math education is very important for highly-qualified
>programmers.

I think engineering training is more important.

>so it's quite possible that poor reliability of software we are currently
>facing comes from dominations of "engineering" practices rather than
>mathematics. most people nowadays are in threat of being hacked today, with
>extremely bad possible consequences -- and actually there's no real reason
>for such a bad situation except bad software developement practices.

Um, No!  The poor reliability of most software is because the authors
have _neither_ math nor engineering skills.  Too many self taught VB
programmers found gainful employment during the dot-bomb era when
nearly anyone who could type called himself a programmer.

>mechanisms that are constructed by engineers simply cannot work in _all_
>circumstances -- there always can be some defects on physical level, that
>couldn't be tested. so they constuct stuff that works in _most_ situations.

Mechanisms constructed by mathematicians don't work at all - they are
abstract.

>but algorithms are not like mechanisms. they have 100% repeatability, so
>they come from abstract mathematics world. and in the world of mathematical
>proofs there is no word "most". either proof is correct in absolutely all
>cases, or we can say that there exists some cases where it is true, but if
>one finds "almost correct" in math book most likely he will laugh.

Those repeatable algorithms are connected to real world processes
which don't share that desirable feature.  Mathematics is about
knowing all the preconditions ... engineering is about making things
work when the preconditions are uncertain.

>so if software development will use more formal math approach, rather than 
>experimental/practical approach, i believe that software would be much more 
>reliable and will not bring its users under threat.

I worked many years implementing real time, high performance and high
availability systems - designing and implementing them is an
engineering discipline, not a mathematical one.  Mathematics is a tool
for an engineer not a replacement for one.

>there are lots of examples.. Intel released their chip with FDIV fault, 
>because they didn't use formal testing. 

Please take the trouble to learn history before you misreport it ...
Intel formally proved the chip design - it was an uncaught
manufacturing defect (damn that real world again) that caused the FDIV
problem.

>i adhere to an "elistist" approach of software development (also i've seen 
>few people expressed it) -- there should be a few highly-qualified 
>programmers, who will do low-level stuff and implement DSL for particular 
>domain, which will be very easy to use (maybe it can be graphical), it 
>should be hard to make bugs that don't belong to a problem domain, it should 
>be testable etc. then less skilled programmers can use it to build the final 
>solution -- or maybe they won't be even called programmers, it can look more 
>like configuration.

I've seen plenty of software handed down from the ivory tower - much
of it so bad and unreliable it gave me chills.  I've also seen people
badly hurt by programmable mechanisms.  There is no way I would EVER
entrust control of any mechanical system to software written by far
off "experts" who know it only abstractly.

Where will these elite super programmers acquire the domain knowledge
necessary to design all these DSLs?  Are they supposed to be MBAs,
buyers, salesmen, accountants, business process experts, physicists,
chemists, biologists, electrical, chemical and mechanical engineers
(to name a few) in _addition_ to being mathematicians and �ber
programmers.  You must be smoking crack if you really think some
handful of experts somewhere can handle all the dirty programming
required for everything that goes on in the world.

How does the fact that you wrote a formally verified driver for X
connected via Y to Z help me 6 months later when part X is superseded
by part W which works slightly differently.  What happens when Y or Z
is no longer fast enough for my purpose and I need to replace them
with Q and R?  Am I supposed to wait for you to learn all about my new
hardware and deliver me a new formally verified driver?  How many
years will I sit in your queue?

George
--
for email reply remove "/" from address
From: Joe Marshall
Subject: Re: Dumbing down?
Date: 
Message-ID: <1180207729.603984.130260@z28g2000prd.googlegroups.com>
On May 26, 1:01 am, George Neuner <·········@comcast.net> wrote:
>
> Um, No!  The poor reliability of most software is because the authors
> have _neither_ math nor engineering skills.  Too many self taught VB
> programmers found gainful employment during the dot-bomb era when
> nearly anyone who could type called himself a programmer.

But later:

> I've seen plenty of software handed down from the ivory tower - much
> of it so bad and unreliable it gave me chills.

So where do the good programmers come from?


> There is no way I would EVER
> entrust control of any mechanical system to software written by far
> off "experts" who know it only abstractly.

That's becoming increasingly harder and harder these days.  Scary,
ain't it?
From: George Neuner
Subject: Re: Dumbing down?
Date: 
Message-ID: <e17i53l2brqclmgrt92if5vc1giuored5b@4ax.com>
On 26 May 2007 12:28:50 -0700, Joe Marshall <··········@gmail.com>
wrote:

>On May 26, 1:01 am, George Neuner <·········@comcast.net> wrote:
>>

>> I've seen plenty of software handed down from the ivory tower - much
>> of it so bad and unreliable it gave me chills.
>
>So where do the good programmers come from?

It's not really "programming" that concerns me so much as software
system engineering.  Programming is a significant part of that but not
the whole.  Sometimes I think engineers are just born and people who
don't have the "knack" (to misquote Dilbert) can never really learn to
be one.

But the most important attributes I have seen in people who, in my
estimation, were (or became) good software engineers have been
attention to detail and the ability to abstract at multiple levels.
The most glaring deficiency I've seen in people who were otherwise
technically competent programmers was the inability to see how pieces
fit together and predict how changes would affect the system.

More to the point of this sub-thread, I have not seen that mathematics
beyond the minor degree that most CS or engineering degrees require is
a highly desirable trait (other than for writing math software).  If
anything my experience has been that more mathematical people are more
literal minded and thus have more trouble dealing with the imprecision
typical of customer relations and requirements gathering.  They also
are more likely to get bogged down in details during development.

Again this has been my experience ... YMMV.


>> There is no way I would EVER
>> entrust control of any mechanical system to software written by far
>> off "experts" who know it only abstractly.
>
>That's becoming increasingly harder and harder these days.  Scary,
>ain't it?

Hopefully I won't live to see Alex's ideal world come to fruition.

George
--
for email reply remove "/" from address
From: fireblade
Subject: Re: Dumbing down?
Date: 
Message-ID: <1180531420.962684.292940@q75g2000hsh.googlegroups.com>
On May 26, 9:28 pm, Joe Marshall <··········@gmail.com> wrote:
> On May 26, 1:01 am, George Neuner <·········@comcast.net> wrote:
>
>
>
> > Um, No!  The poor reliability of most software is because the authors
> > have _neither_ math nor engineering skills.  Too many self taught VB
> > programmers found gainful employment during the dot-bomb era when
> > nearly anyone who could type called himself a programmer.
>
> But later:
>
> > I've seen plenty of software handed down from the ivory tower - much
> > of it so bad and unreliable it gave me chills.
>
> So where do the good programmers come from?
>
> > There is no way I would EVER
> > entrust control of any mechanical system to software written by far
> > off "experts" who know it only abstractly.
>
> That's becoming increasingly harder and harder these days.  Scary,
> ain't it?

Do you believe in fairy tales? What was that story about people
believing  that their world is nice and safe and that every program
works correctly, when they were woken up and seen themselves in dirty
place full of junk and realising that everything was only a illusion ,
strange thing happened ,people  wanted to go back to previous
state .Ignorance is bliss, sometimes.
From: Alex Mizrahi
Subject: Re: Dumbing down?
Date: 
Message-ID: <465d5bcd$0$90262$14726298@news.sunsite.dk>
(message (Hello 'George)
(you :wrote  :on '(Sat, 26 May 2007 04:01:42 -0400))
(

 GN> Please take the trouble to learn history before you misreport it ...
 GN> Intel formally proved the chip design - it was an uncaught
 GN> manufacturing defect (damn that real world again) that caused the FDIV
 GN> problem.

according to BYTE:

---http://www.byte.com/art/9503/sec13/art1.htm---
So far, so good. But here is where things went horribly wrong. An engineer 
prepared the lookup table on a computer and wrote a script in C to download 
it into a PLA (programmable logic array) for inclusion in the Pentium's FPU. 
Unfortunately, due to an error in the script, five of the 1066 table entries 
were not downloaded. To compound this mistake, nobody checked the PLA to 
verify the table was copied correctly.
---

arguable a "manufacturing" defect.

)
(With-best-regards '(Alex Mizrahi) :aka 'killer_storm)
"I am everything you want and I am everything you need") 
From: George Neuner
Subject: Re: Dumbing down?
Date: 
Message-ID: <megr539745fr2l9ksp06di13ib2tfqdt0k@4ax.com>
On Wed, 30 May 2007 14:11:06 +0300, "Alex Mizrahi"
<········@users.sourceforge.net> wrote:

Something strange with your last post - most of it refused to quote
and disappeared from the reply.


>http://www.byte.com/art/9503/sec13/art1.htm
> So far, so good. But here is where things went horribly wrong.
> An engineer prepared the lookup table on a computer and wrote
> a script in C to download it into a PLA (programmable logic array)
> for inclusion in the Pentium's FPU. Unfortunately, due to an
> error in the script, five of the 1066 table entries were not
> downloaded. To compound this mistake, nobody checked the PLA 
> to verify the table was copied correctly.


The explanation of how the flawed table got into the chip doesn't jibe
with the manufacturing process.  

At the time, I was working in diagnostic imaging, some of which was
using Pentium based systems, and the company I worked for was
extremely concerned about the problem.  The explanation I heard at the
time (which my manager got straight from the Intel rep) was that the
error had been made in lithography.

Which makes more sense than that Byte article.  The FPU tables on the
Pentium were photo-masked ROMs.  I don't recall whether the ROMs were
vertical or horizontal (it makes a difference to the masking process),
but it's possible that the table could have been laid down in one
mask.  The lithography machines are programmed straight from the
design database with a raster or vector drawing produced by a CAD
system from the detail design, not with some random file of bytes
copied by "a script in C".

It's just barely possible that the CAD system rendered the mask
drawing incorrectly or the lithography machine hiccuped while
transcribing the mask onto the resist material, but the most likely
explanation is that the table data was not correct to begin with and
no one noticed.

Even if the felgercarb about a C script were true, the story strains
credibility.  I can imagine someone writing out a spreadsheet table as
an ASCII file and hacking a quick program to read it and burn a PLA -
but reasonably predictable coding errors don't explain how _five_
elements were missed on a regularly formatted file.  Loop termination
errors don't explain it.  Neither does C's dumb ass I/O unless the
input data itself was bad.[1]  Line length might explain it, but I
can't imagine anyone futzing with reading lines and parsing strings in
a quick hack - far more likely to just scanf each element.

[1] C's raw string to numeric conversion functions return zero if the
input is bad.  Few people use them directly - they are more often used
indirectly through the scanf function.  The "ato.." family of
functions just return zero for bad input, the "strto.." family also
return an error code and optionally return the character that
terminated the conversion.  scanf uses the "strto.." functions and can
determine from them whether input was successful but the programmer
still has to check the return value from scanf.


> arguable a "manufacturing" defect.

But not a lack of formal methods either.  If you and I both check
something, fail to notice that it's wrong and sign off on it, then the
failure is because we're both blind - not because we didn't check.

George
--
for email reply remove "/" from address
From: D Herring
Subject: Re: Dumbing down?
Date: 
Message-ID: <QtKdnfdlr4x4hsTbnZ2dnUVZ_hOdnZ2d@comcast.com>
Jeff Rollin wrote:
> A friend (who should know better than I) and myself both agree that an
> understanding of maths is necessary to be able to program.
> 
> So why do so many introductory textbooks insist that it isn't?

Analogy:
An understanding of math is required to build skyscrapers.

Argument:
Without math, the design and analysis will surely fail.

Except most of the workers in the project really aren't designing 
things...  They're building them.

Its a similar issue with "programming"; there are those who design 
frameworks, and those who use them.  This is institutionalized in many 
languages which actively discourage the workers from getting too creative.

At least that's my take.
- DH
From: Jeff Rollin
Subject: Re: Dumbing down?
Date: 
Message-ID: <CYydnTObyrF8zsTbRVnyhgA@pipex.net>
In the last episode, on Sunday 27 May 2007 06:50, D Herring wrote:


> Its a similar issue with "programming"; there are those who design
> frameworks, and those who use them.  This is institutionalized in many
> languages which actively discourage the workers from getting too creative.
> 
Interesting. Care to expand?

Jeff
From: fireblade
Subject: Re: Dumbing down?
Date: 
Message-ID: <1180530734.749906.323000@k79g2000hse.googlegroups.com>
On May 27, 7:50 am, D Herring <········@at.tentpost.dot.com> wrote:
> Jeff Rollin wrote:
> > A friend (who should know better than I) and myself both agree that an
> > understanding of maths is necessary to be able to program.
>
> > So why do so many introductory textbooks insist that it isn't?
>
> Analogy:
> An understanding of math is required to build skyscrapers.
>
> Argument:
> Without math, the design and analysis will surely fail.
>
> Except most of the workers in the project really aren't designing
> things...  They're building them.
>
> Its a similar issue with "programming"; there are those who design
> frameworks, and those who use them.  This is institutionalized in many
> languages which actively discourage the workers from getting too creative.
>
> At least that's my take.
> - DH

yes big ball of mud is very hard to design, that's why it's dominant
http://www.laputan.org/mud/mud.html I've never even see an example of
a good architecture in my life books don't count
From: Xah Lee
Subject: Re: Dumbing down?
Date: 
Message-ID: <1180265259.062426.218470@d30g2000prg.googlegroups.com>
The Condition of Industrial Programers

Xah Lee, 2006-05

Before i stepped into the computing industry, my first industrial
programing experience is at Wolfram Research Inc as a intern in 1995.
(Wolfram Research is famously known for their highly successful
flagship product Mathematica) I thought, that the programers at
Wolfram are the world's top mathematicians, gathered together to
research and decide and write a extremely advanced technology. But i
realized it is not so. Not at all. In fact, we might say it's just a
bunch of Ph Ds (or equivalent experience). The people there, are not
unlike average white-collar Joes. Each working individually. And,
fights and bouts of arguments between co-workers are not uncommon.
Sometimes downright ugly in emails. Almost nothing is as i naively
imagined, as if some world's top mathematicians are gathered together
there, daily to confer and solve the world's top problems as in some
top secret government agency depicted in movies.

Well, that was my introduction to the industry. The bulk of my
surprise is due to my naiveness and inexperience of the industry, of
any industry, as i was just a intern and this is my first experience
seeing how the real world works.

After Wolfram, after a couple of years i went into the web programing
industry in 1998, using unix, Perl, Apache, Java, database
technologies, in the center of world's technology the Silicon Valley.
My evaluation of industrial programers and how software are written is
a precipitous fall from my observations at Wolfram. In the so-called
Info Tech industry, the vast majority of programers are poorly
qualified. I learned this from my colleagues, and in dealing with
programers from other companies, service providers, data centers, sys
admins, API gateways, and duties of field tutoring. I didn't think i
had very qualified expertise in what i do, but the reality i realized
is that most are far lesser than me, and that is the common situation.
That they have no understanding of basic mathematics such as
trigonometry or calculus. Most have no interest in math whatsoever,
and would be hard pressed for them to explain what is a “algorithm”.

I have always thought, that programing X software of field Y usually
means that the programers are thoroughly fluent in languages,
protocols, tools of X, and also being a top expert in field of Y. But
to my great surprise, the fact is that that is almost never the case.
In fact, most of the time the programers simply just had to learn a
language, protocol, software tool, right at the moment as he is trying
to implement a software for a field he never had experience in. I
myself had to do jobs half of the time i've never done before.
Constantly I'm learning new languages, protocols, systems, tools,
APIs, other rising practices and technologies, reading semi-written or
delve into non-existent docs. It is the norm in the IT industry, that
most products are really produces of learning experiences. Extremely
hurried grasping of new technologies in competition with deadlines.
There is in fact little actual learning going on, as there are immense
pressure to simply “get it to (demonstrably) work” and ship it.

Thinking back, in fact the Wolfram people are the most knowledgeable
and inquisitive people i've met as colleagues, by far.

What prompted me to write this essay is after reading the essay Teach
Yourself Programming in Ten Years by Peter Norvig, 2001, at
http://www.norvig.com/21-days.html. In which, the LISP dignitary Peter
Norvig derides the widely popular computing books in the name of
Teaching Yourself X In (Fast) Days. Although i agree with his
sentiment that a language or technology takes time to master and use
well, that these books form somewhat of a damaging fad and subtly
multiply ignorance, but he fails to address the main point, that is:
the cause of the popularity of such books, and how to remedy the
situation.

When you work in the industry, and are given a responsibility of
coding in some new language the company decided to use, or emerging
protocol (such as voice-chat protocols or cellphone internet), or your
engineering group adopted a new team coding/reviewing process, you are
not going to tell you boss “nah, i want to do a good job so i'll study
the issue a few months before i contribute”. Chances are, you are
going to run out and buy a copy of “XYZ in 7 days”, and complete the
job in a way satisfactorily to your company, as well feeling proud of
your abilities in acquiring new material.

To see this in a different context, suppose you need to pass a
important Math XYZ exam or review in your career or get a certificate,
but you don't remember your Math XYZ. You will likely, run out and get
a “Math XYZ for Dummies”. Chances are, the book will indeed help you,
and you will pass your exam or interview, and actually have learned
something, but never looked at Math XYZ squarely again.

These books are the bedrock of the industry. It is not because people
are impatient, or that they wish to hurry, but rather, it is the
condition of the IT industry, in the same way modern society drives
people to live certain live styles. No amount of patience or
proselytization can right this, except that we change the industry's
practice of quickly churning out bug-ridden software products to beat
competitors. Companies do that due to market forces, and the market
forces is a result of how people and organizations actually choose to
purchase software. In my opinion, a solution to this is by installing
the concept of responsible licenses. Please see this essay Responsible
Software Licensing and spread the word, at
http://xahlee.org/UnixResource_dir/writ/responsible_license.html .

----
The above is archived at:
http://xahlee.org/UnixResource_dir/writ/it_programers.html

  Xah
  ···@xahlee.org
∑ http://xahlee.org/



On May 24, 12:44 pm, Jeff Rollin <··············@gmail.com> wrote:
> A friend (who should know better than I) and myself both agree that an
> understanding of maths is necessary to be able to program.
>
> So why do so many introductory textbooks insist that it isn't?
>
> Jeff
From: Xah Lee
Subject: Re: Dumbing down?
Date: 
Message-ID: <1180265387.918764.29280@i38g2000prf.googlegroups.com>
IT Industry Predicament

Xah Lee, 200207

As most of you agree, there are incredible wrongs in software
industry. Programs crash, injurious tools, uninformed programers, and
decrepit education system. Over the years of my computing industry
experience since 1995, i have recently gradually come to realize the
cause and plan a solution. I wanted to write a cohesive account of my
thoughts one day. Here's a quick beginning:

• Most agree that computing industry has lots of problems, including:
extremely poor software quality, poorly qualified programers, and a
strayed education system. One final metric is the quality of today's
software, and consumer's experience with computers.

• In pretty much free market system of America, we can say that
software quality (or software related things) being the way it is is
out of natural selection. In other words: “driven by economy”, or, a
result that evolved naturally from competition.

• This naturally evolved result, does not mean it is the “best”
outcome. Simply put: “outcome” does not mean “desired outcome”. Think
of it this way: the solutions from genetic algorithms aren't best
solutions, but best outcome from a given set of criterions and gene
pool and the coupling environment.

• We can see now that the state of software or industry is not
determined by idiotic and simplistic expectations such as quality of
design or intelligence of programers. How things come to be in society
do not have simplistic explanations, but sensible understanding is not
impossible. In a commercial software world, software's popularity or
trend is determined by the choices consumer makes. How consumer ends
up purchasing a software has a myriad of factors among them awareness,
but most responsible being the price/performance ratio, or just price.
Also, the majority of consumers are morons with respect to evaluating
software for their own good. This is why, the inept and FREE unixes
and Perl and C are everywhere. It is also why, the fucking incompetent
unixes though free but has little place to stand in comparison to a
charging Microsoft when performance also enters the equation. This
also explains, the exorbitantly priced fashion-statement Apple
software/hardware combo are no more populous than those affluent. (not
because some fucking fashionable chant about how good-things-are-
always-unpopular fucking fuck chant loved by vain above-it geeks.)

• The reason fucking languages like C and family mask technically
superior ones like lisp are in large part due to the unix phenomenon
as explained above. C + Unix, incompetence + irresponsibility
bootstrapping each other freely. The unix things teach programers to
unthink. With their greed-based speed-based freely-distributable
popularity-based iconoclastic irresponsibilities spreading like
corruption do.

Solution: Understand and spread the word that writing bug-free
software is not difficult at all, and quality software can be as
intuitive as extra hands. When good programers understand this and
catch on, good software with responsible licenses will emerge.
Eventually software vendors will compete for more responsible
software, one's that offer to be penalized for every bug or crash or
misfeature. In turn, this will eliminate all fucking fashions and
idiots in the software industry such as the Design Patterns and
eXtreme Programing or the TIMTOWTDI Perl fuck or the OOP fad or the
fucking “Universal Modeling Language” fuck.

Do you want software/industry to improve? Everyone want to be
millionaire when asked, but when they have to pay to be a millionaire,
they reconsider.

----
The above is archived at:
http://xahlee.org/UnixResource_dir/writ/it_predicament.html

  Xah
  ···@xahlee.org
∑ http://xahlee.org/

On May 24, 12:44 pm, Jeff Rollin <··············@gmail.com> wrote:
> A friend (who should know better than I) and myself both agree that an
> understanding of maths is necessary to be able to program.
>
> So why do so many introductory textbooks insist that it isn't?
>
> Jeff
From: Tim Josling
Subject: Re: Dumbing down?
Date: 
Message-ID: <1180336994.422321.36540@z28g2000prd.googlegroups.com>
On May 25, 5:44 am, Jeff Rollin <··············@gmail.com> wrote:
> A friend (who should know better than I) and myself both agree that an
> understanding of maths is necessary to be able to program.
>
> So why do so many introductory textbooks insist that it isn't?
>
> Jeff

This study is not specifically about maths but does have a lot of
insight into what determines programming ability. It seems to be the
ability to construct internal models and manipulate them mentally. It
is not the same thing as mathematical ability.

The Camel Has Two Humps:
http://www.cs.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf

Tim Josling