From: Arne Vajhøj on
On 12-03-2010 20:33, Martin Gregorie wrote:
> On Fri, 12 Mar 2010 20:02:01 -0500, Arne Vajhøj wrote:
>> Developers that google solutions and copy paste them and generally
>> consider the computer a black box may not use math.
>>
> No argument here.
>
>> But developers that like to understand what they are doing and why will
>> be thinking math every hour at work whether they realize it or not.
>>
> Here we diverge. Despite spending my working life in IT, I'm a scientist
> by training, not a mathematician.
>
> I work on the principle that a software design is a hypothesis from which
> true and false predictions can be made. Code written to implement the
> design is then exhaustively tested against the predictions to verify the
> correctness of the design.

I somehow doubt that you always test and never deduct.

Arne
From: BGB / cr88192 on

"Mike Schilling" <mscottschilling(a)hotmail.com> wrote in message
news:hne0tf$j0u$1(a)news.eternal-september.org...
> Patricia Shanahan wrote:
>> BGB / cr88192 wrote:
>> ...
>>> personally, I think many people overstate the role of math in
>>> programming in some ways:
>>> when ever was the last time programmers had to seriously invest time
>>> in things like solving polynomials or writing proofs.
>> ...
>>
>> I have rarely needed to solve a polynomial as a programmer, although I
>> have had to understand how to solve very large systems of linear
>> equations.
>> On the other hand, writing proofs seems to me to be a very practical
>> activity. For example, I sometimes debug by trying to construct a
>> proof that the problem could not possibly have happened, taking
>> things I think are true as the axioms. Given a valid proof of the
>> impossibility of something that has actually happened, at least one
>> axiom used in the proof must be false. It is a good way of selecting a
>> set of beliefs to
>> investigate.
>
> My degree (taken many, many years ago) is in mathematics. I don't use
> much of the math itself, but the discipline of writing proofs, that is,
> making sure each step follows logically from the previous ones and that no
> special cases are omitted, is something I still use every time I write a
> piece of code..

IMO, there is a bit of a difference here...

"one step follows logically from the previous one" is a bit different than
the sort of bizarre hybrid of predicate logic and set theory I have been
faced with on several occasions... (I barely understand the notational
aspects, much less how exactly this thing is supposed to work...).

granted, this may be because I am apparently too stupid to really grasp
set-theory...


my approaches are far more informal, but tend to work well enough.


>


From: BGB / cr88192 on

"bugbear" <bugbear(a)trim_papermule.co.uk_trim> wrote in message
news:wt2dnXBK3MLAhAfWnZ2dnUVZ8sxi4p2d(a)brightview.co.uk...
> BGB / cr88192 wrote:
>> personally, I think many people overstate the role of math in programming
>> in some ways:
>
> Try graphics programming (both 2D and 3D) sometime!
>

I have done both...

making use of vectors, matrices, and quats, is trivial vs the things I have
been faced with...

one can view the vector as a collection of values, and the operations as
operating on these values.
then they can "black box" the thing, and use these representations and
oparations as if they were basic operations.


but, I was faced with a case where vectors were defined in terms of a huge
mass of set notation and where calculations were nowhere to be found, and
this is not the math I am looking for...

one doesn't need to know much math to work with vectors, as in their basic
form, they are intuitively understandable...



> BugBear


From: BGB / cr88192 on

"Arne Vajh�j" <arne(a)vajhoej.dk> wrote in message
news:4b9ae401$0$275$14726298(a)news.sunsite.dk...
> On 11-03-2010 23:35, BGB / cr88192 wrote:
>> personally, I think many people overstate the role of math in programming
>> in
>> some ways:
>> when ever was the last time programmers had to seriously invest time in
>> things like solving polynomials or writing proofs.
>>
>> these are some of the core elements of traditional math:
>> they spend all ones' earlier years forcing off solving on people, and
>> then
>> later expect them to write proofs.
>>
>> but, usually the programmer has little need or reason to care:
>> it matters instead that things work, and that they can get the job done,
>> and
>> nearly all else is secondary.
>>
>> the more "advanced" programmer may find themselves messing with issues
>> which
>> are NOT matters of solving and/or proofs, but more a world often
>> consisting
>> of endless piles of repetition and boilerplate...
>>
>> so, it would seem there is a disconnect somewhere.
>>
>> to the worlds of C, C++, and Java, traditional Math is an alien
>> landscape,
>> neither sensible nor often particularly relevant... (and those few things
>> which are relevant are often those things Mathematicians like to sweep
>> into
>> the corners...).
>
> I completely disagree.
>
> Developers that google solutions and copy paste them and generally
> consider the computer a black box may not use math.
>

they probably don't use much of anything, FWIW...


> But developers that like to understand what they are doing and
> why will be thinking math every hour at work whether they
> realize it or not.
>

the aspects of math used in computers, however, is very different from what
one typically runs into in math classes...

"subtle" connections are not usually of much particular relevance, as
usually it is the overt details which matter in this case. in many respects,
comp-sci and math differ in terms of many of these overt details.


> Picking correct collection based on big O characteristics and
> using relational databases are extremely common. Both build
> on a strong mathematical foundation.
>

and neither are particularly math, FWIW...


this is about like arguing that someone has to understand convergence and
divergence to make use of things like the taylor series.

the taylor series works regardless of whether or not one understands
convergence...

one can think more simply "well, the denominator gets bigger faster, and
eventually the value of each term approaches 0", and leave it at that.


one probably doesn't really need to understand differentiation or integrals
either, FWIW...

after all, when one has a 'for' loop, it all becomes a little moot...


it is also far more useful to note that, for example, compound interest can
be implemented with a for loop, than to note that it can be modeled with an
exponential function.

....


> Arne


From: BGB / cr88192 on

"Tom Anderson" <twic(a)urchin.earth.li> wrote in message
news:alpine.DEB.1.10.1003122125300.9830(a)urchin.earth.li...
> On Fri, 12 Mar 2010, sl(a)my-rialto wrote:
>
>> Someone says if one does not know the difference between "equality" and
>> "equivalence", then one is an entry-level developer at best.
>>
>> What is your opnion?
>
> I think the person who said that is probably a prat.
>
>> (I think we should not talk about mathematical concepts, since it is the
>> software developer in question.)
>
> Only a fool closes the door on an idea.
>
> Mathematical concepts can be useful at times in software development, and
> so the wise programmer makes them a tool in his toolbox. Your dismissal is
> as misplaced as his elitism.
>

I guess one can clarify what they mean by "math".

there is a lot that is arguably math which I have noted is rather useful
(say: vectors, quaternions, matrices, ...).
similarly, nearly all manners of "calculating stuff" and "doing stuff" can
be useful with computers...


what is not so useful though is the sort of ultra-abstracting anti-reality
aspects of math, where one forsakes the thing being described for a big mass
of set notation or abstract logic.

IMO, this side of math is not particularly useful to the greater goods:
"make it work" and "get it done".


I would almost rather be stupid than live in that sort of "reality"...