# CS Profs Debate Role of Math In CS Education

#### Soulskill posted more than 3 years ago | from the can-google-find-integrals-yet dept.

583
theodp writes *"Worried that his love-hate relationship with math might force him to give up the pursuit of computer science, CS student Dean Chen finds comfort from an unlikely source — the postings of CS professors on the SIGSE mailing list. 'I understand that discussing the role of math in CS is one of those religious war type issues,' writes Brad Vander Zanden. 'After 30 years in the field, I still fail to see how calculus and continuous math correlate with one's ability to succeed in many areas of computer science...I have seen many outstanding programmers who struggled with calculus and never really got it.' Dennis Frailey makes a distinction between CS research and applied CS: 'For too long, we have taught computer science as an academic discipline (as though all of our students will go on to get PhDs and then become CS faculty members) even though for most of us, our students are overwhelmingly seeking careers in which they apply computer science.' Frailey adds that part of the problem may be that some CS Profs — math gods that they may be — are ill-equipped to teach CS in a non-mathematical manner: 'Let's be honest about another aspect of the problem — what can the faculty teach? For a variety of reasons, a typical CS faculty consists mainly of individuals who specialize in CS as a discipline, often with strong mathematical backgrounds. How many of them could teach a good course in cloud computing or multi-core systems or software engineering or any of the many other topics that the graduates will find useful when they graduate? Are such courses always relegated to instructors or adjuncts or other non-tenure-track faculty?' So, how does this jibe with Slashdotters' experience?"*

## Calculus? Psh (0)

## Anonymous Coward | more than 3 years ago | (#35465056)

I don't think it's continuous math that is the hard part of CS... http://www.cs.cmu.edu/afs/cs.cmu.edu/academic/class/15251-f07/Site/ [cmu.edu]

## Haven't we already seen this (0)

## Compaqt (1758360) | more than 3 years ago | (#35465058)

on Slashdot?

Could ./ benefit from some kind of elementary math in some SQL scripts?

SELECT count(DISTINCT story_url) ?

## Re:Haven't we already seen this (1, Insightful)

## Anonymous Coward | more than 3 years ago | (#35465108)

It's not ./, it's /. you twit.

## Re:Haven't we already seen this (0)

## Anonymous Coward | more than 3 years ago | (#35465140)

../., ?

## Re:Haven't we already seen this (0)

## Anonymous Coward | more than 3 years ago | (#35465314)

It's a typo; keep your pants on, jeez.

## Re:Haven't we already seen this (0)

## Anonymous Coward | more than 3 years ago | (#35465332)

4

## Do you want computer science, or engineering? (4, Interesting)

## FooAtWFU (699187) | more than 3 years ago | (#35465064)

## Re:Do you want computer science, or engineering? (5, Insightful)

## curril (42335) | more than 3 years ago | (#35465124)

Which is really the way it should be broken out. Computer Science should be about the math, theories, and algorithms that make up computation, and computer software engineering should be more about building applications. Sort of like how traditional engineering relates to physics.

## Re:Do you want computer science, or engineering? (5, Funny)

## $RANDOMLUSER (804576) | more than 3 years ago | (#35465232)

Thanks a lot. Like there weren't

alreadyenough religious warriors at this party.## Re:Do you want computer science, or engineering? (1)

## AK Marc (707885) | more than 3 years ago | (#35465422)

Sadly, there is almost nothing that will be learned in 4 years of college that used that couldn't be taught in 10 minutes of skimming through a "best practices" document that isn't already done in the software packages one would be using for work. It's mainly being used as a litmus test to see if people are trainable. Which is sad. It's got no more meaning than a paper MCSE, but takes 4-5 years and $100,000 for a piece of paper.

## Re:Do you want computer science, or engineering? (0)

## Anonymous Coward | more than 3 years ago | (#35465308)

Why can't it be both?

## Re:Do you want computer science, or engineering? (1)

## Sloppy (14984) | more than 3 years ago | (#35465392)

There's no reason it can't, but won't be efficient. You might as well ask why someone can't learn to herd sheep, operate a loom, and design/predict the next season's clothing fashions. Someone

cando all those things, and they're all related, and yet I kind of doubt that someone who learns to predict fashions is also going to be good at herd-- hey waitaminute, maybe they are really are the same-- no, the weaving skills don't fit into this conjecture at all.## Re:Do you want computer science, or engineering? (1)

## theillien (984847) | more than 3 years ago | (#35465346)

## Do you want a university or a trade school? (4, Insightful)

## jmcbain (1233044) | more than 3 years ago | (#35465406)

I think a better question is: Do these professors think their college should be an institution of higher learning or a trade school? (Disclaimer: I got a PhD from a top-20 university.)

Let me make a few points:

First, while it's true that numerical math is not used in many CS areas, discrete math is. Logic, set operations, and the like are used pervasively in CS. And learning numerical math is a core breadth area that instills mental discipline. Quite frankly, if math is not your strong point, then you should consider moving out of CS.

Second, the role of a university CS undergraduate curriculum is not to teach "cloud computing or multi-core systems or software engineering". It's to teach core CS topics. It's like like suggesting that a mechanical engineering student should be taught how to fix the engine of a Ford Mustang or that an electrical engineering student should be taught how to install video cards into a PC.

Let me make this clear:

Any "hot topic" CS subject you teach in a university will be outdated in a few years, quite possibly between the student's freshman and senior year.This includes "cloud computing" and "multi-core systems". Back in my day, the hot topics du jour were ATM networking and grid computing, but fortunately I went to a good university that focused on core topics.What's the difference, you ask? Here are you go:

Hot topic: cloud computing

Core CS topics: distributed systems, distributed algorithms, operating systems

Hot topic: programming in C#

Core CS topic: programming language structure, compilers, automata theory

Hot topic: multi-core systems

Core CS topic: computer architecture (x86, for example), instruction sets, digital systems

Hot topic: writing video games

Core CS topics: graphics, linear algebra, digital image processing

Learning math and these CS core topics allows students to learn new skills in the future. Case-in-point: Recently I have been working in a new area: machine learning algorithms (SVMs, bayesian inferencing, etc.). The importance of this area has grown in the Google-era and was not widely regarded when I was an undergraduate. My fundamental knowledge in mathematics is serving me well right now.

Finally, the professors quoted in the article are from U. of Tennessee and SMU, which are like 4th-tier universities. So don't take their word too seriously.

## Simple Solution (5, Insightful)

## ExploHD (888637) | more than 3 years ago | (#35465070)

## Re:Simple Solution (3, Informative)

## Gorobei (127755) | more than 3 years ago | (#35465094)

Um, the prof was saying calculus and continuous math have little to do with CS. Discrete math, etc, is always going to be a big part of CS/algorithms.

## Re:Simple Solution (0)

## Anonymous Coward | more than 3 years ago | (#35465218)

Discrete math is also fun, in contrast to calculus...

(ops...)

## Re:Simple Solution (0)

## Anonymous Coward | more than 3 years ago | (#35465330)

my subjective view is a reversal of yours (except the "ops" part)

## Re:Simple Solution (4, Insightful)

## Anonymous Coward | more than 3 years ago | (#35465382)

Um, the prof was saying calculus and continuous math have little to do with CS.

And he couldn't be more wrong, IMO. Knowing only discrete math, or only continuous math, can be as bad as being blind or deaf; it may arbitrarily limit the abilities of otherwise smart people, resulting in worse solutions, or none at all, to many problems. For example, factorials of large numbers can be approximated much faster using continuous functions. And since calculus pops up everywhere in the real world, anyone doing real world simulation (like graphics and physics) may need it! In fact, I believe one should be familiar with as broad a field of math as possible; for instance, abstract algebra and geometry are both very useful.

Math is very stable knowledge that can be applied to all kinds of problems and may speed up the learning of new concepts. Industry related things usually aren't that stable: It simply makes more sense to learn proper theory and then specialize as needed for the problems at hand. Moreover, teaching such unstable things in universities is borderline idiotic, since they may no longer be relevant after graduation!

## BSCS == Code monkey (0)

## Anonymous Coward | more than 3 years ago | (#35465480)

If you don't want math with your computer science, learn computers / networks / shiny jargon at a trade school

Which is precisely what employers want someone with a

BSCSto do: sling code, manage their network, administer the database and many times support. Just go through the job listings and you'll see the typical laundry list with "a degree in Computer Science, Engineering or Information Technology wanted."If you want to do algorithms and other mathematical type of things, you'll need at least a Master in Mathematics - skip the MSCS - most of those jobs want a graduate degree in math.

Here I'll add to the war:

CS = code slinger; aka Code Monkey.

Math = algorithms and design.

If you don't want to be a code monkey kids, get a degree in Math.

The Information Systems guys will end up in management.

## Everything we do is maths (1)

## Colin Smith (2679) | more than 3 years ago | (#35465072)

It's everywhere. Unfortunately, it seems that the overwhelming majority of those who are taught it are almost universally unable to see where it can and should be applied.

## "unable to see"? you have to be taught (0)

## Anonymous Coward | more than 3 years ago | (#35465320)

I was always taught to use maths for maths homework -- i'm sure this lesson is universal

## Re:Everything we do is maths (1)

## icebike (68054) | more than 3 years ago | (#35465440)

It's everywhere. Unfortunately, it seems that the overwhelming majority of those who are taught it are almost universally unable to see where it can and should be applied.

Perhaps there is some truth to that, but the history of the last 20 years of CS education has suggested that far too much time is spent teaching maths that have virtually no applicability to life beyond degree.

There are computer fields where math education is critical, such as high end graphics, image manipulation, audio codecs, etc. But for the bulk of software engineers, programmers, network techs, sys-admins, and developers higher maths and calculus is totally unnecessary, simply NEVER used in real life applications.

The whole field of computer science has been taken over by the higher maths crowd, starting with the assumptions that since its computers it must be complex and therefore it must need math. I challenged a professor as to why CS was a sub department of the Math department at my university (back in the day before CS broke out as its own school), and the rationale was that iteration (use of subscripts), dealing with arrays, counters, even summing simple numbers were all "math". And with that sweeping (and wrong) assertion the math department captured Computer Science for the next 15 years, doing irreparable harm in my view.

In the real world, I could never hire these people because they couldn't get anything done. The few I did hire had to be "promoted" to the "turkey farm" doing studies and proposals to get them out of the way. Admittedly my field of systems development were more geared toward financial and tracking applications and commercial software development. But over my meager 30 years in the industry I've never seen any math more complex than that necessary for linear regression analysis, chi squares, and a few present value calculations.

Most, the overwhelmingly vast majority of computer related work is simply not rocket science.

## It's not the math ... (2, Funny)

## tomhudson (43916) | more than 3 years ago | (#35465078)

We need some grammar nazis in the admissions offices.

## Re:It's not the math ... (0)

## Anonymous Coward | more than 3 years ago | (#35465130)

## Re:It's not the math ... (2)

## tomhudson (43916) | more than 3 years ago | (#35465254)

A space elevator for the moon would only require the same tensile strength as kevlar, and one for Mars would be doable at the limits of current technology if it weren't for Phobos getting in the way every 8 hours..

So the best way to get an Earth space elevator (or anything else) is to get your materials from the moon, from the lunar space elevator, rather than boosting them up Earth's gravity well.

## Re:It's not the math ... (1)

## hedwards (940851) | more than 3 years ago | (#35465152)

Or, we need to realize that people arn't perfect, and that peopel like you could benefit from etiquete lessons and probably a dose of Paxil to help take the edge of the OCD.

## Re:It's not the math ... (2, Insightful)

## Anonymous Coward | more than 3 years ago | (#35465226)

You may try to write off this guy as anal. However, if you mix up your grammar on the job, I'll see you as a moron. Therefore, I'll give you the crappy assignments. Sorry, that is just the way it is. How can I trust you with a computer language when you can't even master the one you grew up with?

## Re:It's not the math ... (4, Insightful)

## thisnamestoolong (1584383) | more than 3 years ago | (#35465282)

Let's eat grandpa!

Grammar: it saves lives.

## Re:It's not the math ... (4, Insightful)

## $RANDOMLUSER (804576) | more than 3 years ago | (#35465200)

does; similarly, an e-mail mayreadas though it says something useful, yet impart no actual information. We all see examples of these phenomena every day when we write code for a living.## Re:It's not the math ... (1)

## real gumby (11516) | more than 3 years ago | (#35465244)

I read your as half jest, half serious, but on a serious note: I find that good (and great) programmers are also very clear writers in English.

I think there's a strong correlation between the skills needed to decompose a problem, structure a solution, and find appropriate and understandable (to other programmers and one's self later) constructs in order to write a good program and the same skills in making an argument or mastering a complex topic.

I don't mean to suggest that great hackers are automatically great novelists! I am talking about clear expository prose.

## linear algebra (2)

## aahpandasrun (948239) | more than 3 years ago | (#35465082)

## Re:linear algebra (2)

## hedwards (940851) | more than 3 years ago | (#35465184)

All the schools I've ever been to require students to take calc 1 & 2 in order to get to linear algebra. Plus, you don't typically see series and sequences until calc 3, and those are probably the most useful portion of calculus for programmers. You don't see it until then because they typically want you to have an understanding of what exactly it is that you're doing.

Differential equations is probably not a bad thing to have under the belt either, depending upon what exactly it is that you're wanting to program. Besides, aren't computer scientists supposed to be more than glorified programmers?

And it's really not a waste, unless you fail to learn the conceptual basis for it. A lot of it is useful in terms of informing a person's way of looking at the world. Calculus itself is considered a freshman level series at most colleges and most other sciences require it as a condition of graduation. Sure if you focus on the calculations I'm sure it isn't terribly useful, but it does contribute towards ones understanding of how to model things mathematically.

## Re:linear algebra (1)

## BlogTroller (1723086) | more than 3 years ago | (#35465300)

## Re:linear algebra (1)

## egladil (1640419) | more than 3 years ago | (#35465456)

## Re:linear algebra (0)

## Anonymous Coward | more than 3 years ago | (#35465410)

+1, sir.

## calculus 1 2 and 3 (0)

## Anonymous Coward | more than 3 years ago | (#35465196)

and even physicls 3a/3b and 4a -- some curricula are retarded

## Re:linear algebra (3, Insightful)

## phantomfive (622387) | more than 3 years ago | (#35465216)

## Re:linear algebra (0)

## Anonymous Coward | more than 3 years ago | (#35465316)

If you're in college asking questions like "How is this necessary for my job?" you are in the wrong place. If you aren't interested in getting a well-rounded education, gtfo. This is the purpose of college.

## Re:linear algebra (1)

## nhaehnle (1844580) | more than 3 years ago | (#35465404)

There are quite a lot of places in CS theory where calculus or, to be more precise, a solid understanding of the exponential function and related topics, is very valuable. I remember taking a course on networking at university, and it happened to talk about probabilistic algorithms, queueing theory, etc., where people suddenly had to deal with exponential distributions and such things, which are really built on calculus. Of course, teaching calculus in the first year probably isn't going to help that much when people actually only need it two or three years later, but that's a general problem in education.

## Some Math is Good (5, Interesting)

## shawnhcorey (1315781) | more than 3 years ago | (#35465086)

## Re:Some Math is Good (0)

## Anonymous Coward | more than 3 years ago | (#35465120)

grammer nazi's is shouldn't taeck the rain, their stutid.

## Re:Some Math is Good (0)

## Anonymous Coward | more than 3 years ago | (#35465240)

i froma china town and I ROR when I read your statement

## How about something that will be useful (-1)

## Anonymous Coward | more than 3 years ago | (#35465090)

In the real world. You know when they are actually working for a living?

Such as Fault Finding?

And other mundane real world things?

## bla bla fad bla (1)

## Anonymous Coward | more than 3 years ago | (#35465092)

1. Undergrad comp sci is for the fundamentals of comp sci, not the latest marketing buzzwords like "cloud computing";

2. Comp sci is a branch of mathematics, and any of the elementary branches of mathematics may be combined to improve your toolset. For example, complexity theory may involve analytic number theory;

3. You probably wanted a trade school. Universities do

notexist to train you for a job. They may make you better in the workplace, but that's incidental.## Re:bla bla fad bla (1)

## sydneyfong (410107) | more than 3 years ago | (#35465302)

1. Undergrad comp sci is for the fundamentals of comp sci, not the latest marketing buzzwords like "cloud computing";

There is a lot of fundamentals in distributed systems/algorithms/computing. And as far as I understand it, it doesn't depend on any established branch of "mathematics".

Sure, you can always find courses on "cloud computing" that teaches you how to create Amazon EC2 instances, call remote APIs and so on, but there is a lot of difficult things in there, which, I presume from your maths background, probably didn't appreciate.

## Re:bla bla fad bla (0)

## Anonymous Coward | more than 3 years ago | (#35465492)

There is a lot of fundamentals in distributed systems/algorithms/computing.

Agreed. As an undergrad I learnt from her stuff [cam.ac.uk] . Someting's wrong with America if concurrent, distributed systems theory isn't considered a legitimate branch of computer science.

But "cloud computing" is something very different, being a marketing term for "stuff being stored and processed somehow somewhere else so I don't have to think much about it". The term is usually used to refer to particular APIs or "web apps" on top of little more than a modern storage VAXcluster or a classical server instance which can be migrated transparently between physical hosts. A true concurrent, distributed transaction processing/operating system (from the PoV of processing and storage) is rarely provided.

And as far as I understand it, it doesn't depend on any established branch of "mathematics".

How are you modelling? How are you proving resilience? How are you measuring performance, asymptotically and theoretically? You require both mathematical maturity and grasp of all the elementary branches of mathematics in order to give yourself the opportunity to fully explore any topic in computer science. I'm not really sure what the counterargument here is beyond, "I want to be lazy and get by with the minimum to pass 'cos some mathematics is hard."

## Re:bla bla fad bla (1)

## Anonymous Coward | more than 3 years ago | (#35465478)

## Speaking for myself (0)

## Anonymous Coward | more than 3 years ago | (#35465114)

## Re:Speaking for myself (1)

## tomhudson (43916) | more than 3 years ago | (#35465170)

A fine piece of social engineering.

## take responsibility (0)

## Anonymous Coward | more than 3 years ago | (#35465176)

CS degree != webmonkey

## Seen this so many times before.... (0)

## Anonymous Coward | more than 3 years ago | (#35465126)

In the Business degrees the students/profs didn't get no respect (and were nowhere near as funny as Rodney Dangerfield). So, they started adding "math just like the real degrees." It has gotten to the point that when you look at the requirements for an Accounting Ph.d. (a ture labor of Sisyphus) the ciriculum looks like anything but accounting.

Personally, I think CS has degenerated to the same level of the other degrees generated by the great American Degree Mill. It now has the primary purpose of sucking up Government Grant Money.

Just my negative opinion from watching this comedy for the last half century...

## It IS the math (0)

## Anonymous Coward | more than 3 years ago | (#35465146)

The purpose of a computer science degree is to teach one how to think computationaly. Math is the universal language of computation.

## I agree.. less math (0)

## iONiUM (530420) | more than 3 years ago | (#35465154)

I don't get why I had to learn all the math in university. I agree some math is useful, but I have never in my 10 years working applied any of the advanced stuff, nor found learning it helpful.

I think everyone is so stuck on the relationship between Cs and math they refuse to even hear arguments that dispute this. Why is that? Why such math zealotry?

## Re:I agree.. less math (2)

## mgbastard (612419) | more than 3 years ago | (#35465236)

I would submit the math requirements are common in the core requirements of any Bachelor of Sciences degree, rather than specific to a Computer Science major.

If you don't want to master basic college-level math to earn a sciences degree, then perhaps you should be lobbying academics to offer a Bachelor of Arts with a Applications Development major instead.

## Re:I agree.. less math (1)

## iONiUM (530420) | more than 3 years ago | (#35465352)

I guess this is what I'm talking about. I have a B.Sc, I got it years ago, and here you are with your snarky response, judging me, as if I'm too stupid for the math (yes, it's implied with what you said). It's not that I can't learn it, as obviously I did, it's that it wasn't useful. But I guess if it helps validate people like you, it will never change, since it's a big circle-jerk in acadamia.

## oh, this again.... (2)

## mevets (322601) | more than 3 years ago | (#35465158)

There is nothing distinguishing about any of the examples noted; nor worth any study. I don't deny that the mathematics::programming link of overstressed.

Seems the problems are more rooted in basic experience. Many arts understand that imitate comes before create; despite the whining of the student/apprentices. While programming isn't quite an Art, its practice is close enough to deserve a different approach from the basic sciences.

Certainly the root of all evil is falling into the buzz-trap where studying and instance of a technology (java, cloud computing, multi-core(wtf?)) takes the place of learning something worthwhile, like planning, design, debugging.

bah, get off my lawn.

## Re:oh, this again.... (1)

## ocirs (1180669) | more than 3 years ago | (#35465428)

## CS is mathematics (2)

## bkmoore (1910118) | more than 3 years ago | (#35465186)

## Re:CS is mathematics (0)

## Anonymous Coward | more than 3 years ago | (#35465312)

One alternative is for universities to have separate tracts for applied programmers and students who are more interested in the theoretical end of CS.

Good schools do, its called software engineering

## Split it (1)

## AstrumPreliator (708436) | more than 3 years ago | (#35465190)

Perhaps I went to the wrong university, but my computer science degree was more like a software engineering degree anyway. The vast majority of my teachers were not math prodigies. I actually did both math and computer science and whenever I tried to link the two I got blank stares from my computer science professors, although my math professors could give me wonderful insights even though that wasn't their field of study.

Overall I enjoyed my math degree far more than my computer science degree; I've always been one to prefer the theory over the application. I'm sure if they had offered a choice between a software engineering degree and a pure computer science degree I would have chosen the latter and probably would have enjoyed it more. In my eyes math in a computer science degree isn't a problem, it's the fact that they're trying to meld two different subjects into the same degree. Math in computer science is just a red herring and detracts from the actual problem.

## Physics and CS (1)

## students (763488) | more than 3 years ago | (#35465194)

Physicists think computer science means numerical calculus, since most of theoretical physics is difficult calculus problems. Perhaps this is why there are so many physicists who write unreadable code.

## consider the source (2, Insightful)

## phantomfive (622387) | more than 3 years ago | (#35465202)

Here's my opinion (disclaimer: please don't trust my opinion, a random guy on slashdot, either): basically, if you know math, you will use it. You don't need it; you will still find a way to survive in the software world without knowing math, but math will open many doors for you. Would you really want to be shut out from understanding computer graphics, understanding artificial intelligence, and algorithmic complexity? That's just in computers, if you close your mind to math you'll be closing your mind to understanding the way the physical world works, too. You'll be losing the logical/mental discipline that comes from understanding math. Why would you want to give up all that, and try to live as a code monkey?

## It's called computer SCIENCE (3, Insightful)

## Missing.Matter (1845576) | more than 3 years ago | (#35465212)

I have seen many outstanding programmers who struggled with calculus and never really got it.

That's because computer science is not programming. You won't find an outstanding computer scientist who doesn't have a solid mathematical background. The theory of computation and the basis for all we do is entirely based in math, and therefore understanding math is essential and inseparable to understanding computer science.

our students are overwhelmingly seeking careers in which they apply computer science.'

If you're looking to be a vocational institution, by all means, drop the math and train your students to be code monkeys. Yes, train, not teach, because teaching them would consist of providing them with a solid mathematical foundation on which to base their careers.

And it's patently false that applications of computer science do not require math. In my field, robotics, I do a lot of programming, but I do just as much theoretical work to understand the algorithms I'm using, and to develop new ones. Linear algebra, statistics, convex optimization.... these are all mathematical topics I use regularly, and I couldn't function without. Cutting topics like these not only take the Science out of CS, but the true value from the education itself.

## Maybe we should call it something else? (1)

## davidwr (791652) | more than 3 years ago | (#35465334)

Computer Engineering?

Computer Liberal Arts?

Business Computing?

Computer Programming?

Applied Computing?

I wonder how well respected a BA or BS from Big Name University would be if the major was "Applied Computing" compared to the same degree/coursework under its existing title of "Computer Science."

## Re:It's called computer SCIENCE (1)

## BlogTroller (1723086) | more than 3 years ago | (#35465398)

## Math=not patentable. let's keep the math in but... (1)

## rcpitt (711863) | more than 3 years ago | (#35465214)

The courses can't ignore math - but they don't have to go into it nearly as deeply as they do. Basic binary and theory should be included so that there is an understanding of what the compiler/interpreter is doing taking high-level down to machine level.

I'm not a mathematician but I've done my stint with calculus (back in the late 60's at high school and then university, just as compu-sci was really getting going) I hardly ever use anything but basic add/subtract/multiply/divide, even in designing some of the more sophisticated business and consumer products I've been involved with (but I've got Knuth's books and use them); that's why there is a need for experts - to bail me out when I need them. We need both kinds of computer people - those who can deal with the algorithms at the core, and those who can apply those algorithms to real programs that interact with humans. But more than that, we need more "real" people who have gone through the computer programs and thereby have at least a half a clue as to how computers really function and how to apply them to problems.

Was talking to a friend of mine - he grows flowers and cuts hair for a living - and he was decrying the fact that all the various computer stuff he's got is "just too complicated" for the average old pharts like him (and me, but I've grown up with it so I'm an exception to this) - and I had to agree because the programs were designed in large part by people who are techs and mathists - not your typical non-tech humans. Put it down to the filter at the education point of requiring the math skills that weeds out many is my guess.

Problem is highlighted by the note that the math profs have problems teaching compu-sci from anything but a math perspective - and the bulk of computer program design is in the human interface and basic business world that they don't easily relate to (nor do students who understand them in most cases)

So putting up the largely artificial barrier of understanding math (at least for some aspects of compu-sci) is hurting our use of computers in many ways.

## I have played for both teams (1)

## lanced (795958) | more than 3 years ago | (#35465222)

## Different Definitions (5, Insightful)

## pz (113803) | more than 3 years ago | (#35465224)

I have seen many outstanding programmers who struggled with calculus and never really got it.

The summary is not absolutely clear on who makes this statement, but the article attributes it to "a professor". I don't know where this professor works, but the outstanding programmers I know can all do calculus in their sleep. Not all programmers, or even all good programmers, but the outstanding ones. It isn't about continuous versus discrete, which is a complete and utter red herring, but the ability to think abstractly. Hell the best programmer I know is a pure theoretical mathematician: his code is always beautiful, clear, easy to maintain, and, imporantantly, correct; he's prolific to boot. But he's an

outstandingprogrammer. I know plenty of work-a-day programmers who are not outstanding, and whom I would suspect would have problems with integration by parts.Based in part on my differing experience, I posit that the quoted professor does not work at a high-end institution where really outstanding programmers are likely to be found. This opinion is bolstered by the observation that discrete mathematics (the Z transform, difference equations, discrete Fourier transforms, and the like) and continuous mathematics really are not that different if taught properly. If an individual can't master continuous and discrete mathematics, then they are not going to be an

outstandingprogrammer, because they can't think sufficiently abstractly.Outstandingprogrammers can do system architecture, data structure design, algorithmic development. No one who can design and understand a Fibonacci heap is going to have problems withdx/dt.## Re:Different Definitions (2)

## gront (594175) | more than 3 years ago | (#35465338)

## Having lived almost all aspects of this issue... (1)

## taoboy (118003) | more than 3 years ago | (#35465242)

...over my career, both as an academic and as professional software engineer, I appreciate fully the distinction made between the mathematical foundations of computer science and the application of computer solutions to mathematically oriented problems. To start a four-year degree in computer science with the same calculus-oriented math series that the "physical world" majors take is a bit wrong-headed IMHO, but not completely. First, the math of computing is discrete, and this deserves first attention in a good discrete math course right after college algebra. And for most of my career, a solid foundation in logic, sets, relations, etc. served me well in both professional software development and college teaching. Indeed, my schooling went as follows: BS CIS, MS CS, and DCS (that's Doctor of Computer Science, as opposed to PhD...), where my bachelor's program had both a solid business core as well as just enough "continuous math" to understand the foundations of calculus. Missing was the discrete math I mentioned above, but I got that in my MS.

But now, I find myself smack in the middle of the defense/aerospace business, and the day-job application involves aspects of both calculus and statistics for which my schooling did not fully prepare me. Now, my role is more about technical leadership than practition-ing, so I'm not floundering, but I've had to dig out the old texts and learn some math on my own that most of you learned (or slept through) in your earliest years of college, or even in high school. What's really important for me to understand are things like the computational complexity of a proposed solution, that a branching structure in a code segment covers both nominal and corner cases (they do let me sit in on peer reviews...), and other foundational computer science things that the schools, in their increasing "IT" orientation, aren't covering much anymore.

I was an academic advisor for a year, probably the worst on the planet, because I told my students things like, "major in CIS, then switch to CS for your masters, avoid the calc hell" and "don't be doing school unless you're really motivated in the major" (ha, the admissions advisors LOVED that one... NOT!)

So, if I were king, I'd make all computer science students take discrete math, so there. After that, the math depends on what industry (domain, applications, whatever) in which you plan to work. For some, that may be statistics, for others the calc series. But the point is that the primary math of all computer professionals is logic, sets, relations, and the rest of the "discrete phylum", and that should be learned for competency, first. Doggonit.

## Nah, you weren't the worst (1)

## NotSoHeavyD3 (1400425) | more than 3 years ago | (#35465414)

## Knuth is far more important than maths (0)

## Anonymous Coward | more than 3 years ago | (#35465256)

I thought I might do a CS course in 1969, but when I realised that it had such a heavy maths focus (1st year was just the standard maths degree course) I gave up that plan and went and worked in the industry. Can't say I've ever found the lack of advanced binomial or )calculus any hindrance at all, and I've been involved in many areas (none of them commercial thankfully)

## Being bad at some Math(s) isn't the end... (1)

## Sits (117492) | more than 3 years ago | (#35465264)

...but my degree experience (CS at one university and Software Engineering at another) poor Mathematics skills just makes life more difficult. You will just have to accept that you have to work harder than others who are good at it (if only to overcome your dislike). It is also worth noting that there are different branches of Mathematics and being bad at all of them is different to being bad in only area but fine in others. Further, different courses will place different emphasis on Mathematical content (e.g. HCI style courses may emphasise statistics).

There is also a difference between programming and Computer Science even if you can argue that programming is a subset of Computer Science. Computer most certainly is a branch of Mathematics (or if you want to annoy people you can say Mathematics is a branch of Computer Science ;) and there is Mathematics underlying all computation. However if you are terrible at Maths you can still create great non-mathematical programs but you have to accept that there will be certain types of programs you may not be able to write (or write well) until you conqueror the Mathematics.

Just because knowing more usually doesn't hurt doesn't mean you HAVE to learn more but whichever direction you take you simply have to accept there will be consequences.

## Math utility (1)

## real gumby (11516) | more than 3 years ago | (#35465266)

I know (as even the summary said) this is a religious/contentious topic, but: For both CS and computer engineering, math as a discipline provides several abstract tools in terms of abstraction, modeling, and discipline, as well as actual concrete skills (for algorithmic analysis, estimations and the like).

But the summary mentions continuous math, and I must say most non-CS programmers will only encounter discrete problems. Unfortunately some problems do require floating point or control of continuous processes (i.e process control applications), but regrettably by the time that happens most of the required math classes will long since have been forgotten!

## Software technicians... (0)

## Anonymous Coward | more than 3 years ago | (#35465270)

Electrical engineers have technicians to help actually make the things they've designed.

Mechanical engineers have machinists to help actually make the things they've designed.

Software engineers have programmers to help actually make the things they've designed.

As an ME, I would be embarrassed if I couldn't also turn a lathe, but that doesn't mean everybody is going to feel that way, and in terms of immediate return on investment it isn't the best use of my time anyway (although I would argue strongly that in the long run, skittering around the machine shop makes me unequivocally a better engineer).

I was under the impression we already knew that "hello, world" is something anybody can do, and that there's plenty of useful code to be written by people without four year degrees.

Realistically, most tasks of engineering interest don't require an entire team of people who can solve the difficult problems. It hurts to say that, but it's true.

## I went for artificial intelligence (4, Interesting)

## holophrastic (221104) | more than 3 years ago | (#35465280)

University through AI had me taking computer courses -- which sounded like fun, since I was a computer guy all my life. It would have taken four years before even getting to an AI course, because of all the math courses along the way. I don't care what you say, when I walk through a room, my brain doesn't do any calculus to avoid walking into the desk. It just doesn't. But AI in CS said "calculus is the fastest way to approximate natural path finding".

So I left, and switched to psychology, where AI is called cognitive modelling.

The first day said "the goal is to model things after natural processes, if it takes ten days for the computer program to walk through the room, but it does so naturally, computers will be faster next year."

The third day of the course was to write a neural network in LISP -- oh, and to also learn LISP from scratch -- to solve a real-world decision-making problem. We had two weeks to complete the assignment.

Neural networks are fun, by the way. And ten years later, when I wrote an on-line ticketing program that needed to choose the best way to apply multiple coupons to multiple purchases (in a self-serve kiosk application), brute-force computation did it in 60 seconds, competent programming did it in 10 seconds, pre-computing did it in too much memory for the device, a neural network did it in 50 milliseconds. My client was very happy -- and never knew.

## Might be just pre-computing (1)

## Sits (117492) | more than 3 years ago | (#35465366)

Do you know how fast a Dynamic Programming solution would have taken (if you still have numbers to hand)? I would have though it would be somewhere between competent and your neural network solutions but perhaps it would have been brute force by another name...

## Re:I went for artificial intelligence (1)

## nhaehnle (1844580) | more than 3 years ago | (#35465476)

This is quite ironic, because neural networks are essentially about learning functions between different spaces, so they actually do have calculus behind them. It just may be sufficiently hidden that you didn't notice.

## There are 10 kinds of people... (0)

## Anonymous Coward | more than 3 years ago | (#35465288)

Those who see 1's and 0's and those who think math isn't necessary.

## Some math required, but not calculus (1)

## retired03 (741960) | more than 3 years ago | (#35465294)

## Author answers his questions himself (0)

## dragisha (788) | more than 3 years ago | (#35465310)

If you're doing important work like social networking, web development, some aspects of user interfaces... Then you do not need understanding of calculus and other "continuous math" disciplines.

Only if you're doing less important things like computer graphics, HPC, general algorithm optimizations/evaluations, and so on... Only then you need to bother with heavier math.

Of course, one can argue where is S in CS if CS is social networking and web development.

Above statements are partially ironic, of course, but...

Computer programmer is not synonym for computer scientist. Most (probably 95+% or more) of computer programmers are only craftsmen. Current higher education only makes this situation worse by educating craftsmen and not engineers, most of time.

## Math logic is not Computer logic (1)

## unil_1005 (1790334) | more than 3 years ago | (#35465318)

Math is about abstractions, and constructing abstractions of abstractions.

There is some overlap, in the way that math can be used to describe almost any process.

There is some overlap, in the way that computers can manipulate symbols to produce results.

In the same way that metallurgy is not necessary for an auto mechanic (though in rare instances it might be helpful) advanced mathematics is not necessary for a working programmer (though in rare instances it might be helpful).

## The maths are scary! (2)

## Brandybuck (704397) | more than 3 years ago | (#35465324)

I used to think that too, until week before last. I'm a literature major who couldn't make it past second semester calculus. Until week before last I never needed to do any math in programming beyond arithmetic.

Then I landed on a project involving OpenGL. There's a heck of a lot of math there, and a lot of math/graphics jargon. What makes it even more frustrating are all the tutorials for beginners that assume you've majored in math and never bother explaining homogeneous coordinates, frustrums, etc. Almost as annoying as they're assuming you already know the syntax to glsl. I am good at geometry, and could write very complicated POVray models, but OpenGL has been kicking my butt due to my lack of linear maths.

## The post seems about Calculus only, not all math (1)

## guacamole (24270) | more than 3 years ago | (#35465340)

My understanding is that CS is effectively a branch of applied mathematics. Therefore, it's puzzling to me how CS can be taught without any math, which is some people want to advocate. However, it does seem strange that a lot of CS programs require their students to study Calculus, differential equations, and other continuous math subjects. Discrete math is a lot more useful in CS. Calculus should probably be taught only up to differentiation and integration (just one semester) and then followed by discrete math course to build up math intuition for algorithms courses.

## computer engineering vs programing (0)

## Anonymous Coward | more than 3 years ago | (#35465348)

There is a difference between computer engineering and computer science (the ability to code or plug computers and the ability to program efficient algorithm)

I made a come back to university after 10 years of working to get more in depth math background for video games. You do not get to calculate lots of things being a Db admin or a GUI programmer with a RAD tool.

Video game or applied science with a need to computerize math models needs computer engineers. In Quebec the distinction is becoming more relevant as computer consultant are lagging behind in both expertise to modelize high end product and the ability to precisely say how much time it will take to create/maintain/update a piece of software.

I go to ETS btw which has teachers that are behind big ISO norms like 14764 for example and others that are reasearched for small teams of less than 15 members for really small enterprises.

Sorry for the bad english, I am a frog ^ ^

## Missing the point (1)

## deblau (68023) | more than 3 years ago | (#35465350)

The point of teaching math at all, at least past checkbook arithmetic, is to endow students with the ability to think logically. Those who have an aptitude for science and engineering may find more advanced math such as calculus and linear algebra useful for their careers. However, the vast majority of people will never use more than arithmetic "for math's sake". Still, the hope is that those geometry classes taught them how to think carefully, break a problem down into its constituent parts, and solve it. This is a skill that is useful well beyond applied mathematics.

## Re:Missing the point (1)

## filesiteguy (695431) | more than 3 years ago | (#35465474)

## Keene State (0)

## Anonymous Coward | more than 3 years ago | (#35465354)

At Keene State, we try to keep the CS major as applied as possible, doing projects for real clients in the community.

Part of this is realizing calculus isn't necessary. We have a Math for CS course which focuses on more logic and algorithmic math.

## My CS Degree failed to teach me to program (1)

## Anonymous Coward | more than 3 years ago | (#35465364)

I got a degree in CS because I wanted to write programs. Granted I can write a compiler, but when I see an IDE like XCode, I'm completely lost. I'm good at math and I understand all the concepts of programming, but when it comes to making something appear on the screen beyond a console based unix app I'm completely lost.

My guess is that in ditching the 1 year long course in Logical Structures and Boolean Algebra I could have been taught something that was worth a damn. Most of the classes I took were really interesting and I see how they relate to the subject but I guess I had a different version of programming in mind when I signed up that the school did.

## Of course... (1)

## RLU486983 (1792220) | more than 3 years ago | (#35465380)

## Applied software engineering programs (4, Insightful)

## idealego (32141) | more than 3 years ago | (#35465384)

I started a Bachelor's in computer science and switched to an applied software engineering program. It's much less math, and the average course is far more useful in the real world. All the employers I've talked to so far have said that they prefer hiring out of the applied program because the students are ready to start working and have a broader range of skills.

As many have already pointed out, computer science != programming.

What we need is more schools that offer applied programming programs for those who want to become programmers and not computer scientists. And more students need to learn the differences between them and which one they want.

## Create a software engineering major... (0)

## Anonymous Coward | more than 3 years ago | (#35465388)

I strongly believe that computer science should continue to be a math-heavy major. As a Computer Science PhD student, it is important to learn how to write proofs, have intimate knowledge of discrete structures in mathematics, and yes, know calculus. However, I agree with the central point that most computer science majors don't really want to do "pure" computer science when they graduate. Along those lines, I really think that there should be a software engineering major that overlaps with computer science but also includes more practical (yet methodological) training such as software testing and some empirical aspects of software development.

## Somtimes you have to do stuff you don't want to (1)

## Bruzer (191590) | more than 3 years ago | (#35465412)

This story resonates with me. I would have wholeheartedly agreed with the professor when I was a student and being forced to take Math classes that I did not like. However with my experience in the "real world" I now disagree.

I ended up minoring in Mathematics, because of the of the all the Math requirements for a Computer Science major. I strongly disliked the advanced Calculus courses and could not imagine why we needed to take them. Since then I have worked in the industry as a Software Engineer for 14 years.

In retrospect I see that the time at the university was preparing me for the real world. The lesson was not that Math is important to a Software Engineering career, but that we often have to do things that we don't like to get to the stuff that we do like. I would LOVE to program all day (and sometimes I can), but there are all sorts of other things that Software Engineers have to do _and_ be good at to succeed at our jobs. We have to do all kinds of tasks that is not programming, fill out "TPS reports", be able to speak in front of other people, the good ones even have social skills (gasp!) to convince people to try their way or work with them to solve a problem. I dislike the extra tasks almost exactly as I disliked Calculus 3, but in the end, I got through it and will be a better Software Engineer because of it.

As far as the point that math turns away people that would be influential to the field of Computer Science. Tough. If they didn't have the fortitude to put up with stuff they do not like or are not good at they would likely be a prima donna in the workplace.

## Computer science as an academic discipline (2)

## LambdaWolf (1561517) | more than 3 years ago | (#35465420)

Dennis Frailey makes a distinction between CS research and applied CS: 'For too long, we have taught computer science as an academic discipline (as though all of our students will go on to get PhDs and then become CS faculty members) even though for most of us, our students are overwhelmingly seeking careers in which they apply computer science.'

I get that the

extentof math necessary in computer science is an open question and I won't pretend to have an answer to it, but challenging thepresenceof math, and the academic approach in general, in a university setting bothers me. Ofcoursecomputer science ought to be taught as an academic discipline in an academic setting. Who cares if students will use it in their careers? The whole point of a university is to study academic disciplines—maybe you intend to apply them and maybe you don't, but either way they are considered worthy of pursuitfor their own sake. And that goes not just for computer science (assuming that's your major) but for math, science, and humanities as well.If you just want to get a job as a programmer without learning all that theoretical stuff, skip the university altogether and just buy a book, or go study at a technical college. Now, you might have a really hard time getting hired without that bachelor's degree, and that does indeed suck, but that's the fault of the labor economy—it's not fair to ask universities to change their philosophy to accommodate corporate culture.

## Math is not applicable ... (1)

## Infernal Device (865066) | more than 3 years ago | (#35465430)

In most real-world jobs that I've worked in, it's more about being able to shuffle data from one pile to another efficiently, rather than working the math (which is, at best, uncertain). I say this from the background of having a degree in Drama and yet, I still have a decent job as a programmer doing real work (not as a manager, either).

The major problem with switching to applied computer science is figuring out which technologies or sets of technologies are going to be truly useful going forward. It could be argued that all of them are, but some of the current crop have yet to prove themselves, except in specialized cases.

I would argue that real-world programming, if one has some sort of talent or bent toward it, can probably be taught in two years (or less) concurrent with subjects on techniques in specialized areas. This would lead to most programmers needing, at best, an associates degree.

## Seems to conflate programming and CS (1)

## Anubis IV (1279820) | more than 3 years ago | (#35465436)

Unfortunately, there are many disciplines within CS that require a math background. I couldn't imagine approaching a graphics class without having taken Linear Algebra, or a class covering formal languages, state machines, and the like, without having gone through Discrete Mathematics. For that matter, Calculus 1 level stuff occasionally comes in helpful with determining the complexity of algorithms, and networking classes routinely apply intro-level calculus in order to calculate numbers like the most efficient values for different aspects of a system in order to achieve the best throughput.

That said, in general practice, it's rare that I need to use math beyond algebra. Even so, however, theory classes like the ones I mentioned above are what make Computer Science a science, as opposed to merely being a programming major. If you're suggesting that you don't need math for a CS degree, then you're very wrong. You may not need it for an Associates level programming degree, but you most certainly need it for a CS degree. To suggest otherwise is to miss the distinction between the two.

## time for IT to drop the need BS or MS for level 1 (1)

## Joe The Dragon (967727) | more than 3 years ago | (#35465450)

time for IT jobs to drop the need BS or MS for level 1 jobs what use Calculus on HELP DESK? Desktop support? or IT ADMIN?

and Most CS Educations are poor for IT work anyways trade schools are much better.

http://www.csmonitor.com/USA/Education/2011/0202/Does-everyone-need-a-college-degree-Maybe-not-says-Harvard-study [csmonitor.com]

http://www.networkworld.com/news/2011/022511-it-graduates.html [networkworld.com]

## I find my CS staff never use math... (1)

## filesiteguy (695431) | more than 3 years ago | (#35465464)

Keep in mind when old-timers like me were in college, CS was about determining how to best utilize the 640 KB of memory you had available. You needed to understand more math than now.

OTOH, I actually think that multiple languages are a must for programmers these days. I - for one - speak/write German and Spanish. I have seven programmers with CS degrees and an additional six analysts with CIS degrees working for me.

## If you cannot math (1)

## SleeknStealthy (746853) | more than 3 years ago | (#35465472)