Am I intelligent enough for Computer Science major?

In summary, the conversation discusses the individual's feelings of insecurity about their intelligence and math abilities, particularly in relation to their chosen major of computer science. The individual has received conflicting opinions about their abilities from others and is seeking validation and advice. The conversation also includes suggestions for the individual to explore programming and to test their skills in certain areas, such as pointers and recursion, which can be predictors of success in computer science.
  • #36
I think the OP'er asked a few times about how much calculus is needed. As far as I know, calculus is one of the subjects which is less important for computer science. Having a quick look at a university's page for computer science, some of the more maths-related topics are: proofs, logic, set theory, graph theory, probability, linear programming, combinatorics, and OK I see a bit about calculus, but fairly standard stuff about limits, continuity, Taylor expansion, e.t.c.

In applications of calculus in programming, there are many cases where you can use an algorithm to do an integration numerically for you. But I think this is fairly standard, you can just think of the integral as a Riemann sum. There are probably algorithms where you need to know a lot more calculus, but I would guess they are more specialized.
 
Physics news on Phys.org
  • #37
I don't think there could be a productive discussion if someone claims you have to be intelligent enough to pursue something in life. Everything takes practice, and repetition is very important.

As BruceW mentioned, you can design an algorithm to solve all kinds of derivatives and integrals. That's not very hard and doesn't take any skill. In addition to numerical integration, integration by tables is very handy for this kind of task.

So, do you need to know calculus for computer science? Rarely, but it doesn't hurt to know. Just remember that knowing a lot in general defines who you are and who you will become.
 
  • #38
This thread is diverging very quickly, so I don't want to get too far.

Just a question to BruceW and Coffeejuncky, why do you guys think calculus and other mathematics are not required? Here are three examples:

1. Scientific computing. Computer algebra systems that compute integrals and derivatives directly, either symbolically or numerically, are the most blatant examples here, but in addition, any software that simulates a physical system that is based on continuous differential equations (e.g., computational fluid dynamics) necessarily involves computing derivatives and integrals.

2. Design and analysis of algorithms. The behavior of a combinatorial algorithm on very large instances is often most easily analyzed using calculus. This is especially true for randomized algorithms; modern probability theory is heavily analytic. In the other direction, sometimes one can design an algorithm for a discrete problem by considering a continuous analogue, using calculus to solve the continuous problem, and then discretizing to obtain an algorithm for the original problem. The simplest example of this might be finding an approximate root of a polynomial equation; using calculus, one can formulate Newton's method, and then discretize it.

3. Asymptotic enumeration. Sometimes the only way to get a handle on an enumeration problem is to form a generating function and use analytic methods to estimate its asymptotic behavior.
 
  • #39
Yellowflash said:
why do you guys think calculus and other mathematics are not required?

Sure, as a computer scientist you might study and/or implement anything and that could cover any kind of mathematics at all. Computer science is applied math of a particular sort.

However, the sorts of things where calculus is needed for a programmer is perhaps as much as 1% of all programming, likely much less. I spent thirty years as a programmer (mostly systems/compiler stuff) and rarely encountered any math beyond basic algebra, and never calculus. So if I were advising on what math a programmer should learn, I'd say logic, probability, combinatorics, stats, graph theory. Calculus/analysis last, even after abstract algebra. There's no analysis needed for probability or stats because there's no reason to get measure theoretic and understand it at a deep level.

My perspective...
 
  • #40
Yellowflash said:
Just a question to BruceW and Coffeejuncky, why do you guys think calculus and other mathematics are not required?

What I said:
coffeejunky said:
So, do you need to know calculus for computer science? Rarely, but it doesn't hurt to know.

There are too many examples for where calculus is needed, and I agree on that. However, I doubt you will be using it so much that you need to be an expert at it. It certainly doesn't hurt to know, which was what I mentioned.
 
  • #41
Yellowflash said:
This thread is diverging very quickly, so I don't want to get too far.

Just a question to BruceW and Coffeejuncky, why do you guys think calculus and other mathematics are not required? Here are three examples:
Lots of maths is required. I gave a list of some of the areas. But I think calculus is one of the (relatively) smaller areas of maths that a computer scientist will usually learn about. I mean yeah, if you are specifically exploring the dynamics of non-linear pde's via numerical methods, then calculus is important. But (at least where I am), a computer scientist won't go into this area, unless he/she decides to specialize in that area. I would not expect the average computer scientist to know much advanced calculus. And I'm not trying to be mean about computer scientists. I did physics, and I have very little experience in doing rigorous proofs, and I expect for the average physics student, it is the same. So if someone was considering doing physics, and asked if they need to be proficient in doing long, mathematically rigorous proofs, then I'd say in most cases, it is not necessary. Of course, if you are doing work that requires long mathematical proofs, then it is necessary.
 
  • #42
Calculus is useful for stuff like computer graphics, so there are areas where it is actually pretty important, but you can be a CS major and hardly need it at all. Just depends on what you do.

http://www.cc.gatech.edu/~turk/math_gr.html

Note the comment about calculus there, as well as the numerous subject that follow that have calculus as a prerequisite.
 
  • #43
I think the "how much math is required" question is mixing up two different things. One is the amount of math (and what type of math) is required to study computer science. The other is how much math is required for some particular applcation of CS in the real world.

From my experience in industry, CS graduates tend to know very little about applications, which isn't surprising, if they never studied them. Knowing in principle how to write a C++ compiler is interesting and maybe intellectually challenging, but unless you happen to be working for a company that writes compilers, it's mostly irrelevant.

Homeomorphic's link http://www.cc.gatech.edu/~turk/math_gr.html inadvertently demonstrates those issues quite well: note the date on the web page, and ask yourself how many people working with computer graphics today are still using 17-year-old graphics hardware and 17-year-old software libraries.
 
  • #44
Well, no, if you notice, I did point out that you can be a CS major and not need calculus at all, unless they make you take it. The point is that SOMEONE uses it, not that everyone uses it. Same goes for industry, I think.

The link may be 17 years old, but it is about math, not so much about programming. The same principles still apply to computer graphics. And yes, I know there are people in computer graphics who are not math people at all because they use stuff someone else wrote. But someone still has to write what they use. Or else everyone WOULD be using 17 year old libraries because no one would have written them.
 
  • #45
Well, my first encounter with programming state of the art graphics hardware was back in the 1970s, when state of the art looked like this, and one of those terminals cost about $40,000 in today's money.

Tektronix_4014.jpg


The amount of commonality between programming one of those beasts, working with a memory-mapped 640x480 pixels terminal that could display 256 colors (which is what personal computers used back in 1997, and seems to be what the web page is talking about), and programming today's graphics cards with hundreds of GPU cores, is just about zero.
 
  • #46
analogdesign said:
That's a good point. I don't have experience working with people who aren't specifically trained in CS (or engineering).

Here's an example of the mindset that Dehnadi and Bornat's paper is talking about:
https://www.physicsforums.com/showthread.php?t=752563
:cry:
 
  • #47
The amount of commonality between programming one of those beasts, working with a memory-mapped 640x480 pixels terminal that could display 256 colors (which is what personal computers used back in 1997, and seems to be what the web page is talking about), and programming today's graphics cards with hundreds of GPU cores, is just about zero.

That hardly proves that all that math isn't still relevant--maybe only in some niches of the computer graphics world, but the OP, at one point, asked if there was a use to calculus, not whether most programmers use it. The math principles are similar. I would think the math might be even more sophisticated these days. I mean, back in the 80's everything was 2-d. That means less math. These days, if you have processors that can do more, I would expect that you would be trying to do more stuff that you wouldn't even try to do back in the 90s, and that you would therefore need more math, not less.

If you want something a little more recent, here you go:



http://gamedev.stackexchange.com/questions/2029/what-math-should-all-game-programmers-know

I may be an amateur game programmer, not a pro, but for example, I basically used (very simple) calculus the other day when I wrote a program that simulate a ball that falls from the top of the window and bounces off the bottom. The basic set-up is you have a bunch of pixels, like points, (x,y), with y being sort of upside down from the usual. Same basic set-up as you had in 1997. I won't argue that the particulars of doing cutting edge graphics in industry are the same, but the basic set-up is the same. Vectors, 2-d and 3-d rotations, and a lot more if you get into physics simulation. It's true that you'd probably only need to know the very basics of calculus for a lot of graphics stuff, but I was talking about what SOME people do, not what Mr. Average Joe programmer does.
 
Last edited by a moderator:
  • #48
Game, graphics, and scientific simulation programming represents a teensy weensy fraction of the software jobs out there.

Most people who are "software engineers" or who are programmers for a living never need calculus, and skills like OOP design pattern, good coding practices, and the ability to think like a computer are far far more useful to most working software engineers than is calculus. This forum is naturally biased towards computing applications where calculus is used or towards academics, so it seems to us like it's really important for programming.

But almost every software job out there doesn't require calculus at all. It's part of what drove me towards engineering physics and away from pure CS/engineering--I wanted more continuous math.

That said, basic algebra and the ability to manipulate mathematical expressions involving polynomials and rational expressions *is* important for all software engineers.
 
  • #49
This forum is naturally biased towards computing applications where calculus is used or towards academics, so it seems to us like it's really important for programming.

Sure. I wasn't saying it was important for most programming. I was just saying there are some applications.

It is kind of amazing to me, though, how over-rated math seems to be. I think, not just in this forum, but in society in general, math has to be over-sold because most people hate it and say they are bad at it. So, maybe people like me, when I was younger get the message of "the more math, the better", when, in reality, the level of math that is actually in demand is sort of pitiful, by my standards, as a math PhD. It's just that most people find it so difficult/distasteful that they do need to have it over-sold to them, so they can just reach that minimal level and pass their high school algebra class, or maybe, at most, get through the standard engineering/CS math courses.

The thing that really amazes me is that I got disillusioned with my research as being too impractical, and then I turn around and find that even the very basic stuff like calculus isn't even in that high of a demand.

Still, you can do some cool stuff with math and programming.
 
  • #50
homeomorphic said:
The thing that really amazes me is that I got disillusioned with my research as being too impractical, and then I turn around and find that even the very basic stuff like calculus isn't even in that high of a demand.

I wonder how much of that is because computers do math for us? Cashiers don't need to do anything other than figure denominations when giving out change.

I think that the most valuable use of math in every day life is in statistics, so you know when companies and politicians and governments are trying to trick you. Appreciating normal distributions, when absolute vs. per capita/per area/per whatever numbers are preferred, the difference between rates of change and exact values of a variable, how graphs can be manipulated to exaggerate or hide, etc. I'd say people are woefully uninformed, and I think/hope that in the future we will regard widespread statistical illiteracy as much a thing of the past as widespread adult illiteracy is regarded now.


Next to statistics, I think the next most useful use of math for everyday life is figuring fractions and percents. I use this all of the time, whether I'm putting together a household budget spreadsheet or seeing which kind of toilet paper is the cheapest per square meter.

And, of course, the value of mathematical thinking, although unfortunately you don't really start to get to this until analysis or discrete math, IME.
 

Similar threads

Back
Top