Want to be a computer scientist? Forget Maths

<http://www.itwire.com.au/content/view/13339/53/>

By Stuart Corner
Thursday, 05 July 2007

Don't miss Roll your own Linux distro
and Microsoft's latest: blame Oprah Winfrey


A new book seeks to demolish the concept that computer science is rooted in mathematics and, in particular that the notion of the algorithm is fundamental to computer science.

In particular, he says the notion of the algorithm, "has been largely ineffective as a paradigm for computer science." Fant argues that, because mathematicians, notably John Von Neumann and Alan Turing, were intimately involved with the early development of digital electronic computers in the 1940s they transplanted a mathematical model of computation, including the algorithm - commonly understood to be an exact prescription, defining a computational process, leading from various initial data to the desired result - into the fledgling science of computers.

He claims that "What is essentially a discipline of pure mathematics has come to be called "the theory of computer science," and "the notion of the algorithm has been decreed to be a fundamental paradigm of computer science" However, he says this mathematical perspective "is the wrong point of view" and is asking the wrong questions.

"Mathematicians and computer scientists are pursuing fundamentally different aims, and the mathematician's tools are not as appropriate as was once supposed to the questions of the computer scientist. The primary questions of computer science are not of computational possibilities but of expressional possibilities. Computer science does not need a theory of computation; it needs a comprehensive theory of process expression."

This concept of 'process expression' is, he says, a common thread running through the various disciplines of computer science. "A logic circuit is an expression of a logical process; an architecture is an expression of a continuously acting process to interpret symbolically expressed processes; a program is a symbolic expression of a process; a programming language is an environment within which to create symbolic process expression; a compiler is an expression of a process that translates between symbolic process expressions in different languages; an operating system is an expression of a process that manages the interpretation of other process expressions; any application is an expression of the application process."

And, he argues, important process expressions do not qualify as algorithms. "A logic circuit is not a sequence of operations. An operating system is not supposed to terminate, nor does it yield a singular solution. An operating system cannot be deterministic because it must relate to uncoordinated inputs from the outside world. Any program utilising random input to carry out its process, such...is not an algorithm."

"The notion of the algorithm," he concludes "simply does not provide conceptual enlightenment for the questions that most computer scientists are concerned with."

Fant is the founder and CEO of Theseus Research, a consulting firm specialising in the design and implementation of real-time image processing systems as well as ongoing research into the theory of computers. "Computer Science Reconsidered: The Invocation Model of Process Expression" is published by John Wiley.

----------------------------------------------------------------------
Comments (88)


Well, duh!
written by Will M, July 08, 2007
I've been a computer professional for over 25 years. I have several certifications, know several markup and programming languages, am proficient in multiple operating systems, and earn a tidy income from computers. The one thing I don't have is any kind of degree in computers. It's all because I can't seem to pass a lousy math class that colleges require.

I know, and am proof of the fact, that math is not critical to have excellent computer skills. Logic is important, but logic is not the same as mathematics. I excelled in geometry (the only math class that I can say that), but that was because it was so much to do with logic problems. Math, on the other hand, is just out there... somewhere... and has little to do with everyday computing tasks.

Would I expect software developers for NASA and ESA missions into outer space to fully understand advanced calculus? Of course! But network integration specialists, senior network engineers, system administrators, and developers of general purpose software rarely need to know more than ratios and college-level algebra.

Instead of forcing computing graduates to learn math, the colleges and universities should require training in business and basic accounting, interpersonal relations skills, and electives in marketing, graphic design, business law, and foreign languages. Those are the skills that most computer professionals need to do their job well in our modern society.

As an IT manager, I make hiring decisions based on real-world skills, applicable experience, and a solid foundation of business and people-oriented coursework. The only thing I'm looking for when it comes to math is that an employee can fill out work orders, invoices, timesheets, and expense vouchers properly. Most of the IT managers I know, except those working for State and Federal government and educational institutions, seem to look for the same skills.

Is math necessary for good computer skills? Nope, except in a few special situations and when applying for jobs with employers who believe the hype.

----------------------------------------------------------------------
You're not a Computer Scientist!
written by Fran Taylor, July 08, 2007
Hey Will M. Do you write compilers? No. Do you design VLSI? No. Do you think about heat transfer in semiconductors? No. You are not a Computer Scientist! You are a Computer Engineer. You are no different from a locomotive driver. You shovel coal into the engine, adjust the throttle, and get the train to the station on time.
 ----------------------------------------------------------------------

Good points but ..
written by Gerry T., July 08, 2007
While I agree that computer skills are not rooted in math, I believe Fant is arguing that the field of computer science no longer requires math.

I believe there is a very large difference in computer skills and a formal degree in computer science. I do agree that math is not that applicable in my day to day job (software developer with a BS in Computer Engineering), but I also believe that being put through the different math classes in college made me a more well rounded engineer.

That, in my opinion, is the difference between a 4 year college degree and a trade school. The goal of a trade school is to get their graduates trained up in skills that will provide a good job with a good living. Universities are more academically driven and have the goal of making more well rounded graduates which means learning subjects that will most likely never be used in their field of study, but will enable the individual to grow more intellectually. Both models serve their target audience well.

As for the response / attack from Fran. I'm curious to know how many college graduates with a Computer Science degree work on compilers and deep, theory driven subject matter? From my experience (I have a degree in Computer Engineering [which is 70% computer science theory and 30% hardware theory from an accredited 4 year university] so I don't believe I 'shovel coal'), most of my CS and CPE friends got real world jobs writing software applications that have nothing to do with theory. Therefore, the majority of what they learned in college is never applied in their real world jobs. However, as I stated above, I wouldn't trade any of that because I look back on those classes as contributors to making me a more well rounded engineer.

Also, I see where Will is coming from being a team lead myself. I have interviewed many college graduates who have outstanding resumes in CS subjects but could not interact with a team or write code in a production environment to save their life. Some people are suited for academia and others can practically apply their knowledge and skills in the real world.
----------------------------------------------------------------------

Bringing the Science Back to Computer Science
written by smgalleg, July 09, 2007
While I disagree with Fant's hypothesis, I am very interesting in learning more. I know that the vast majority of my friends that are "coders" have very little to do with anything remotely related computer science on a day-to-day basis. In fact, the spend most of their time thinking about architecture and execution process pretty much as Fant argues.

That being said, there are plenty of opportunities for bringing the science back into computer science. I'm lucky, I work with complex issues related to Operations Reseach every day, optimizing manufacturing and supply chain processes. This requires a tremendous amount of math every day and I love it.

I would say that comprehensive knowledge of computer science is essentially for computer scientists - especially linear algebra - but that maths are mostly wasted on the vast majority of so-called "code monkeys"
----------------------------------------------------------------------

IT Developer
written by Lars C, July 09, 2007
Programming without knowing algorithmic basics like the use of big-O notation is a recipe for systems that do not scale. Significant parts of processor logic and compilers are only possible because there is a mathematical theory behind them. Asking programmers to ignore mathematics is about as safe as asking engineers to ignore stress calculations -- it may work in the short term, but it will not last or scale.
----------------------------------------------------------------------

Computer Engineer is not the same as a Train Engineer.
written by Daniel D, July 09, 2007
Fran Taylor, your assertion that Will M is ~"nothing but a Computer Engineer" is semantically flawed in that a Computer Engineer, not a Computer Scientist is the one who designs VLSI systems, or will take into account heat transfer of semiconductors. Computer Engineering is the intersection of Computer Science and Electrical Engineering. I guarantee it requires lots and lots of math. In fact, every discipline of Engineering (aside from the locomotive variety) requires lots and lots of math.

As for CS not needing to be rooted in Mathematics, and not needing advanced Math classes, I cannot swallow this. There are a great many CS jobs where you can function with nothing beyond algebra. The rest, it would be pretty obvious when someone without anything greater walked through the door.
----------------------------------------------------------------------

Hand waving!
written by Blah, July 09, 2007
To say "forget math" is not the issue. Math and CS are both applications of logic. Let's see someone write an article called "Want to do CS? Forget logic." You can't do it.

Besides that, the article is a bunch of hand-waving.
----------------------------------------------------------------------

Sysadmin, Mathematician, Programmer, Graduate Student
written by Bertrand, July 09, 2007
Disclaimer: I love mathematics, and I think everyone should know more about this beautiful subject.

To Will M,

What you seem to be gearing for in school is a service orientated model. I understand your position contends with clients everyday. You seem to enjoy dealing with the business end of the computing world. And as you said, it is a profitable world that you live in.

Here is what mathematics is to me, and to anyone who looks at it with some scrutiny. Mathematics and its algorithmic cousin is a language. I use math, everyday, to describe a small chunk of my reality. Most of algorithmic applications of mathematics, i.e. regular expressions, turing machines, push down automata, come from very specific applications of modern algebra. It would be difficult to understand how a computer works in its abstract form without some degree of modern algebra. It would be difficult to understand how a computer works on the level of the jk-flip flops without some understanding of electrical engineering. Which is heavily based on computated results that require mathematics.

I understand that you want graduates to be more like you, whom you seem to be successful at your endeavor. However, if I had to be hiring for a position, that required previous studies in a field at length, I would want them to understand the very foundations of that field. I might not be your average hirer, I live in the world of applied math and I deal with very large matrices everyday, but the quality of a student to me, is his ability to learn and his drive to understand the topic at study to its utmost completion. Without mathematics, I can't seem to fathom how a computer graduate can do that.

What seems to be the quarrel here isn't ultimately about mathematics and computers. Of course they are related. There is no better descriptor of discrete automata that mathematics. They practically go hand in hand. Where I am seeing the divide is the computational nature of entry level mathematics.

University administrators have somehow observed a corollary between high computational math skills and better than average symbolic knowledge skills. They don't really know why, it just happens that people who teach and grade these classes that this is mostly true. Being a graduate of these classes and interacting extensively with people who do well in both the graduate and undergraduate spectrum, those that have highly touted computational skills in early levels of mathematics aren't people who work extremely hard to take notes, work extremely hard at the homeworks, but do spend a great deal of time attempting to understand what is going on. That is, say someone wants to work a green's theorem problem, a classic overachiever will whip out the calc book, find the transformation of rewriting the integral, and go to town. Someone who is attempting to understand what is going on, will look at the region of what they are integrating, check out green's theorem, see why the regional and the line form integral yield the same result, maybe bother the professor about it, and they'll figure out that beneath all this mathematical mumble jumble, there is a down to earth, easy to grok understanding of the process. Mathematics as a hurdle to solid prospects, encourages the pursuit of insight, because in the long run insight is the easiest way to deal with problems. When they get to computer logic, the pursuit of insight propels them to understand what is actually occurring in class.

The real irony of this is, as much as the math people try to teach that the pursuit of understanding is the easiest way in the long run, they are working with their hands tied behind their back. Mathematics is taught as a series of tricks from the time past geometry, to where you are suppose to peruse these giant black boxes as part of your curriculum, never to understand what is really going on. In calculus, you're taught pretty much the same way, except if you get a real professor there is a constant tick at the back of his head that he is really suppose to let on a lil more than "math is just tricks with numbers." So if you're lucky you might get a little more out of it than your average brethen.

Most real math doesn't get taught in the united states, until the late sophomore early junior stages of a collegiate mathematician's academic career. That means that all non math majors, save the physics people, have no opportunity to see that mathematics, properly taught, encourages actively to traverse difficulty with understanding, and denote said traversing with a clean, logically consistent diction as the answer.

But anyway, I hope you now see a little bit more why mathematics is in every engineering curriculum. If used properly, mathematics can do so much more for the student than it is doing now. Hoped that was a good read.
----------------------------------------------------------------------

Clarification
written by Fran Taylor, July 09, 2007
I meant he was a Computer Engineer in the same sense as a Locomotive Engineer.

There's plenty of math involved in driving a locomotive! Is there enough coal and water to make it to the next station? Are we going too fast? How's the steam pressure?

You are right, though. He's not an engineer. He's an 'IT Manager', he 'makes hiring decisions', which has nothing at all do to with Computer Science. We might as well be hearing from Paris Hilton on this subject.

Computer people treat what they do as if it requires some sort of superhuman power. It's mostly pretty simple stuff, compared to just about anything else. In what other 'science' can you find 12 year old kids? None! Why? Because it's not science!

Please, Please, Please, stop calling working with computers 'Computer Science'.

And as far as the original article goes, this guy is just playing fast and loose with words. He spins really fast and hopes that you don't notice that he isn't actually saying anything. What could possibly take the place of math? Read 'Goedl, Escher, Bach' and get back to me. 'Provide conceptual enlightenment' probably means 'please pass the bong'.

In case you are wondering, I've taken lots of math in school, I did pretty well at it, I graduated from MIT, I write lots of code in my job, and I certainly do not deserve to be called a Computer Scientist, or even a Computer Engineer. I'm just a Software Developer and sometimes Sys Admin, and that's fine by me. I know real 'Computer Scientists' and to associate 'IT Management' with what they do is just plain wrong.
----------------------------------------------------------------------

Will M is not an engineer at all.
written by Mike D, July 09, 2007
I think the important thing to note here is that Will M is not an engineer. He is talking about IT work. The only engineer he might be, without college experience, is a "network engineer" or "database engineer," in which, on both counts, the use of the term "engineer" is invalid and frustrating to a real engineer. I am an Electrical Engineer, but I spent 2 summers working as an intern for an IT department. Trust me, IT is not computer engineering or computer science, it's computer maintenance. Engineers and scientists design computers, IT people simply maintain them. They may have some coding experience, but as someone already pointed out, they have no experience with things such as semiconductors, or really anything of any great complexity. It's really more of a service job. Calling IT people Computer Scientists is akin to calling an Electrician an Electrical Engineer. Please don't confuse 4 or more year accredited engineering degrees with "microsoft certifications."

To comment further, when Will says "logic is not mathematics," he is dead wrong. Boolean mathematics is the fundemental mathematical source of todays computer science and engineering, and to think that you can have a computer scientist without mathematics is absurd and idiotic.

And also, to Fran, if you think that engineers are "no different from a locomotive driver. You shovel coal into the engine, adjust the throttle, and get the train to the station on time." you need to come back to the waking world. You realize computers were designed by Electrical Engineers? The guys at Bell labs who designed the first transistor were engineers. The people who design aircraft, satallites, machinery, and all sorts of other things are all engineers. Have you ever even heard of the IEEE? It is Institute of Electrical and Electronics Engineers, and they're responsible for the design of everything from communications protocols to hardware to standards such as 802.11 wireless.

I have nothing against Computer Scientists, nor do I have anything against system administrators, but if it weren't for engineers, Computer Science wouldn't have come into its own as a viable field, and the IT people especially wouldn't have any jobs.
----------------------------------------------------------------------

Clarification again
written by Fran Taylor, July 09, 2007
I was not talking about engineers in general, I was talking about our IT Manager. If you think I was saying anything bad about engineers, you are mistaken.

Real Engineers work a lot harder than I did in school, they have Real Degrees. People's lives depend on the quality of their work, and I have total respect for that.
god of all 1's and 0's
written by gml, July 09, 2007
You're all insane having an argument over this. The correct distinction is between Computer Scientist and Software Developer. Let me clarify, not all software developers are computer scientists, the inverse is the same. Saying that mathematics applies equally to both groups is simply wrong. Most software developers don't really require mathematics, but almost all computer scientists do. This is because they have radically different jobs. The job of a computer scientist is to invent and explore, while software developers spend time solving problems that are mainly people problems, more concrete problems. Software developers would benefit more with an introduction to first order predicate logic than concrete mathematics as it teaches a formalized abstract thought process. As far as Alan Turing, remember he was a proponent of mathematics, but he was also working on problems that required mathematics (ie. breaking cryptography). That's not to say he wasn't a advocate because he certainly was an advocate of mathematics, just that his immediate motivations required math. Fortunately his skill in mathematics was key to winning the war, and that's why he's the king.
----------------------------------------------------------------------

What is is
written by DT, July 09, 2007
Without understanding all the arguments presented in the book, but rather going by the article above, I would have to say that Fant doesn't really understand what Computer Science is about. He appears to be describing the field of IT which is (to credit an argument above) is like saying an electrician is the same as an Electrical Engineer.
For myself, it feels as if this is another tack on a more basic argument between trade school vs. academics. – At this point I feel it is necessary to try and prevent a religious flame war, I am referring to the premise upon which trade schools are founded as compared with a university/college conferring a degree in science. – The trade school premise is to teach enough useful information about implementations to have a student go out and be successful, however transient that may be. The academic side teaches more the why (again premise not practice of specific universities and colleges) so that hopefully the more motivated student can take the “why� and create the implementation. After a certain point, the trade school person has to rely on the basis of the current implementation without necessarily understanding the underpinnings of why it is “what it is�. IT is replete with those who know how to handle the proverbial hammer and end up applying that technique to screws. Fant appears to want to teach the abstraction without bothering with any understanding of the realities underneath the covers.
It is not my suggestion that everyone needs to be a Computer Scientist that practices IT. Simply do not equate being in IT as the function of being a Computer Scientist. There are CS folks who can’t make a living writing code, they’re not fast enough or experienced enough to handle it as a job (many are grateful that they don’t earn a living that way). The problem is that assuming CS people are coders, system admins, or network administrators is wrong. If you want one of those, go find a technician or a trade school graduate – they’ll be happy to have the job. On the other hand, if you’re trying to develop a new product (application, utility, whatever), you want someone who can take a problem, break it down into its component parts, figure out what needs to go where and then prototype it for you, a computer scientist is what you’re looking for.
One more point, before I quit. The argument about the operating system – to quote-
“An operating system is not supposed to terminate, nor does it yield a singular solution. An operating system cannot be deterministic because it must relate to uncoordinated inputs from the outside world. Any program utilising random input to carry out its process, such...is not an algorithm."
This proves to me that he never developed one – queuing theory for the process manager, virtual memory management, file system structures all require at a minimum some algebra, combinatorics, and occasionally a bit of calculus if you actually want to do more than “leave the implementation for the reader…�
----------------------------------------------------------------------

I'm on the fence here
written by carey pridgeon, July 09, 2007
The thing is, as a statement 'you do not need mathematics to be a computer scientist' is correct. However it is incomplete.

Without mathematics there are many area's closed off to the computer scientist. You could not, for instance, hope to work in academic research on almost all topics of current interest. I have a problem with the idea that algorithm design doesn't need math. Ever tried to code a temporal neural network? I have, and believe me, had I not got a reasonable grasp of math it would have been darn tricky. Not impossible perhaps, but much, much harder. Mathematics is more then just hanging out on the number line, it's about a way of thinking. Math is a language in its won right.

Then also there's cutting edge game design. Sure you can use the tools without much math, but never *ever* get a job designing the graphics/physics engines themselves.

Robotics? No math, no job, sorry. That's just the way it is.

Incidentally this does not mean that you need A level math or anything, just that you know the math and (usually) have some previous work that demonstrates the ability.
----------------------------------------------------------------------

A bachelors degree in CS, IT and MIS are different
written by cs reader, July 09, 2007
I want to point out that a degree in CS is different than a degree in IT and different than a degree in IS. Each degree have its own specialization. For example, a CS degree will give you the skills needed during product development. An IT degree gives partial skills for product development and roll-out. An IS somehow focuses on the roll-out (e.g. people management, change management etc.) There is an article in ACS.org that explains what this degrees cover. Please try to read it.
----------------------------------------------------------------------

MSc (Majored in Information Science)
written by Pekka, July 09, 2007
Scientists do research in scientific faculties, engineers apply the results.

Nature speaks mathematics. It is not whether you like it or not, it just the way it is. Now if you want to do something that behaves like nature, you need mathematics. On the lowest level programming requires always storing and retrieving values from/to registers, looping and logical operations. That's what the semiconductors do. That's how nature behaves. You can't surpass that. You can always make it more abstract, but face it: they're COMPUTERS.
----------------------------------------------------------------------

Algorithm or process
written by J.B., July 09, 2007
Lets be clear that the original argument is that algorithmic analysis is a poor method to analyze computational systems and that process (or logistics) is better. NOT that mathematics should no longer be taught; obviously mathematics are an essential tool for computer engineers, like in any other discipline. Someone suggested computer engineering is about shovel coal into the engine; it's not, it's about making the computer shovel coal into an engineer, or make it do any other task of interest. Hence it's about thinking in terms of process, or logistics. Of course logistics can employ algorithmic analysis for subproblems, but fundamentally logistics deal with NP-complete problems (like finding the most efficient way to shovel coal into an engine, in the face of changing external random parameters and to meet particular business requirements), not a problem domain suitable for algorithmic analysis. Some components of this are though, of course.

This is not about abandoning mathematics, only abandoning the notion that computation and the algorithm are interchangeable. CS *obviously* needs its own mathematical field of 'process of computation' that's neither strict algorithm or strict process.
----------------------------------------------------------------------

typos
written by J.B., July 09, 2007
Sorry about some of those sentences above, typing in a little text box makes it very difficult to see what you're doing. And maybe one day we'll have proper wysiwyg editors instead of batch markup. (To enhance the process of text entry.) The constant automatic page reload also doesn't make writing any easier.
----------------------------------------------------------------------

MSCS
written by Steve S., July 09, 2007
The year after I got my BS, my school was reviewed for accreditation. They were found to be making their students take too much math. I took 9 math courses as an undergraduate, and the last time I can remember using advanced math at work was when we were calculating how long it would take something to hit the ground if dropped off the 6 story parking garage. :)

That being said, I think math courses that teach logic, predicate calculus, vector math and numerical analysis are very useful to a software developer.
----------------------------------------------------------------------

Discrete Math
written by Brent F., July 09, 2007
You can't get rid of discrete math...
----------------------------------------------------------------------

my thoughts
written by oneblackcitizen, July 09, 2007
"A logic circuit is not a sequence of operations. An operating system is not supposed to terminate, nor does it yield a singular solution. An operating system cannot be deterministic because it must relate to uncoordinated inputs from the outside world. Any program utilising random input to carry out its process, such...is not an algorithm."

1. We let electrical engineers deal with logic circuits for the most part, but, that's not -supposed- to be the same thing as an algorithm or "sequence of operations."
2. an operating system is a collection of many, many algorithms. Of course it's not just one algorithm.
3. That definition for determinism is bogus. As long as you get the -same- output for a particular set of inputs (even if they are random), then it is deterministic.
4. Not all algorithms are deterministic anyway, so saying something is deterministic does not disqualify it as an algorithm. (http://en.wikipedia.org/wiki/Non-deterministic_algorithm)
5. Math has many benefits including learning to be rigorous and formal in your problem solving, the concept of functions, variables, determining good test data, number systems (binary vs. decimal vs. hex). Although you could argue on the -amount- of math needed. For more, see the paper Why Computer Science Students Need Math by Theresa Beaubouef.
6. At some level, the algorithms upon which you base your program (operating system or not) are either -correct- or it is -incorrect- based on your specifications. If CS grads don't understand that, then they do not understand CS.

I'm critical because usually these "every thing's all wrong" guys are just trying to sell a new "paradigm" that they have invented. I've seen that before, and the company eventually abandoned the whole thing.
----------------------------------------------------------------------

Handwaving Swordfighting
written by AD, July 09, 2007
This is the first time I've read a full comment post here. Most of the dialogue seems like so much handwaving and sword-fighting.

What this book seems to be [correctly, perhaps not intentionally] pointing out is that our culture and society has a very skewed view of what makes up the "meat" of math.

I agree with the comments concerning math as the development of real understanding in contrast to following a set of "magic" procedures to arrive at a result.

Separating cultural views of math from computer science is perhaps useful in a pragmatic sense, I'm sure most of us have preferred naming conventions. . .
----------------------------------------------------------------------

correction
written by oneblackcitizen, July 09, 2007
re comment above:

4. Not all algorithms are deterministic anyway, so saying something is deterministic (I meant non-deterministic) does not disqualify it as an algorithm.
----------------------------------------------------------------------

Do people actually know what algorithms entails?
written by Tamara, July 09, 2007
Although not every CS related job out there requires a complete understanding of np completeness, I am not sure that I can respect any University willing to pass out CS degrees without some sort of Algorithms course. It is true that plugging in computers to a network requires little math, but the awareness of the overall network and the mathematics and logic behind it is what distinguishes between a good network and a great one. With our ever expanding technological society, spending a few minutes teaching kids about the traveling salesman problem will do nothing but benefit our society and speed up our networks. To those of you claiming 'we dont need algorithms' I would be interested in whether you have ever taken a course involving algorithms, or even know what it is for that matter...


By the way - I was hired on the spot because of my mathematics credentials, and to be honest, I would have been fired long long ago if I didnt have an understanding of logic and algorithms.
----------------------------------------------------------------------

Doing and understanding are very different
written by Tamara, July 09, 2007
Although not every CS related job out there requires a complete understanding of np completeness, I am not sure that I can respect any University willing to pass out CS degrees without some sort of Algorithms course. It is true that plugging in computers to a network requires little math, but the awareness of the overall network and the mathematics and logic behind it is what distinguishes between a good network and a great one. With our ever expanding technological society, spending a few minutes teaching kids about the traveling salesman problem will do nothing but benefit our society and speed up our networks. To those of you claiming 'we dont need algorithms' I would be interested in whether you have ever taken a course involving algorithms, or even know what it is for that matter...

FYI - I was hired on the spot because of my algorithms knowledge, and I would have been fired long ago without it. You can slide by without it, but isnt it nicer to understand how things work and not just half ass everything you do?
----------------------------------------------------------------------

Show me the money.
written by tomarocco, July 09, 2007
Call it what you want, I don't care. I make six figures being a general practitioner with a trade-school bachelor's that, in retrospect, I didn't need. I have never even needed to use high school algebra on the job. Most brilliant mathematicians and computer scientists will be stuck in academia or staff-level drone positions for their entire careers because they don't have any soft skills or business sense. They are forever wrapped up in semantic argument and "my degree is better than yours", all the while being content with 65K plus annual adjustments for inflation and the promise of a pauper's pension.

The most successful people in the world don't do math...they do know how to treat people and how to follow the money trail.
----------------------------------------------------------------------

Money isn't everything
written by uwjames, July 09, 2007
I have an Applied Math degree with an emphasis in computer science. I was always one of the top minds in my class. Everyone came to me for help with the curriculum. Many of my old classmates are software developers, network engineers, or otherwise very successful materially speaking. I worked in software for a while as well, but never enjoyed it.

I am a math teacher now, and I make a pathetic salary. I love my job and am quite satisfied. My work is challenging, and it is mentally and socially engaging. Everyone has their own standards for success, and I consider myself highly successful.

As for the article, I think it is largely semantics. Proper run-time analysis is vital to creating scalable software. Additionally, a high degree of mathematical intuition (or mild autism) in your dev team will probably save you in man hours.
----------------------------------------------------------------------

Anyone actually read the book ?
written by Greg Bowyer, July 09, 2007
I am interested in the fact that this discussion has broken down already into two camps:
1) "Off course you need real math, the work is obviously false and should discarded as tripe, anyone who says otherwise is clearly beneath my attention (insert train engineer metaphor here)"
2) "No math is needed, look I don't need math in my work ergo you don't need it .... (insert some example of success here, avoid fields using math)"

I am willing to bet no one here has read the work in question yet .....
And yet the trolling continues without anyone appearing to have read the work in question, its all so easy to discard / accept someones work without even examining it, let alone using any critical thought or analysis.

Whilst I feel that the book might not be correct (I believe that the current models as derived from study of algorithms are acceptable for comp sci), I am willing to at least see if this work yields new insights or concepts to, what is after all a young discipline.

Its only 250 pages long after all it shouldn't take anyone that long to read ....
----------------------------------------------------------------------

System Engineer
written by Mohammad Bahathir Hashim, July 09, 2007
Math makes computing easier and faster. Real world example, several years ago, it tooks about several hours or even days to collect enough 802.11 WEP packets, and several hours of computing before it can be cracked. Today, with correct procedures and calculations, we able collect sufficent packets in 53 seconds and decrypts in just SEVERAL SECONDS. If you read the paper about this WEP cracking, you would find math is very helpful to make things faster.

To me, math is still very much relevant in computing. Computer itself is from the word 'Compute' or 'to calculate'. In other words, computing cannot escape from math, and please do not underestimate math in computing.

TQ.
----------------------------------------------------------------------

What a a bunch of arrogant twits
written by Jim H, July 09, 2007
Hey, you computer scientists...you are leaving your "I ride a high horse" comments on a web page that was probably designed, coded, managed, etc, by people who have no need for anything at all beyond basic algebra, so I would say that the article is correct -- it is not much algorithims/math that creates value, it is the thoughtful expression of a process.
----------------------------------------------------------------------

nonsense
written by Kevo, July 09, 2007
Just another example of marketing to my boss, this is another approach to saying that all that time spent actually 'programming' and 'understanding what a computer does' was just not worth it. If only that were true. The great thing about math is the ability to provide certainty and proof -- which is why you see so many people on the list trying to shout "You can't take Dijsktra out of your machine you Idiot". Whatever. Waste your money. Buy this book. I'm sure there's a CD in the back of it. Peace out.
----------------------------------------------------------------------

Strange
written by MC, July 09, 2007
Why people think that developer/programmer is equal to computer scientist. Computer Scientists use Math a lot. I think people (non Computer Scientist mostly) use the term Computer Scientist way too loosely.
----------------------------------------------------------------------

Dimwitted Art
written by Arrogant Twit, July 09, 2007
This article and quite a few of the comments are just another example of why people shouldn't talk about things that they don't know dick about.
----------------------------------------------------------------------

Computer Engineering
written by Devin F, July 09, 2007
Lets talk about Computer Engineering Fran. I am a Computer Engineer. I do not shovel coal into an engine. I write in Verilog, am currently writing interfacing software for the USRP (universal software radio peripheral) and have to do a considerable amount of work with signal processing. That is Computer Engineering. Computer Engineering is half electrical engineering, half computer science, geared towards digital design. The networking stuff Will wrote about, is certainly not Computer Engineering. It is also certainly not computer science.

Modeling second order circuits requires differential equations. Laplace, Fourier, and infinite series are required. At least an understanding of Calculus 2 is needed for that.

And, to the person who wrote this article, go tell Google, AT&T, or some other data company that math doesn't matter, and invest in a book on Discrete Mathematics. Especially check out Graph Theory, and the part on algorithms. Then, if you still don't believe that algorithms are relevant to computer scientists, dump all your electronics that use FFT's (Fast Fourier Transforms), and go back to the 1970's. Abstract math is the key to strong programming.

Will, you're not a computer scientist, you're also not a computer engineer. Higher level math is needed for computer engineering and computer science. Understanding the underlying concepts in creating fast, versatile, and optimized code, requires all sorts of knowledge about the underlying hardware. To be a computer scientist, you don't need these. To be a great computer scientist, you do. It all comes down to this:

Getting a certification from a tech school to change a car's oil doesn't make you a GM Mechanical Engineer. To change a car's oil, you also don't need to know any college level math.




----and,----
Lars, thank you.

tomarocco, ask Bill Gates, Larry Page, Sergey Brin, or any other number of people who are huge in the computer science industry, to show you the money.
----------------------------------------------------------------------

Intellectual Fraud
written by Tony Morris, July 09, 2007
Please do not publish misleading and grossly inaccurate articles. This article is a gross act of intellectual fraud with the potential to undermine an entire body of science and mathematics of which the author clearly cannot grasp even the basic fundamentals.

Disgusting.

Oh yes, I have all those pretty industry certifications as well. When is the burning ceremony?
----------------------------------------------------------------------

Re:Show me the money
written by George O, July 09, 2007
I was making over 80k when I graduated from college working for a large software company and I had options to make 6 figures in
----------------------------------------------------------------------

The future, Good vs. merely adequate and IT vs. CS
written by Anthony B., July 09, 2007
I'm currently studying Computer Sciences under the Faculty of Mathematics at the University of Waterloo. A friend of mine raised an interesting point regarding the future development of computing. The future of computing is Quantum, try understanding THAT without math. Anyone studying Computer Sciences who ignores this will end up at a very dead end, possibly in the near future. So while today's "software developer" (not Computer Scientist), might be able to ignore math, its a moot point given where we're headed.

Even disregarding this progression of technology, knowing math definitely helps me write better more efficient code, and mathematics provides tools for understanding problem solving that you won't find anywhere else... Something I've always found to be true when developing software is that there is more than one way to skin a cat, and the most efficient, interesting, elegant and scalable ways often involve higher math (and less code). I could get by without math, making good money writing boring software for businesses and the government, but most of the cutting edge stuff that I'd actually want to work on, graphics, artificial intelligence, cryptography, and quantum computing, to name a few, involve a great deal of math. To truly excel requires hard work and alot of Math.

And Jim H. While I'll agree that it doesn't take any math to design, code or manage this web page, I aspire to spend my life doing something a little less mundane than "IT". I believe the point originally raised was whether or not Computer Sciences, not IT requires high level mathematics. IT and CS are very different.
----------------------------------------------------------------------

Algorithms v Processes and CS v IT
written by Brian C, July 09, 2007
The author's ideas are also described in his 2006 (revised) paper http://www.theseusresearch.com/Downloads/algorithm article.pdf and it includes a line in the conclusion with the same sentiment that was misunderstood here sparking the IT v CS debate: "Mathematicians and computer scientists are pursuing fundamentally different aims and the mathematicians [sic] tools are not as appropriate as once supposed to the questions of the computer scientist". I don't think he is suggesting that computer science should be a less rigorous field, but rather that the strict mathematical definition of an algorithm is insufficient to describe the variety of processes witnessed therein. The excerpted bulk of page 6:
"The mathematicians consider the process as independent of its expression. A process may be expressed in any convenient language and executed on any convenient machine including a human with a pencil. Mathematics is primarily concerned with the nature of the behavior of process independent of how that process is expressed. ... Computer science is primarily concerned with the nature of the expression of processes regardless of what particular process might be expressed. ... There is much overlap between the interests of computer science and mathematics, but this core concern with the nature of process expression itself is the unique conceptual focus that distinguishes computer science from the other sciences and from mathematics. Computer science is the science of process expression. One published definition of computer science comes near the mark.
“computer science itself becomes no more (and no less) than the discipline of constructing appropriate descriptive languages.� [16] "

Now that we've dealt with the subject of the article, let's deal with IT vs CS. I recognize that the modern computer age would not work without the untold numbers of coders and admins who are interested more in the doing-it than in the theory, and who are handsomely rewarded for their efforts. They don't need calculus or diff eq or even Big O notation, and it doesn't make what they do less important. I'll go ahead and point out that without the mathy types, the computers themselves would not exist, but that doesn't make CS better (which does not then imply that CS is worse either). What I do resent is that the anti-academic money-is-superior attitude is invading CS programs, causing them to dumb themselves down to meet less rigorous career demands. Universities have IT/CIS programs and those not interested in the mathematics of engineering should avail themselves of those, technical schools, or their own self-sufficiency. We need more IT types than CS, but they are minimally overlapping parts of the same field and we need both.
----------------------------------------------------------------------

Totally disagree with Calculus in CS
written by Mike Dens, July 09, 2007
I'm done at school, I graduated with a CS degree, and I'm working at the development department of Avionics systems, I was doing horrible on math especially on calc when I was in school, now I help many of my co-workers solving problems that they usually get; I believe calc is not necessarily in most of the CS jobs you can get nowadays.
----------------------------------------------------------------------

programmer
written by Kevin Moulder, July 09, 2007
I am in school for computer programming but have been 'working' with computers for about 7, almost 8 years by now. I dabbled with photoshop, dreamweaver, notepad(for web design), and other various programs to get what I need done. At the current moment I am a Junior Network Administrator for my local ITT Tech.

I'm making this statement clear that im a jack of all trades.

I dislike math because it does not come easy for me, I excel at anything that has to do with computers, within a short amount of time. I am also not determining how long a rocket ship is going to fly around the moon, and at what speed it needs to travel to arrive at whatever its destination is either, I have no interest in doing that. I program or 'code' if you want to call it, because I ENJOY writing code. Not because I excel at math.

This Fant guy is too general. There are Software Developers(who write GUI's and business applications) and then there are Programmers(who write the programs LIKE visual studio.NET, or 2005, or NetBeans, etc...) There are levels of interest each programmer/developer has for his/her own 'field'
----------------------------------------------------------------------

Maths sure does help though
written by John Tran, July 09, 2007
The maths learnt in computer science is not that great, and subsequently you'll eventually find yo can't perform that great either. Computer science is based on numbers, the algorithim, and without it we would not have the computer.

While maths may not be necessary to do basic programming or to be a software engineer, it is certainly necessary to be a computer scientist.
----------------------------------------------------------------------

Article link posted by Brian C ...
written by Crazy Eddie, July 09, 2007
I liked Brian's post, which was quite sensible. At least he's tried to read something by the author *before* talking about it. How many posters realize that they're basing their comments about a 200 page book merely on an online reporter's comments?

The link provide by Brian is not working because Theseus Research's webmaster - another non-math type perhaps ;-) - chose to place spaces in the URL, which is a bit dumb anyway... I don't know if my reposted link will work, but even if it doesn't you can copy the URL into your browser and it will take you there.
----------------------------------------------------------------------

Right on Fran
written by M. Hurd, July 09, 2007
Solid points. That they need be made is worrying.
----------------------------------------------------------------------

Egg on face...
written by Crazy Eddie, July 09, 2007
Here is a tinyURL link instead...

http://tinyurl.com/3x2lgg
----------------------------------------------------------------------

Can't We All Just get Along?
written by Street, July 09, 2007
Someone push the button and go "Choo, Choo..
----------------------------------------------------------------------

Keeping your options open
written by MikeThePike, July 09, 2007
What is the point of this? Just because I don't heavily use math at work, doesn't mean it isn't useful to me. Almost everything I learned in college is useless as a Software Engineer. Lets cut out Physics too! And English, who needs that!

Seriously, I'm not a coder, I'm a problem solver. I like to solve the problem, coding the damn thing is just the grunt work I'd rather send to India. Math is the basis for those problem solving skills. Personally, what I do seems more like proofs, where I'm trying to solve a problem by taking existing components and adding in new ideas or concepts to get the desired result. Then follow that up by rigorous testing and peer review before releasing it to the public.

Also, in a world where a person is expected to change career fields 3 to 4 times in their lifetime, it makes sense that knowledge of advanced mathematics is useful to everyone.
----------------------------------------------------------------------

Software without math
written by JohnHuber, July 09, 2007
I bet most of you like listening to your mp3 music files, watch the latest movies on DVD or other formats and play some fancy 3d computer games. Guess what, all possible because of math.
----------------------------------------------------------------------

Missing the point...

written by JXST, July 09, 2007
The defensive "pro-math" people are missing the point here and need to open their mind a bit. Though the sensational article title would imply as such, I don't think Fant is trying is trying so much to argue that mathematics is not an important aspect of computational theory (a strong mathematical basis for computation has already been demonstrated with state machines, Turing Machines, etc., and in practical situations various specific applications will require various knowledge of higher level math obviously -- but many don't).

Fant, rather, is trying to say that concept of the "algorithm" is poor tool for general purpose tasks. In this sense the "algorithm" is roughly defined as data decelerations and sequential lists of operations along with the power of conditional branches, loops, and maybe recursion -- the basis of the way we usually program computers to this day. Since the early pioneers of computational theory were mathematicians, it's no surprise that the algorithmic model is largely based is largely based around sequential operations; solving math problems is usually a step-by-step process which fits this model quite nicely. The algorithmic model becomes much more of pain to work with though when we introduce things like concurrency, data sharing, events, temporal interactions -- things often encountered in general purpose programming. The amount of bugs and exploits found in software is a testament to the difficulty and weakness of this model.

While the algorithm has been triumphed as the premier model for expressing processes, it is not the only model. As described we have alternative models like logic circuits, neural nets, and we also have improvements to the standard algorithmic model such as object-oriented programming (OOP while an improvement still fails though to escape many the algorithmic problems associated with algorithms since it's still fundamentally algorithmic). Each paradigm has advantages and disadvantages in terms of various things like easy of learning/use, rapid development, performance limitations, concurrency, etc. Needless to say, a paradigm which performs optimally at all these tasks would be a massive contribution to CS and society at large. Why isn't their more focus on developing new paradigms and forming a wide theory of process expression? Why has field of computer science has focused so much on questions like "what can be computed?" while neglecting questions such "how can we express a process/interactive system?".

Fant's argument is that the algorithm has been given too much focus due to a mathematical "cultural bias" in CS and needs to be booted as the basis of computation. Instead, the central focus of CS should should be a comprehensive theory of process expression which includes, but is not limited by the algorithm. Perhaps only then will we be able to discover new programming models which could revolutionize computing.
----------------------------------------------------------------------

Maths, Logic and language
written by Trevor Batten, July 09, 2007

It seems to me that the problem may be more fundamental than at first appears: Basically, in recent years, the (commercial) success of pragmatic computer systems seems to have undermined interest in the theoretical aspects. However, without a theoretical framework there is no external way to judge success or failure -and so everything that functions (even marginally) can easilly be considered a "success". Java, for example may be a wonder of pragmatism -but it clearly lacks the internal logical consistency of Algol -which was incidentally commercially supplanted by Fortran despite the fact that C which became fairly mainstream later actually seems to be more Algol-like than Fortran-like. So, if "pragmatism" creates so many false trails there may indeed be conceptual (and eventually pragmatic) disasters lying in wait for those who are too commercially "pragmatic" in their approach.

However, to understand the problem better we may need to understand better the complex relationship between theory and practice: In this context, questioning the "value" of mathematics seems difficult (but perhaps essential) simply because "mathematics" itself seems a rather poorly defined (or poorly understood) subject. Is it, for example, a sub-set of Logic -or is Logic a sub-set of Mathematics? Clearly computer programming is a "language" based activity -so we might also need to ask how does "language" relate to both Logic and Mathematics? The Anglo-American education system seems to make a great distinction between "arts" and "sciences" -where apparently, men of letters do not get involved with the world of numbers.... and yet surely both mathematics and Logic are a form of language -where perhaps for the true practitioners the "expressive" qualities might be more satisfying than their pragmatic uses. Our education system seems to have forgotten that Pythagoras was a mystic.

As an artist who has long been interested in computer programming I'm very interested in the philosophical (ontological and epistemological) aspects of computer programming (including mathematics and language) -but it does seem that (even in the arts) these aspects have become buried deeply out of sight =largely because of academic and commercial interests it seems.

I read somewhere that before the rise of "chaos theory", physics and mathematics in the US also had problems relating to each other: That although modern (sub-atomic) physics is largely mathematical -the physicists didn't want non-physics trained mathematicians teaching physics students their mathematics. So perhaps the same is true for Computer Science: It's not that mathematics isn't needed -it's just that the wrong type of maths might be being taught in many places.

Incidentally, I believe that many years ago in Holland a top International AI researcher (imported from the US) lost his job in a dispute with the faculty -and that he too believed that this was because the AI was still under Mathematics -which lead to a poor understanding of his work.


Taxonomy seems an important part of epistemology -which is surely the ultimate basis for programming. How strange that taxonomy and epistemology have not been applied in a more self-reflective way by the academic system.
----------------------------------------------------------------------

Oh lets all just die.
written by Patchy, July 09, 2007
Finding what is exactly what and making fancy comparisons isin't what we need... disregarding who invented what, and if he was good at math. Computers need to become more useful to all of us. Not only those who develop in Engineer or Math fields, but Art and Poetry and the rest of the fields to improve culture.
----------------------------------------------------------------------

Is this guy for real?
written by Turd, July 09, 2007
The guy claims the algorithm "has been largely ineffective as a paradigm for computer science." He also claims that what we really need to consider is the notion of "process expression." What is an algorithm if not a mathematical means to express a process!? What an idiot...
...
written by cayennext18_PL, July 09, 2007
Without math you would probably fall in tons of spam. Bayesian spam filters uses mathematic methods like combining probability using inversed chi square.
----------------------------------------------------------------------

Lofty ideas are nice and all, but...
written by Catherine Silverberg, July 09, 2007
Um, Fant doesn't seem to know what "deterministic" means. I'm just a sophomore CS major and I know that. If he doesn't understand CS, how can he expect me to believe he knows what's wrong with it?
...
written by Mike L, July 09, 2007
I am a four year graduate of Computer Engineering with a minor in Computer Science, and I choose to go into development in IT....much more money, and yes it is a whole lot easier.
----------------------------------------------------------------------

p
written by p.p, July 09, 2007
"ANASAYFA"
...
written by p.p, July 09, 2007
ANASAYFA
----------------------------------------------------------------------

Logic is Math...
written by GammageATX, July 09, 2007
Just like some artist are excellent at painting but couldn't sketch a realistic face to save their life, Math is a broad field that most people can not fully master. If people think they can program with out any use of Math then they are setting themselves up to be underbid by half-baked outsourced scum.
----------------------------------------------------------------------

Why CS majors can find this interesting but people "with certifications" won't
written by MattV, July 09, 2007
As a BS/MS student (I'll have a master's in CS fairly soon) I am disappointed by the first poster saying that he "has several certifications" as a response to an article about computer science. My school makes it fairly clear about what CS majors are to know - A CS major is a theorist, not a code monkey. I can get a code monkey job without a degree - I can get your certifications for much less than my $42K/year tuition... that is why I go to school as a Computer Science major. I am expected to know, and possibly advance, theory which is currently rooted in mathematics. The article says that this is fundamentally wrong, and that theory should stray from mathematics as a base. This is an interesting thought for people who are CompSci majors, because we deal with theory. This is useless for people "with certifications" because you were not taught theory, you were taught how to work given the current theory.
----------------------------------------------------------------------

Cats
written by Fart McGee, July 09, 2007
I really like cats and programming. Math isn't needed for anything. The world would be a better place without it. Give me one concrete example of when math is used in a real world situation.....its not. We only need cats and computers....no math
----------------------------------------------------------------------

shutup
written by Peet, July 10, 2007
stop wasting time, get back to work retards...
----------------------------------------------------------------------

Poppycock
written by KG, July 10, 2007
Just more PC terminology to try to encourage more squishy people to enter CS. Also, those of you arguing the difference between CS and software development- certainly there is a difference, but this difference is irrelevant to the article. Learning algorithms (and data structures) is still key to software development.
----------------------------------------------------------------------

British Education Ministry
written by Quinn, July 10, 2007
This article sounds like it was written by the British Ministry of Education: having successfully destroyed academic physics, they're now looking to do the same with computer science.
----------------------------------------------------------------------

Inumeracy and its affect on perceptive thinking
written by Kossler IEEE/Software Architect, July 10, 2007
Such fun controversy over a simple concept. Is "Math" required to for programming? Simply, yes. Math is knowledge of the relations of simple things yep thats it. Those of you who do not think its true, then have fun with the statement: "This sentence is lying". Its having the ability to recognize patterns and have tools to help with complex problems. Except in the case of the professional schmoozer above who just works the people and not systems this is how the actual coding gets done. Working the people is definitely a way to succeed, though its normally called people management and not CS. However, the schmoozer also uses math... probabilies/odds on the person doing what he wants. So next time when one is strangely afraid of math, just realize its just a way to perceive the world. Without math the odds are stacked against you, and you will never know what truth is. Sense if you know truth ... then sorry you used math..
----------------------------------------------------------------------

Math is not emphasized enough!!!!!
written by Markitect, July 10, 2007
I have to go with the author of the book and those people that agree with him are dumb visual basic developers.

If all you do is make stupid little visual basic apps you really don't need math. But if you plan on making a program that does something very meaningful you need math; And if you understand the math you will program better. Searching, sorting, network communication, parsing files, and graphics are all deeply planted in mathematics, and if you understand the actual math behind it you will be much more capable of designing an efficient system.
----------------------------------------------------------------------

Most of you are off the mark
written by Stephen Watkins, July 10, 2007
I've worked with Karl Fant, and he is a brilliant mathematician and luminary in the image processing field. It is incorrect to assume that he is some sort of Luddite or anti-intellectual. If you read the paper that someone linked above (or his book), you would realize that hist argument was a lot more subtle than "Math has no place in computer science". It's a knee-jerk reaction similar to the one where I might say that "torture has no place in a civilized society because it will inevitably degrade and brutalize the society that commits it" and be answered with responses like "Why do you hate America?" and "Thinking like that allows the terrorists to win".
----------------------------------------------------------------------

The real problem is the "right-here-right-now-me"
written by Shamim Islam, July 10, 2007
Fant and Will and the rest are off in left field. They're complaining about why they can't apply what they learned. It's obviously that either the subject matter is wrong, or that the school system is at fault or even that the teachers weren't paid enough. There's just no place for math in IT apparently. It's just someone else's fault.

I would vehemently disagree. As would Sedgewick, Knuth a whole host of others. Just as much as I would disagree that physics has not applicability to the regular joe in every day life. But that still means that you have to have really LEARNED the topic and understood it's implications, than to just memorize things and stick it in a box. The ability to synthesize and apply knowledge is different from memorization. And anyone that wants to describe an O/S as non-deterministic is just showing his lack of mathematical tools to formulate the problem. Or at least his inability to apply them correctly, luminary or otherwise. Obviously he's never had to explain a bubble sort to a Lotus Notes programmer. Or explain decoupled design to a visual basic programmer. Or had to explain patterns to a web-developer that has the so-called knee-jerk answers to situations. Math doesn't help you just solve problems. It helps you solve problems better. It helps you find better solutions and new innovative ways of doing things.

How often have you used the MVT to determine whether you will get caught speeding? But you can. How often have you used Maxwell's flux equations for magentic fields to get through rush hour? But you can. How often have you applied Euclidian geometry to find your way around town? But you can. How often have you used Bernoulli's fluid dynamics to drink a frozen pop or a milkshake or even drive on the highway? But you can. How often have you determined fashion trends based on additive and subtractive color theory? But you can. How often do you look at a building and actually appreciate the use of the Golden Mean? But you can. How often do you use the doppler shift of a passing train to know whether you should bother trying to catch it when you're running late? But you can. How often do you use vector calculus in driving? But you can. How often have you used harmincs to determine the progression of a piece of music - but still you can. All of theses things - the ability to cross-pollinate ideas and thoughts and to apply non-relevant information to novel situations - this is what mathematics is all about.

You can cry until the cows come home that you are learning what you will never use. But it's your own fault. No one else's. These other useless theory subjects that you think you would never apply, make the world a richer place. And allow you to avoid reinventing the wheel every two seconds. And allow you to make magic when others would be hobbled by the limitations of their own experience. Certifications mean nothing more than the fact that you can answer questions about a particular situation. Not that you can solve a novel problem. Who would you rather hire? Someone that can think for themselves and leverage the entire body of knowledge at his disposal based on countless years of research from other people? Or someone that can simply use only what he's been taught and what he's experienced.

Anyone that thinks "theory" is useless, should get over it and do some real learning. And not worry about WHETHER they can apply something, but rather learn HOW TO and WHY they would apply the knowledge.

P.S. What brain-dead non-math type designed this stupid website that randomly refreshes the page while you're reading it or in the middle of a reply and only accepts input from a windoze computer - tried a bunch of times on mozilla-linux and konqueror? Probably another person that thinks computing is random and non-deterministic since obviously my input is unpredictable in the highest degree.
----------------------------------------------------------------------

Did anyone actually read the paper?
written by A.N.Onymous, July 10, 2007
Well, I did. I find it interesting that is was first published by the ACM in 1993, and there's been virtually no discussion in academia since then.

Anyway, for those of you who haven't read the paper:
* Fant is concerned with the notion of "algorithm" as defined strictly by Church, Turing, Goedel (and others) and observes that it is narrowly construed (Section 4).
* He notes that practical "computing" (not computer science) is not often concerned with this strict algorithmic analysis (Section 5).
* He makes the basic distinction (I paraphrase) that computer scientists are concerned with how a particular piece of computing "stuff" works, whereas mathematicians are concerned with "what you're doing (independent of how you accomplish it)".
* He offers the opinion that the former is more interesting in modern practical computing and that the strict adherence to whether or not something is an algorithm (in the Turing sense) is less important.

Of course, it's hugely ironic that in order to understand his arguments, one needs to have a solid training in mathematics (how many non-mathematics-trained IT practitioners know who Church, Turing and Goedel are?).

Personally, I think Fant is wrong, because an understanding of the formal framework for algorithmic analysis lets a practitioner have insight into how his or her code works (whether or not it is an "algorithm"). Yes there may be new formalizations possible but that
1) will still be "mathematical"
2) won't make the concepts of algorithmic analysis obsolete

As someone who has formal training in math (Waterloo B.Math) before computer science, I can attest to the fact that the formal language/parsing theory courses, queueing theory courses, graph theory, functions and relations and all the rest came in most useful in my career writing compilers, operating systems kernels, command-shells and relational databases. I can't imagine how much harder it would have been for me to really understand how a relational database works if I didn't understand what a mathematical relation was. The SQL "select" statement is just a bad syntactic representation of relational calculus -- writing queries is a whole lot easier when one understands what the relational formulation really is.

Fant's paper was intentionally controversial (if not inflammatory), and gained no traction whatsoever. Just let it rest.
----------------------------------------------------------------------
...
written by John E Grisinger, July 10, 2007
Computer science/program is engineering. You apply what you know and the tools you have to solve a problem. Engineers were building bridges long before they has a theory of structures that allowed them to analyze stresses and strains. We use logic and mathematics where they are applicable and useful, including describing the characteristics of the various types of information. However, logic and mathematics are unable to prescribe the characteristics of information and they are unable provide a foundational understanding of the nature of information. Those characteristics are independent of logic and mathematics. Until we have a theory of information, we will continue to be doing engineering. My attempt to develop such a theory is described in a paper at: http://www.varadata.com/AnInfo...ciples.pdf
----------------------------------------------------------------------

math in CS is not only about algorithms
written by A.Lecturer, July 11, 2007
"Computer science needs a comprehensive theory of process expression."

I agree ... and this theory (parts of which are aleady existing) will be a piece of mathematics. Or what else?

BTW, many BSc's in CS do not teach or require math anymore
----------------------------------------------------------------------

Two Notions of "Expressive"
written by Albert Baker, July 12, 2007
Interesting that a comment on an old paper can evoke such strong responses. Too bad we don't collectively realize that Computer Scientists and Software Developers (gml 7/9) are both part of the same whole - let's call it Information Science, just to avoid the loaded terms being bantered about.

Most of the usual issues are well hashed out in the earlier comments. I do think the first comments on the original article dance around an interesting attribute - "expressive". Computer Scientists and Software Developers are inclined to see this differently - and under appreciate each other's viewpoint.

Corner's example of a logic circuit provides a good example. Let's first take the Computer Scientists point of view. Of course a logic circuit is an algorithm. Consider a circuit with just one output. Convert the boolean logic for that circuit into, say, disjunctive normal form (the "or-ing" of terms that just have "ands" - and no other depth to the expression). Might be worth noting that a BS degree in Computer Science would be sufficient to know that every boolean expresssion, regardless of the level of nesting, can be represented in disjunctive normal form. Assume the disjunctive normal form is T1 / T2 / ... / TN. The "more algorithmic feeling" representation of the logic would then be:
if T1 then
TRUE
else if T2 then
TRUE
...
else if TN then
TRUE
else
FALSE

And, as it turns out, logic circuits can all be represented by simple Finite State Automata, so in the hierarch of "computational expressiveness", they are at the lowest level. The Computer Scientist is primarily interested in this notion of "computational expressiveness".

However, this is not the first concern of the Software Developer (or the practicing Computer Engineer designing circuits). The Software Developer wants to see the circuit layout because that representation is the most expressive with respect to human readers/writers of the representation. The conversion of anything but the most trivial expression into disjunctive normal form will result in an expression that is harder to read. It is less expressive.

In my prior professional life as an academic, I worked in the area of formal behavrioral specification languages. The drawback to many of the actual formal specification languages (Z, Larch/xx, ) was they use "mathematical notation" in the specification - even for those things that are readily expressible using the syntax of standard programming languages. Some of them actually required the use of special symbols, e.g., "epsilon" for is an element of, "backwards E" for there exists, etc.

One problem with these specification languages developed by Computer Scientists was they were not expressive - in the sense of interest of interest to software developers. In fact, they were not algorithmic - in the computation expressiveness sense - one could write specifications for which there was no terminating computation. For example:
mySet.isIn(1) && orall(int x) [ mySet.isIn(x) ==> mySet.isIn(x 1) ]
(Note to my CS colleagues: Let's not quibble over whether this assertion is or is not algorithmic. We can all agree it is non-terminating.)

Most of the time, the Software Developer is unconcerned about computational expressiveness. They basically trust that compilers will correctly (in a formal sense) translate source code to some form of interpretable or executable "lower level" representation. They trust that libraries will work as advertised. However, compilers and libraries, e.g., STL for C or java.util.*, were highly dependent on Computer Science for their development.

So, gentle colleagues, understand that when a Software Devleoper says expressive, he or she means "readable", "understandable", "write-able", etc. - a critical concept for languages, IDE's, ETL's, etc. And, to my Computer Science friends, a this notion of expressive which can only be addressed scientifically through experimentation which is generally too expensive to conduct. We can't "prove" this type of expressiveness.

And when a Computer Scientists says "expressive", they mean "computational expressiveness". What "computability class" does a particular representation support. And for a particular instance of a representation, say a good 'ol sort method written in Java, what is the worst case or expected case performance for that algorithm.

We need each other. There's nothing to fight about here.

----------------------------------------------------------------------
So...lets forget ALL the progress ever made in Computer Science?
written by Diogo, July 12, 2007
I wonder if those who argue against math in CS ever thought about where it has led us.

Without math, there wouldn't be the digital computer. The binary computer is nothing but an application of math into an engeneering enviroment. Uses math to solve a problem of physics.

Math spawned the first high level programming language. FORTRAN stads simply for FORmula TRANsform, and it was created only because the computer science community needed a higher expressive language, one that was closer to math.

LISP is probably the greatest example of the fact that without math, there is no computer science. LISP was never supposed to be a programming language. When John McCarthy created it, he needed a description system, much like lambda calculus. It was simply math. And now it is used for much much more.

Another subset of math, that CS couldnt live without: Discrete Mathematics. There is nothing more mathematical than RSA cryptography, and there is nothing of more interest to computer science and software development than it.

So, saying Computer Science does not need mathematics would be saying that all (i mean ALL, from Von Newmann's first computer to modern day programming languages) acomplishments in the field of computer science is actually worthless, or even if it is worth something, we would be mush more advanced if math wasn't involved in the first place.

Wel, mathematics does not find its was into modern day development. That true. I agree 110%. IT can live without mathematics. I mean, where is the math in MVC? In desktop applications? But computer science can't. Who develops the languages? Who makes the greates advancements in the field (the CS field, not software development)? Not simple programmers, simple engeneers, simple people with process description formats. No, the greatest advancements are made by those with a great deal of math knowledge. Coincidence? No.

Computer Science is NOT Software Development. UI design has nothing to do with math, that is true. Database schemas don't need complex math as well. But thats all Software Development. Computer Science is the study of computation and its applications in computer systems. And computation is inate to the world. To nature. Not only to development. And for that, you need math.
----------------------------------------------------------------------

Agree and disagree
written by gex, July 12, 2007
I too entered the computer field like the first poster. I was self taught, acquired certifications, and able to find employment and be successful.

I have since returned to college to get my Computer Science degree. It is math intensive.

I have to admit, that while it is possible to be a computer professional - a good one even - without the degree and math, that it seems to me that a lot of computational problems can be more elegantly solved with mathematics, and sometimes they can only be properly solved with mathematics. Anyone read the article How we learned to cheat at online poker? Basically a coder devised the shuffling algorithm, not a mathematician. The difference was huge.

That's not to say that a lot of the industry doesn't need it in its everyday application. I just feel that having the knowledge will make most computer scientists better at what they do. And some will be no good at all without it.
----------------------------------------------------------------------

Forget maths? NEVER
written by lanjoe9, July 12, 2007
Come on! Perhaps it is possible to design boring administrative programs without math. But ANYTHING that touches the "real world" (as in "dealing with physics") will require LOTS of math. And to me, those kind of things are the few ones that aren't boring.
----------------------------------------------------------------------

Lots of religious people
written by hyper, July 12, 2007
The computing world is made up of many different parts which all function differently... and require different types of thought process ((this is the reason IT / Computing has and is advancing so fast over the last 20 years))

If humans wish to advance further with computing a lot of humans will have to think outside of what we all currently understand and know about the world around us and this field we call it/computing.

exploring what we know now and what humans may know it a 10,000 years time this could be described the era of caveman computing...

Anyone proclaiming x subject matter is the holy grail are surely trapped in a closed minded world.

Surely if the human mind (has the potential to be) more powerful then any computers of today then there must be many times where humans come to the correct answer and not know how they came to that answer and not know how to explain how they are coming to the right answer time and time again...

so lets stop being religious about whatever subjects one has studied this has nothing to do with taking the maths out of CS or taking the maths out of computing... it is pointing to one the old ways of thinking may not be the most desired for future development... and why not experiment with other ways of doing the same thing might come up with new solutions....

the thought process of many will be random blurred between all different parts of computing. (((I may never understand everything about Quantum computing does not mean I should never try to build or use a Quantum computer or that I can not add value to designs /ideas)).
----------------------------------------------------------------------

un-religious children
written by hyper, July 12, 2007
and that is why a child of 5 can go EUREKA and the poor person studying (and being the leader in their field) for 90 years may never get to the answer they are searching.
----------------------------------------------------------------------

whooie
written by anonimous, July 12, 2007
Man, this article got folks worked up!
----------------------------------------------------------------------

What should Computer Science students learn from Mathematics?
written by Y.C. Tay, July 12, 2007
----------------------------------------------------------------------

interesting
written by daemon, July 13, 2007
Well, I'm amazed. I consider such idea also but not as hardcore as Mr. Fant I admire his courage to open such a scenario where Math should be of minor concern in Computer Science. I'm pretty much excited how this book of his would shape the future computer scientists.

I'm wondrin should there be a faction in the future in this field? Can't wait to see.

I wanna grab the book! lol!

Cheers! This thread is workin :p
----------------------------------------------------------------------

shop-culture versus school-culture
written by john allen, July 13, 2007
i guess i'm more distressed by the comments than fant's arguments. the comments express a very old argument that was fought over a century ago about the proper approach to traditional engineering and engineering education: trade versus discipline, a.k.a. shop- versus school-culture. today, any budding undergrad in traditional engineering knows how *that* turned out. i've argued that a similar "fate" awaits what we all too easily label software "engineers." below is a url to a talk i gave a few years ago about this topic:

http://www.international-lisp-conference.org/2005/media/allen-slides.pdf

comments welcome

john allen, resident curmudgeon
----------------------------------------------------------------------

Maths can't be discard
written by Jean-Francois Samson, July 14, 2007
----------------------------------------------------------------------

Um no.
written by Digitalzombie, July 16, 2007
There are many aspect for Computer Science degree.
For instance, algorithm, networking, unix admin, software engineering, embedded system,
data base, data mining, cryptography, Artificial Intelligent, etc...

Ok. As a computer science student (excuse my English), I believe this article is wrong.
Very very wrong.

Algortihm computer science need math. Networking need algorithm like shortest path,
breath search, depth search, etc... heck link lists and trees needs some sort of
discrete math.

You are wrong to assume that computer science require no math aspect. Unless you are a
web programmer you need math for most computer science concentration.

How do you think bit torrent works? The creator didn't exactly started to code.
He had to go through algorithm to do it. I think shortest path algorithm is used in Bit
Torrent I'll be taking networking soon so i'll know for sure.

Anyway, article is wrong. Unless the author is a comp sci or a drop out of the major.
Comp Sci is an Art and a Skill.

Crythography you need chinese remainder theorem, RSA, and modular.

Anyway, please don't degrade my major as some sort of joke. Come to America, we'll show
you real computer scientists.
----------------------------------------------------------------------

What to learn, if you need more math..
written by Jim P, July 16, 2007
I never went to college. I jumped right into the working world, learned Networking on the job, started "coding" and never looked back. I did ok in my high school algebra class but I remember very little of it that I know of.

The one thing I think this thread has been missing (maybe I missed it) was a suggestions on good paths to take to learn more math, for those of us who believe it does fulfill an important role. I'm the lead engineer at a start-up and have realized I hit a wall. I design and solve problems every day, but I know there are more efficient ways to do things. And as I learn more about depth/breath search, neural networks, etc I'm sorely missing in the math department.

Any suggestions from Algebra forward what the good things to learn are for an engineer/developer who didn't go to college or didn't pay attention in class?
----------------------------------------------------------------------

Re: What to learn, if you need more math..
written by Alex M., July 19, 2007
Check this out:
http://www.amazon.com/Concrete...16&sr=1-1

----------------------------------------------------------------------

Re: What to learn, if you need more math..
written by Alex M., July 19, 2007
Hmm.. that worked well. Here's the title of the book:

Concrete Mathematics: A Foundation for Computer Science (2nd Edition) (Hardcover)
by Ronald L. Graham (Author), Donald E. Knuth (Author), Oren Patashnik (Author)

Search for it on Amazon.
----------------------------------------------------------------------

Retired: Technical Principal in Computer Science/Technical Manager at JPL-NASA-Caltech: Spacecraft Ground Systems
written by Szabolcs Michael de Gyurky, July 20, 2007
Wow! All of your comments are correct. This is why we in our profession od CS/IT/Software Development are in trouble, and no longer competitive in the global market place! What to do before it is too late for our jobs? We need to define what Computer Science really is. What is the (academic/apprenticeship/trade-school) scope of our profession? I wrote the book The Cognitive Dynamics of Computer Science (see URL below) at the request of my staff and colleagues at JPL to answer the questions you are debating. All of you are correct in your subjective assessments of our profession. Please look at the comments on my book and see if you find resonance.
http://www.amazon.com/gp/product/0471970476/ref=pd_rvi_gw_1/103-1366852-0289401?ie=UTF8
----------------------------------------------------------------------

straw men and real applications
written by Steve B., July 24, 2007
Fant's argument, as excerpted in the article, appears to me to define "algorithm" extremely narrowly, so that in fact it is of limited applicability. Would anybody realistically say an operating system isn't built of algorithms, just because it's intended never to halt, or because it's intended to respond to inputs at unpredictable times? Would anybody realistically say a random algorithm, or a nondeterministic algorithm, doesn't qualify as an algorithm? Would anybody realistically say a circuit diagram doesn't qualify as an algorithm, just because it happens to be instantiated in simultaneous electronic components rather than sequential program steps? Nonsense! If that's really Fant's position (and no, I haven't read the book either), it's the flimsiest of straw men.

In fact, computer scientists HAVE been working for decades to find better ways to understand and express processes. And guess what tools and language they've been using to do it? MATHEMATICS, because process is an abstract concept, and mathematics is the best way anybody's found to express abstract concepts precisely.

Indeed, mathematics could almost be defined as the practice of abstraction: deciding which irrelevant details to ignore so as to see the essence of a problem more clearly. That happens to also be an incredibly useful technique in programming: if you find yourself writing similar code several times, it's a sign that you need to step back and refactor, creating an abstraction of the several pieces of similar code; the result is usually much shorter, clearer, more maintainable, and often more efficient than the original repetitive version was.

It takes mathematical thinking and mathematical language to design an operating system that's not vulnerable to deadlock, or to design a large network that's fail-safe against any one node going down, or to design an error-correcting code that sends data safely over noisy communication lines, or to understand the hierarchy of classes in a large OO program, or to express clearly the possible sequences of paths a user can take through a GUI, or to design a cryptographic protocol by which I can convince you that I am who I say I am, without enabling you to convince somebody else that you are me. These are practical things that affect how real programs really work. Does every programmer need enough mathematical background to invent such things? No, but every programmer should have enough mathematical background to at least understand them, so as to be able to implement them.

As a high school hacker, I decided to write a flight simulator. I already knew the necessary trigonometry, but my program refreshed the screen at about one pixel per second. A few years later I took linear algebra, which provides the tricks it would take to make it run thousands of times faster, enough to be useful. In that same linear algebra course, we studied something called eigenvalues and eigenvectors. They never made sense to me at the time, but guess what's at the heart of the original Google page-ranking algorithm, which helped Google produce better search results than most of the other search engines and become the industry leader.

Should computer science students also learn something about dealing with people? Absolutely, and in my classes they get a lot of teamwork practice. At the same time, they get a lot of practice at abstraction and generalization. It may not involve numbers or integral signs, but it's very definitely math.
----------------------------------------------------------------------

Prof
written by Donald, July 25, 2007
The OS is a collection of algorithms -- as a whole the process may be nondeterministic but each operation requires rather complex algorithms.

It doesn't take a computer scientist to install or manage an operating system but to write one.

It doesn't take a computer scientist to build a web page -- but it takes a computer scientist to build the tools that one uses to build a web page.

I don't think expression is the correct idea underlying computer science. It's part of the equation. Math(logic) is on the other. Abstraction is glue that binds.

A programmer or IT professional need only understand the expressive part of the equation. I have seen good programmers with little or no logic(math) skills. And i have seen scientist with no programming skills too.

A computer scientist must be able to provide abstractions that hide the complexity of the math. When this is done well, the math seems invisible.
----------------------------------------------------------------------

Don't "forget maths", understand its current state and role and think about how to improve it
written by Joseph B., July 30, 2007
It's not that the theory of algorithms isn't useful, it's that it is only a tiny part of what you need. Computer Science is too grand a term for the current curriculum, and a lot of the problem would be solved by simply changing the name. Theory of Algorithms or at least Theory of Computation would be more accurate.

It's also true that an intelligent person can learn the basics of the stuff that does get used often, like O(), in much less time than a full university program. These basics would be enough to get by in most situations, and let you look up and learn more specialized knowledge as needed, which just keeps getting easier as information technology progresses.

The reason there is the existing university degree program in Computer Science is because of tradition: the material is what first developed from older academic fields in relation to computation, and the idea that everyone should get 2-4 years of academic training is itself a tradition.

Exactly the same things can be said about Calculus, and engineering or other professions. Calculus is required for every field that isn't fine arts, and while you can cite things from calculus that have later relevance, actual uses during most people's careers are few and far between, and it is a truism that college does little to actually prepare students for real-world work. Schools freely admit that calculus classes are used primarily as a filter to reduce the number of students, and as a puzzle to demonstrate the student can think about some problems, regardless of how closely they are related to actual work. It is the Latin and Greek of our age.

I do not think that pointing this out implies disrespect for mathematics and its potential for gaining insights into real-world problems. On the contrary, I think little of this potential has yet been exploited, we should take on the hard intellectual work of discovering new mathematics and new applications, instead of being satisfied with a small collection of theories developed in the mid 20th century that address only a small part of the problems posed by computers or anything else.

I majored in both CS and math, getting an extra math degree with only 2-3 additional semesters because there was so much overlap, and have worked both in mathematics graduate school and the software industry. I have always had similar feelings to what I just expressed, but have seen very little discussion of the subject. People simply take the academic system in its current form as a given, rather than thinking critically about how to improve it.



---------------------------------------------------------------------------------------------------



Friday, July 6, 2007

In Support of Math Based Computer Science

<http://bitsup.blogspot.com/>

Earlier in my day, I ran across a book review for Computer Science Reconsidered: The Invocation Model of Process Expression. The premise of the book, at least garnered second hand from the review:

Mathematicians and computer scientists are pursuing fundamentally different aims, and the mathematician's tools are not as appropriate as was once supposed to the questions of the computer scientist
I had a number of reactions to that immediately. Most of them were, frankly, emotional. Certainly most of the code that gets churned out these days has very little conscious basis in Mathematics. But I would argue it doesn't have much of a conscious basis in Computer Science, Algorithms, or Finite Automata either which are all definitely critical some of the time. That is largely because so much of it is so well understood, and so abstracted away from first principles, that the underlying rigor isn't required to get the day to day bits churned out. The more important the code is, the more it moves down that spectrum of rigor.

But when we're really reaching for something new, something interesting, and something that isn't just an incremental change from the conventional wisdom, then my instincts say that Math provides a very valuable framework for describing something out of nothingness.

My gut was validated just hours later when reading an IEEE journal article on the so-called FastTCP active queue management TCP congestion control algorithm. The approach looks at congestion control as "a distributed algorithm over the Internet to solve a global optimization problem [.. to ..] determine the equilibrium and performance of the network"
Moreover, the underlying optimization problem has a simple structure that allows us to efficiently compute these equilibrium properties numerically, even for a large network that is hard to simulate.

Specifically, we can regard each source as having a utility function that measures its “happiness” as a function of its data rate. Consider the problem of maximizing the sum of all source utility functions over their rates, subject to link capacity constraints. This is a standard constrained optimization problem for which many iterative solutions exist. The challenge in our context is to solve for the optimal source rates in a distributed manner using only local information. A key feature we exploit is the duality theory. It says that associated with our (primal) utility maximization problem is a dual minimization problem. Whereas the primal variables over which utility is to be maximized are source rates, the dual variables for the dual problem are congestion measures at the links. Moreover, solving the dual problem is equivalent to solving the primal problem. There is a class of optimization algorithms that iteratively solve for both the primal and dual problems at once.

TCP/AQM can be interpreted as such a primal-dual algorithm that is distributed and decentralized, and solves both the primal and dual problems. TCP iterates on the source rates (a source increases or decreases its window in response to congestion in its path), and AQM iterates on the congestion measures (e.g., loss probability at a link increases or decreases as sources traversing that link increase or decrease their rates). They cooperate to determine iteratively the network operating point that maximizes aggregate utility. When this iterative process converges, the equilibrium source rates are optimal solutions of the primal problem and the equilibrium congestion measures are optimal solutions of the dual problem. The throughput and fairness of the network are thus determined by the TCP algorithm and the associated utility function, whereas utilization, loss, and delay are determined by the AQM algorithm.
It seems clear here that math provides very strong underpinning for what the article needs to describe and achieve. To be fair to the author of the original book, he was trying to promote another basis for expressing key Computer Science thoughts: "the invocation model of process expression". Which from casual glance looks interesting, I just don't get why you have to tear down something old (e.g. "The Problem: Why the underlying theory of contemporary computer science is not helpful") in order to build up something new.

Maybe being shocking is good for selling books. Though, I'm not sure the labeling of math as not helpful is all that shocking to the general book buying population.

Check out www.fastsoft.com where some of the authors of that paper have created a clever hardware bridge to seamlessly migrate a legacy TCP data center into one that sends with FastTCP congestion control algorithm.

---------------------------------------------------------------------------------------------------

Primary school maths is sufficient for most day-to-day activities for most people

<http://forums.hypography.com/philosophy-science/11533-primary-school-maths-sufficient-most-day-4.html>



Philosophy of Science
What makes science science?


PuGZ
Offline

 
Posts: 44
Threads: 2
Join Date: May 2007
Location: Melbourne, Australia
Rep Power: 0
Re: Primary school maths is sufficient for most day-to-day activities for most people - 08-03-2007, 03:06 AM

It sounds to me as little more than one man stirring the pot in a bid to garner some interest for his latest book.

While it is true that the majority of low-level (in terms of skill and application, not computer terms) programmers will never need to write their own algorithm, it's absolutely essential that they have an understanding of Big-O notation and the mathematics behind it. Without this vital knowledge, programmers will only ever accidentally stumble upon correct solutions to simple problems.

Computer scientists - on the other hand - are not low-level code-monkeys and will always need a solid grasp on mathematical fundamentals if they are ever to make a useful contribution to the field.
 
  (#32 (permalink))
CraigD
Offline


 
Posts: 3,041
Threads: 64
Join Date: May 2005
Location: Silver Spring, MD, USA
Rep Power: 892
Post Karl Fant's book ... rumors of the death of Math exagerated? - 08-04-2007, 04:43 AM

Quote:
Originally Posted by Michaelangelica View Post
As the itwire article and some other describe Karl Fant’s “Computer Science Reconsidered: The Invocation Model of Process Expression” appears to be making a claim with which many people with an academic background in math and a professional one in computer programming (including I) would agree: that there exists a troubling gap between the formal methods of the mathematics of computing (in which, ultimately, any program is equivalent to a single integer), and the practical techniques effective in writing useful computer programs. Rather than suggesting that Computer Science should avoid the use of math, Fant appear to be suggesting merely what many computer scientists and mathematicians suspect: that CS is, in the large, using the wrong math, and that a better math needs to be developed if computing is to approach the full practical potential offered by current and future computing hardware. Fant then proceeds to engage in a bit of 20th century historic speculation that the reason for this “false start” is that the first people to build and program computers were brilliant mathematicians (ie: John von Neuman; Alan Turing), so naturally “seeded” the emerging academic discipline with mathematical terms and “flavor” – a reasonable, if by no means certain, speculation.

While it’s obvious to me that the need Fant describes exists, and based on examples such as the publisher’s free first chapter offering, that he’s knowledgeable of and thoughtful about the history of ideas of computing, math, science, and philosophy, it’s not obvious to me that Fant’s rethinking of CS – “the invocation model of process expression” – is, as its publishers and promoters claim groundbreaking, revolutionary, or, ultimately, an improvement.

From other reviews, such asDavid Duncan’s amazon.com review (the first, and as of this writing, only review. I’m guessing this David Duncan is the writer and journalists, not the guy famous for shredding lots of Enron document), my suspicion that Fant’s understanding of the problem exceeds his understanding of a solution is reinforced. I expect, thus, that, as Duncan’s review describes it, Fant’s book is “[like] a mix of Copernicus and Tesla - lots of wild new ideas, ocassionally stunning insights and many sparks”.

From the little I’ve read (chapter 1), I have a concern that Fant’s objections to the algorithm as a fundamental CS concept may be based on an overly narrow, misrepresenting definition. Nonetheless, I’d very much like to read the book, but, as is so often the case with Wiley, find it outrageously priced at US$90 for 250 pages, and apparently completely unavailable in electronic form.

Why is it that professed revolutionaries are so often so old-fashioned in their approaches to publishing?
Quote:
Originally Posted by Michaelangelica View Post
Another nail in the coffin of an over-rated, over-resourced, badly & slovenly taught subject
I wouldn’t begin digging that grave yet. As long as there’s a desire for technology such as robots and video games, there will remain a need for at least engineering math, and as long as free though is permitted, for math of every kind.

As with most academic disciplines, being over or under-rated is largely irrelevant to Math and the people who like it.

As for being over-resourced, this claim puzzles me. Unlike disciplines such as Physics, with its penchant for huge, expensive particle colliders, Math appears to me to require little in the way of money, materials, and staff. As the old joke goes “all we need are paper, pencils, and erasers.” (you may recall the punchline: “We philosophers don’t even need the erasers!”)

You’ll get no disagreement from me about Math being badly taught. This seems, however, a failing of the training and support of teachers, rather than of the subject.


Moderator: Computers and Technology; Medical Science; Science Projects and Homework; Philosophy of Science; Physics and Mathematics; Environmental Studies
   
  (#33 (permalink))  
Michaelangelica
Offline
Creating
Michaelangelica has a reputation beyond reputeMichaelangelica has a reputation beyond reputeMichaelangelica has a reputation beyond reputeMichaelangelica has a reputation beyond reputeMichaelangelica has a reputation beyond reputeMichaelangelica has a reputation beyond reputeMichaelangelica has a reputation beyond reputeMichaelangelica has a reputation beyond reputeMichaelangelica has a reputation beyond reputeMichaelangelica has a reputation beyond reputeMichaelangelica has a reputation beyond repute
 
Michaelangelica's Avatar
 
Posts: 3,064
Threads: 143
Join Date: Apr 2006
Location: North of Sydney Australia
Rep Power: 732
Smile Re: Primary school maths is sufficient for most day-to-day activities for most people - 08-04-2007, 04:54 PM

More on math teachers and the psychology of the subject & the damage it does
Quote:
Christine Ingleton
The University of Adelaide
Australia
Kerry O'Regan
University of South Australia


Abstract

It seems paradoxical that mathematics is constructed as an objective, emotion-free discipline, yet mathematics engenders strong negative emotions among many learners. Emotions play a significant part in the learning process. In relation to the learning of mathematics, the focus in the literature is on the emotion of anxiety. This has largely been investigated from the perspective of psychology, with the use of psychometric tests, particularly the MARS (Mathematics Anxiety Rating Scale). The focus of this social-constructionist study is on the interactions that construct both emotion and learning in a social setting.
In exploring the experiences of prospective and current teachers at primary, secondary and tertiary levels at two South Australian universities, strong emotions were found to pervade mathematics learning in experiences from early primary schooling to tertiary level.
In some mathematics classrooms, public shaming for being wrong has been a common form of socialisation and control, diminishing confidence and arousing fear.
We conclude that the interrelationships between pride and shame, and success and failure, in mathematics classrooms (and others) are associated with levels of threat and confidence that dispose students to act in certain ways towards mathematics.
Mathematics is a subject of some contradictions


m
(always peccable, sometimes sapient)
   
  (#34 (permalink))
Michaelangelica
Offline


Posts: 3,064
Threads: 143
Join Date: Apr 2006
Location: North of Sydney Australia
Rep Power: 732
Smile Re: Karl Fant's book ... rumors of the death of Math exagerated? - 08-04-2007, 11:49 PM

[quote]
Quote:
Originally Posted by CraigD View Post

As for being over-resourced, this claim puzzles me.
I meant in terms of teachers.
It takes english teacher 30m-1 hour or more to mark an English assignment in detail.
It takes math teachers 4 minutes; then they are off to the pub.

Quote:
When pressed on this issue, students elaborated that you need to know basic Maths in life for such things as filling in tax forms, for banking or for shopping.
These tasks, however, seldom require any Mathematical training above the acquisition of basic numeracy skills, so it is difficult to understand what they think they will find in Senior Mathematics to help them to cope with these general tasks
. . .
It is with the same unfounded certainty that students' state that Maths is essential for getting a job, seeming to only be able to relate this to adding up prices of goods or services.
. . .
"some programs targeting girls have indirectly given students the message that 'masculine' subjects are superior, by urging girls to study traditionally masculine subjects such as maths and science while ignoring boys' lack of interest in the humanities and the arts."
.. . .
It is with the same unfounded certainty that students' state that Maths is essential for getting a job, seeming to only be able to relate this to adding up prices of goods or services.


m
(always peccable, sometimes sapient)

Last edited by Michaelangelica : 08-04-2007 at 11:55 PM.
   
  (#35 (permalink))  
CraigD
Offline
Creating

 
Posts: 3,041
Threads: 64
Join Date: May 2005
Location: Silver Spring, MD, USA
Rep Power: 892
Wink The pub traditions of English and Math teachers - 08-08-2007, 05:42 AM

Quote:
Originally Posted by Michaelangelica View Post
It takes english teacher 30m-1 hour or more to mark an English assignment in detail.
It takes math teachers 4 minutes; then they are off to the pub.
The pub tradition is a vital part of the math discipline! (We don’t precisely have pubs in the US, but have a variety of approximate equivalents) And, personally, I wouldn’t trust an English teacher who doesn’t frequent one, either.

Seriously, as someone who’s taught Math and physical science (a college, not HS class, but a “remedial” one not much more advanced than 9th grade level), and socialized with several teachers of English and other humanities, I can attest that, though Math and phys sci exams may be easier to score than English papers, I spent more of my office hours helping my students than my non-math-teaching colleagues – and such work is more stressful…

… which may account somewhat for the pub tradition.


Moderator: Computers and Technology; Medical Science; Science Projects and Homework; Philosophy of Science; Physics and Mathematics; Environmental Studies

Last edited by CraigD : 08-08-2007 at 05:44 AM. Reason: Grammer fix
   
Michaelangelica
Offline
Creating

 
Posts: 3,064
Threads: 143
Join Date: Apr 2006
Location: North of Sydney Australia
Rep Power: 732
Re: The pub traditions of English and Math teachers - 08-08-2007, 06:03 PM

Quote:
Originally Posted by CraigD View Post
I spent more of my office hours helping my students than my non-math-teaching colleagues – and such work is more stressful…

… which may account somewhat for the pub tradition.
Marking in detail is helping; then often a discussion is necessary. Meanwhile the math teachers are discussing school politics and organising an easier life for themselves.
High school English teachers would have little time to themselves if doing their job properly

On a world scale, looking at developing countries
City Mayors: World Education
Quote:
still more than 100 million children who are not receiving regular education and many drop out before grade 5 of primary school or graduate without mastering even a minimum set of cognitive skills. In one-third of countries, for example, less than 75 per cent of students reach grade 5.
. . .
the Report, “found that some primary school mathematics teachers possessed only basic numeracy and actually scored lower than students on the same tests.”


m
(always peccable, sometimes sapient)
   
freeztar
Offline

 


 
Posts: 1,317
Threads: 35
Join Date: Oct 2005
Location: ATL, GA, USA
Rep Power: 415
Re: The pub traditions of English and Math teachers - 08-13-2007, 09:10 AM

Quote:
Originally Posted by Michaelangelica View Post
Marking in detail is helping; then often a discussion is necessary. Meanwhile the math teachers are discussing school politics and organising an easier life for themselves.
High school English teachers would have little time to themselves if doing their job properly
The same argument can be made for math teachers.
An X or check mark is not valid scoring for any subject imho.

Several math teachers that I have had would go through my work and point out where my errors in calculation have led to my wrong answer. This is infinitely more helpful than just a "wrong". It would also probably save any teacher from having to spend quite as much time with students outside of class.


"We need nature, and particularly its wilderness strongholds. It is the alien world that gave rise to our species, and the home to which we can safely return. It offers choices our spirit was designed to enjoy." - E.O. Wilson
   
  (#38 (permalink)) Unread
Monomer
Offline


 
Posts: 509
Threads: 7
Join Date: Jun 2005
Location: Adelaide, South Australia
Rep Power: 313
Re: Primary school maths is sufficient for most day-to-day activities for most people - Yesterday, 03:13 PM

Quote:
the Report, “found that some primary school mathematics teachers possessed only basic numeracy and actually scored lower than students on the same tests.”
The thing with primary school teachers is that they have just a basic knowledge of the subjects they need to teach. Each primary school class has one teacher who teaches them maths, geography, history, science...etc. They don't have a different teacher for each subject, as high school students do, because apparently it's too much of a disruption to the kids. But perhaps it's worth adopting a high school model where teachers instruct the kids in subjects they have specialised in.

When I was in high school, in years 9 and 11 I had my PE teachers as my maths teacher (because they were short on teachers), and I didn't particularly enjoy the subject. I was never a great maths student, and those years I certainly didn't shine in that subject. But in year 12 I had an actual maths teacher and he was fantastic. He had a real gift for teaching, and was able to explain the concepts in a way that I understood and I excelled in the subject and was top of the class. He also went through my work, and like freeztar's teachers, pointed out where I had gone wrong.

So my point is that I think it's really important to have properly qualified teachers otherwise the students will lose interest, and perhaps they have a knack for maths that has yet to be unleased. I only persevered with maths because I needed it to get into uni, but most people dropped the subject as soon as they could.



---------------------------------------------------------------------------------------------------

Karl Fant Reconsidered

Mark Damon Hughes
<http://kuoi.com/~kamikaze/read.php?id=151>



Karl Fant has released a rather ridiculous new book, "Computer Science Reconsidered: The Invocation Model of Process Expression", apparently a 45x longer version of his 1993 paper "A critical review of the notion of algorithm in computer science" (ACM membership required to read the paper, but if you're not in the ACM, you should be).

I won't be wasting my money on the book, but the paper is presumably representative of his soi-disant logic.

His first claim is that Alan Turing and John Von Neumann "infected" computing with mathematics, just because they happened to be mathematicians with a bent for algorithms when they worked on early computers... This is equivalent to shouting "conspiracy!" because all bridges are built by civil engineers, and all maps are made by cartographers. A computer is a mathematical device. There's nothing here but numbers, being manipulated in a small number of ways in a deterministic, step-by-step process. Who else but a mathematician is going to be able to design and analyze one? Ada Lovelace, a mathematics student and the first programmer (albeit for a computer that was never built) independently came up with very similar algorithmic processes and expressions. This is an inevitable result of trying to accomplish anything with computers.

His next claim is that a mathematician's algorithm is the abstract "expression of a process"--the semantics, though he's unable to articulate that distinction--and that computer science is really about language expression--the syntax:

Mathematics is primarily concerned with the nature of the behavior of process independent of how that process is expressed.

The nature of a process is independent of its expression.

Computer science is primarily concerned with the nature of the expression of processes regardless of what particular process might be expressed.

The nature of an expression is independent of its process.

-Karl Fant

His description of Computer Science there is entirely wrong. Computers do not execute our nice high-level languages. Our syntax is only for our own benefit. We use compilers to reduce our human-readable syntax down to what we call machine language, the bytes in memory itself, but even those aren't really what gets executed, they really become microcode, which is then executed. The syntax we use has nothing to do with the final syntax of the executed code, but the process that we specified, the semantics, are carried down to the lowest levels of logic gates. Real Programmers can work down at the machine code and mechanical limits level of hardware, but the rest of us work at an entirely different syntactic level, and yet we're able to make working code. This can only be possible if the process is independent of the expression, if semantics are independent of syntax.

Fant's next blunder is deciding that only the strictest mathematical sense of "algorithm" can be used:

  1. An algorithm must be a step by step sequence of operations
  2. Each operation must be precisely defined
  3. An algorithm must terminate in a finite number of steps
  4. An algorithm must effectively yield a correct solution
  5. An algorithm must be deterministic in that given the same input it will always yield the same solution

-Karl Fant

Here he shows a gross misunderstanding of how computer science uses these terms.

  1. This is absolutely true, because computers operate in a step-by-step sequence of operations.
  2. This is absolutely true, because computers are extremely literal machines.
  3. The requirement for a finite number of steps allows for a very large, unbounded finite number of steps. A program must be stoppable, even if only by interrupts (which are a well-defined input, even though implicit). An operating system must have the ability to be shut down. We know that in reality, there are also hardware failures, the sun could go supernova, etc., but that's outside the scope of algorithmic analysis.
  4. Correctness does not mean the answer is right, only that it is logically consistent. As with any logical system, if you put garbage in, or if you have a bug in your algorithm, you get garbage out.
  5. An algorithm simulates "random" inputs by use of the Universal Turing Machine's "infinite tape". Given the same inputs, whether from "random" sources or not, it is absolutely true that a computer will always give the same outputs. Those outputs are not in a single number "solution" in most cases, but instead consist of further changes to the "infinite tape", writing to devices, etc.

So what's the purpose of an algorithm? Analysis. By refining your function definition down to an algorithm, you can determine how long it will take to complete, whether there is always a path to termination in it (whether it will take that path to termination is indeterminable, but the existence of the path must be provable). You can't do that by just proving that the syntax is correct, as Fant seems to think. You can't do that without formalizing your logic; not all expression systems are equally useful for all tasks, but it is always possible to translate from one Turing-complete expression system to another. If you can't analyze your algorithms, you will write slow, crappy code.

And at the bottom, that's what it's really all about: producing efficient, reliable code.

Return to topic



---------------------------------------------------------------------------------------------------
<Revolutionary to Reactionary>
---------------------------------------------------------------------------------------------------