Food for thought (Algorithm Complexity and R&D discoveries)
-
Undergrad C.S. is basically a Math degree so I don't get where he suggests most software developers do not have the match experience necessary to develop complex algorithms. Seems like a paper written by someone who needs to get published more than anything profound or thought provoking.
Need custom software developed? I do custom programming based primarily on MS tools with an emphasis on C# development and consulting. A man said to the universe: "Sir I exist!" "However," replied the universe, "The fact has not created in me A sense of obligation." --Stephen Crane
I don't consider what the company I work for does "complex algortihms" in the sense of the paper (paper? That's supposed to be a paper? Holy cow...) - largely it's clever application of standard signal processing. From my experiencem, the typical software developers does not have the experience to discuss these things at eye level with the engineers. And from some feeble attempts at a higher eh-duh-cajun I know that there are muhc harder problems.
Personally, I love the idea that Raymond spends his nights posting bad regexs to mailing lists under the pseudonym of Jane Smith. He'd be like a super hero, only more nerdy and less useful. [Trevel]
| FoldWithUs! | sighist | µLaunch - program launcher for server core and hyper-v server -
Browsing some mathematical packages like Sage and Maxima I found an interesting article on the complexity of R&D associated with algorithm development. It's a good read, but I don't know if I agree, I'm no Einstein but I can create complex algorithms and solve very complicated problems as if the answer was clearly written in the sky... Complex Algorithm Research and Development: Harder Than Many Think[^]
"Make everything as simple as possible, but not simpler." -- Albert Einstein
-
Ennis Ray Lynch, Jr. wrote:
3 years of math out of 4 is fairly close
Not when it's most of 3rd and all of 4th year that's missing. 1st year is basically an extension of highschool algebra and basic calculus. 2nd year extends that and adds some new concepts. 3rd and 4th year take it to a whole new level of abstraction and complexity. Those are the years that provide the tools for solving very complex problems. All years are not created equal. Cheers, Drew.
I don't mean to belittle a Math degree (math is hard work) but saying a CS grad doesn't have a math background, enough to plow through some complex algorithms is equally as unfair.
Need custom software developed? I do custom programming based primarily on MS tools with an emphasis on C# development and consulting. A man said to the universe: "Sir I exist!" "However," replied the universe, "The fact has not created in me A sense of obligation." --Stephen Crane
-
No, your right, Occam's Razor is the simplest anser is usually the right one. What am I thinking of? (It is getting on here, and I am letting my dimness shine forth! :) ) Oh yeah, reductionism.
------------------------------------ No Good Deed Goes Unpunished Clare Boothe Luce
Dalek Dave wrote:
No, your right,
Is that grammatically correct? Shouldn't it be "you're right"? Just asking to know. :)
“Follow your bliss.” – Joseph Campbell
-
Dalek Dave wrote:
the simplest answer of those that equally well explain the problem is usually the right one
FTFY
Personally, I love the idea that Raymond spends his nights posting bad regexs to mailing lists under the pseudonym of Jane Smith. He'd be like a super hero, only more nerdy and less useful. [Trevel]
| FoldWithUs! | sighist | µLaunch - program launcher for server core and hyper-v serverSadly, very few people pick that part up. Many of those people invoke Occam's Razor in the hopes that their "theory" will be given credibility. The same people should have invoked a psychiatrist... (No Dave, I'm not talking about you. :))
-- Kein Mitleid Für Die Mehrheit
-
Browsing some mathematical packages like Sage and Maxima I found an interesting article on the complexity of R&D associated with algorithm development. It's a good read, but I don't know if I agree, I'm no Einstein but I can create complex algorithms and solve very complicated problems as if the answer was clearly written in the sky... Complex Algorithm Research and Development: Harder Than Many Think[^]
"Make everything as simple as possible, but not simpler." -- Albert Einstein
TheArchitectmc∞ wrote:
I can create complex algorithms and solve very complicated problems as if the answer was clearly written in the sky...
Sky? Qantas! Qantas!! It's gotta be Qantas!!!
I wanna be a eunuchs developer! Pass me a bread knife!
-
Dalek Dave wrote:
No, your right,
Is that grammatically correct? Shouldn't it be "you're right"? Just asking to know. :)
“Follow your bliss.” – Joseph Campbell
Your right Rajesh* However, a lot of english speaking people do not care to do it right. (And I'm getting the feeling some americans don't even know how to do it right) *Place Sarcasm punctuation[^] here
-
Your right Rajesh* However, a lot of english speaking people do not care to do it right. (And I'm getting the feeling some americans don't even know how to do it right) *Place Sarcasm punctuation[^] here
Actually, I care very much and am ashamed for such an elementary mistake. I shall go stand in the corner and wear a dunce's hat.
------------------------------------ No Good Deed Goes Unpunished Clare Boothe Luce
-
Actually, I care very much and am ashamed for such an elementary mistake. I shall go stand in the corner and wear a dunce's hat.
------------------------------------ No Good Deed Goes Unpunished Clare Boothe Luce
Repent! for thou hast sinned!* You had poor Rajesh all confused :sigh: *Please Feel free to check the first line for errors. I haven't got a clue whether it even looks like english =]
-
I don't mean to belittle a Math degree (math is hard work) but saying a CS grad doesn't have a math background, enough to plow through some complex algorithms is equally as unfair.
Need custom software developed? I do custom programming based primarily on MS tools with an emphasis on C# development and consulting. A man said to the universe: "Sir I exist!" "However," replied the universe, "The fact has not created in me A sense of obligation." --Stephen Crane
Hmmm, I'm a CS student and I must say, my mates who are doing/have done B.Math DEFINATLY work harder than I have to! As for the math content I'm faced it, I consider myself lucky that I'm faced with so little COMPULSORY 'pure' math (Analytical Geometry in R2 and R3, Advanced Calculus - I don't deal as well with Calculus)... However, we do a LOT of Algorithmics/Discrete Maths (which I have NO problem with; I LIKE Discrete Maths... It just makes sense!). So while we can basically do the better part of a Maths Degree IF WE WANT TO (like a mate of mine did, then did 6 months after he finished CS to get his B.Math), the majority of students end up on a different path... As i said, all of us do a lot of Discrete Maths/Algorithmics, but then we add stuff like Electrical Engineering/Digital Systems, 3D Graphics, Distributed/Parallel Systems... Me, I lean more towards the Distributed?Parallel stuff at the moment. Thus I do have a few other things to contribute... :) I read this article as something that should get you considering your limits! For me, I'm into Exterior Ballistics (yes I'm a Target Shooter and NO I do not consider Exterior Ballistics as COMPLEX maths in any way, shape or form), so I'm pretty comfortable with much of that maths; on paper and in code. But If I was suddenly tasked with developing something heavy, (for arguments sake) an algorithm that was able to plan the tradjectory of a space craft from Low Earth Orbit, into a slingshot around the moon and then off to Mars, there is no way I could fudge my way through that; I would stand up and say "My Analysis of the Requirements leads me to recommend we bring in an Astrophysicist/Mathematician for the maths (and a Dr specialising in Aviation Medicine to verify that that the expected flight limits and possible flight loads are within Human Tolerance)". I think its naive to think that because we have been exposed to SOME University Level Maths and Algorithmics, that we can automatically scale that knowledge to Complex Algorithms. How many people have actually taken months or more to research, develop and PROVE a complex mathematical model? By this I mean something like i) starting with a General Concept (ie, lets develop a highly efficient, secure A/V compression scheme for Transmission across Public IP networks) and nothing more... Then ii) research the field and begin to develop a Mathematical Model; iii) write your Mathematical Algorithm and PROVE it. And do all of that before you code it... A 'Complex Algorithm' as defined by this artic
-
I have to disagree with you completely. It's not a good read. The topic is interesting, his style could be better. When he gets to the meat, most of his readers have been drowned in vague blabber. He isn't clearly identifying what a "complex algorithm" is, and a paragraph title of "Complex algorithms are difficult" (well, duh!) doesn't help. Second, the point is not to create a complex algorithm. Rather, implementing an algorithm of given complexity in a way that it's provably correct, avoids all the pitfalls and still outperforms a dead pig. Frankly, your attitude towards complexity collides with your sig.
Personally, I love the idea that Raymond spends his nights posting bad regexs to mailing lists under the pseudonym of Jane Smith. He'd be like a super hero, only more nerdy and less useful. [Trevel]
| FoldWithUs! | sighist | µLaunch - program launcher for server core and hyper-v serverPoint 1: Agreed! It's really not written that well - I think the guy has tried to be too Generic. Point 2: Agreed - with a small picky point. In this instance a 'complex' algorithm defines an algorithm of or beyond a given complexity (however what that level is, is not really clear!). So if you UNDERSTAND what you have modeled and proven and written it up in a logical and correct manner, your 'complex' algorithm shouldn't be that [i]complex[/i] to you or your target audience...
-
Complex algorithms? 1000 c/c++ lines? My last 'Hello World' took that many!
Opacity, the new Transparency.
Hmm, must have been in assembler on a Z80... Haha
"Make everything as simple as possible, but not simpler." -- Albert Einstein
-
Hmm, must have been in assembler on a Z80... Haha
"Make everything as simple as possible, but not simpler." -- Albert Einstein
-
I have to disagree with you completely. It's not a good read. The topic is interesting, his style could be better. When he gets to the meat, most of his readers have been drowned in vague blabber. He isn't clearly identifying what a "complex algorithm" is, and a paragraph title of "Complex algorithms are difficult" (well, duh!) doesn't help. Second, the point is not to create a complex algorithm. Rather, implementing an algorithm of given complexity in a way that it's provably correct, avoids all the pitfalls and still outperforms a dead pig. Frankly, your attitude towards complexity collides with your sig.
Personally, I love the idea that Raymond spends his nights posting bad regexs to mailing lists under the pseudonym of Jane Smith. He'd be like a super hero, only more nerdy and less useful. [Trevel]
| FoldWithUs! | sighist | µLaunch - program launcher for server core and hyper-v serverpeterchen wrote:
I have to disagree with you completely.
Okay cool, np. Sometime the write is not just attempting to write a technical assessment, you can clearly see that he has many degrees, I think that his intention is to provoke the reader to think about why developing complex algorithms is 'complex' work. And to show a short coming in the available tools and training of degree programs. It's kind of like the missing ingredient method. You put all the cards out on the table and you incite the subjects to make their own conclusions as to what cards are missing and why by describing the nature of the inherent problem. That was the effect it had on me, it made me question my preconceptions about algorithm complexity.
peterchen wrote:
He isn't clearly identifying what a "complex algorithm" is, and a paragraph title of "Complex algorithms are difficult" (well, duh!) doesn't help.
He has a PHD in CS, I think if he really wanted to write an article on Cyclomatic complexity[^] complexity he would have done just that. I think it's not the block of marble he is getting at but the methods of crafting a work of art and how the methods have not improved at the same rate at the builders chose their building medium.
peterchen wrote:
Frankly, your attitude towards complexity collides with your sig.
Hmm, I don't know, e=Mc^2 is okay until Einstein and Heisenberg had their little discussion on Quantum Mechanics, thus the Special Theory of Relativity and the new forms of relativity pertaining to different phenomena: STR Equations[^] So a single (simple equation) can not describe the 'unified theory' of relativity that Einstein was really looking for. Thus, as simple as possible, but no simpler.
"Make everything as simple as possible, but not simpler." -- Albert Einstein
-
Sadly, very few people pick that part up. Many of those people invoke Occam's Razor in the hopes that their "theory" will be given credibility. The same people should have invoked a psychiatrist... (No Dave, I'm not talking about you. :))
-- Kein Mitleid Für Die Mehrheit
Jörgen Sigvardsson wrote:
The same people should have invoked a psychiatrist...
Okay who needs the shrink, I know I need one! Geesh!
"Make everything as simple as possible, but not simpler." -- Albert Einstein
-
Dalek Dave wrote:
No, your right,
Is that grammatically correct? Shouldn't it be "you're right"? Just asking to know. :)
“Follow your bliss.” – Joseph Campbell
Dude, it's my right! ;)
-- Kein Mitleid Für Die Mehrheit
-
peterchen wrote:
I have to disagree with you completely.
Okay cool, np. Sometime the write is not just attempting to write a technical assessment, you can clearly see that he has many degrees, I think that his intention is to provoke the reader to think about why developing complex algorithms is 'complex' work. And to show a short coming in the available tools and training of degree programs. It's kind of like the missing ingredient method. You put all the cards out on the table and you incite the subjects to make their own conclusions as to what cards are missing and why by describing the nature of the inherent problem. That was the effect it had on me, it made me question my preconceptions about algorithm complexity.
peterchen wrote:
He isn't clearly identifying what a "complex algorithm" is, and a paragraph title of "Complex algorithms are difficult" (well, duh!) doesn't help.
He has a PHD in CS, I think if he really wanted to write an article on Cyclomatic complexity[^] complexity he would have done just that. I think it's not the block of marble he is getting at but the methods of crafting a work of art and how the methods have not improved at the same rate at the builders chose their building medium.
peterchen wrote:
Frankly, your attitude towards complexity collides with your sig.
Hmm, I don't know, e=Mc^2 is okay until Einstein and Heisenberg had their little discussion on Quantum Mechanics, thus the Special Theory of Relativity and the new forms of relativity pertaining to different phenomena: STR Equations[^] So a single (simple equation) can not describe the 'unified theory' of relativity that Einstein was really looking for. Thus, as simple as possible, but no simpler.
"Make everything as simple as possible, but not simpler." -- Albert Einstein
As you, I don't think the author discussed "cyclomatic complexity" as such - but he is very hazy, unfocused with the terms he uses. I don't get much more out of it than "lifting heavy objects - they are heavier than you think! Because it's amazing how heavy they are". Regarding the "missing card": If I understand the authors intention correctly, Robert Glass put it into one single sentence - which was the result of an actual study, not just musings: Fact 21 of 55[^]. Not to be misunderstood: I wasn't expecting a technical analysis. I think the author has a point, but unfortunately he's very bad at making it.
I still see a stark contrast between Einsteins demands for simplicity and your "complexity? Bring it on!" attitude which sounds a little bit on the arrogant side. Because what I learnt in my years as developer is this:: it is easy to solve a complex problem in a complex way, much much harder it is to solve a complex problem in a simple way. (exactly because you can't make it more simple than the minimum required to solve a problem).
Personally, I love the idea that Raymond spends his nights posting bad regexs to mailing lists under the pseudonym of Jane Smith. He'd be like a super hero, only more nerdy and less useful. [Trevel]
| FoldWithUs! | sighist | µLaunch - program launcher for server core and hyper-v server -
Point 1: Agreed! It's really not written that well - I think the guy has tried to be too Generic. Point 2: Agreed - with a small picky point. In this instance a 'complex' algorithm defines an algorithm of or beyond a given complexity (however what that level is, is not really clear!). So if you UNDERSTAND what you have modeled and proven and written it up in a logical and correct manner, your 'complex' algorithm shouldn't be that [i]complex[/i] to you or your target audience...
On Point 2 - let's assume there is a suitable measure of complexity. The problem is that this complexity is not alone, when you try to implement it you run into all kinds of other problems - e.g. memory footprint, performance, numerical limitations are complex issues by themselves that you have to solve, too. SOlving all of them requires a minimum of familiarity with the mathematical formalism, to be able to spell out equivalences, transform the problem, add validity checks etc. What i said is most software developers lack that kind of training - they are good enough on calculus, maybe they can do some linear algebra, but they usually suck at applied math. (I include myself in that - I've had a good chance to dabble in "real" math, but in practice I still suck at it. I regret that I didn't take this more serious)
Personally, I love the idea that Raymond spends his nights posting bad regexs to mailing lists under the pseudonym of Jane Smith. He'd be like a super hero, only more nerdy and less useful. [Trevel]
| FoldWithUs! | sighist | µLaunch - program launcher for server core and hyper-v server -
As you, I don't think the author discussed "cyclomatic complexity" as such - but he is very hazy, unfocused with the terms he uses. I don't get much more out of it than "lifting heavy objects - they are heavier than you think! Because it's amazing how heavy they are". Regarding the "missing card": If I understand the authors intention correctly, Robert Glass put it into one single sentence - which was the result of an actual study, not just musings: Fact 21 of 55[^]. Not to be misunderstood: I wasn't expecting a technical analysis. I think the author has a point, but unfortunately he's very bad at making it.
I still see a stark contrast between Einsteins demands for simplicity and your "complexity? Bring it on!" attitude which sounds a little bit on the arrogant side. Because what I learnt in my years as developer is this:: it is easy to solve a complex problem in a complex way, much much harder it is to solve a complex problem in a simple way. (exactly because you can't make it more simple than the minimum required to solve a problem).
Personally, I love the idea that Raymond spends his nights posting bad regexs to mailing lists under the pseudonym of Jane Smith. He'd be like a super hero, only more nerdy and less useful. [Trevel]
| FoldWithUs! | sighist | µLaunch - program launcher for server core and hyper-v serverpeterchen wrote:
I still see a stark contrast between Einsteins demands for simplicity and your "complexity? Bring it on!" attitude which sounds a little bit on the arrogant side. Because what I learnt in my years as developer is this:: it is easy to solve a complex problem in a complex way, much much harder it is to solve a complex problem in a simple way. (exactly because you can't make it more simple than the minimum required to solve a problem).
Sorry, I don't see my attitude as arrogant, I am just point out that even when simplicity in design has been discovered; IE. Relativity Theory, an unforeseeable event can occur which make a simple design become a complex design of individual components which all gravitate around a center point of interest. Surly 'Time Dilation Effect' can be explained using many different mathematical and algorithmic approaches, but it's discovery is usually not evident until the breakthrough of the principle 'Law' or 'Algorithm' has been discovered which in turn leads to other complexities in the original law. This is a feed-back effect. So while trying to arrive at a simple algorithm it may be found that other factors are adding to complexity which were originally out of scope for the application intended. Think about the simple transistors on a microchip, much of the chip is redundant because the of effects of quantum effects between layers in the sub straight. You never know it's happening but interference between instructions in the CPU causes problems that are usually filtered out using statistical methods built into the microchip. So yes the chip could be much smaller and faster, but the quality would be such that it would be unusable. :-\
"Make everything as simple as possible, but not simpler." -- Albert Einstein
-
Your right Rajesh* However, a lot of english speaking people do not care to do it right. (And I'm getting the feeling some americans don't even know how to do it right) *Place Sarcasm punctuation[^] here