28 Replies  3351 Views  Last Post: 21 May 2009  06:17 PM
#1
Math in a Computer Science degree
Posted 26 March 2009  06:45 PM
 How maths centric are the selection of classes your taking?
 Is your maths knowledge used in your computing classes?
 Would you say you are mathematically minded?
I will be starting at college soon, and will be majoring in Computer Science. I'm very ahead in most technical aspects, and don't see myself having any trouble with any computing classes.
But I've never had that much interest in maths classes, and it doesn't really come that naturally to me. I'm a pretty weird person . I describe myself as conceptually and logically oriented rather than computationally oriented. Would anyone put themselves in a similar category?
It seems that universities stress a lot of mathematics because the believe it is necessary for a career in computing. However, all of my professional experience points in the opposite direction. I've found that in software development it is much more important to be able to develop appropriate solutions and communicate effectively. Do you agree?
In short.. I'd like to discuss the level of maths in a Computer Science degree
Thanks!
Replies To: Math in a Computer Science degree
#2
Re: Math in a Computer Science degree
Posted 26 March 2009  07:52 PM
#3
Re: Math in a Computer Science degree
Posted 26 March 2009  11:53 PM
My college requires me to take several "natural sciences" even though I am a computer science major (hence the physics).
Calculus is pretty much a prerequisite for any other math class.
Discrete is real "computer science math".
Basically whether you like it or not, you are going to have to take a lot of math classes if you want to major in anything with the word "science" in it. As long as you work hard you will get through it.
#4
Re: Math in a Computer Science degree
Posted 27 March 2009  08:36 AM
#6
Re: Math in a Computer Science degree
Posted 27 March 2009  10:44 AM
c0mrade, on 26 Mar, 2009  07:45 PM, said:
No, not even a little. Logically minded, sure. Good at breaking things down and building them up, yeah. I refactor in my sleep.
Computer Science started out at most universities as a mathematical discipline. Most early computer types were math types, because they saw the most immediate application for the things. People believed that computers were destined to live on college campuses and research facilities. The broad range of application only became apparent later.
Ironically, computers aren't real good at math, they're good doing certain operations really fast. These operations are sequential and use simple logic. You don't need higher math to do them. Computer programs don't require math beyond boolean and bean counting, unless of course the program itself deals with mathematics.
Today computers are their own discipline, but the cold hand of calculus still looms like a specter, slaying many potential programmers before they can even spread their wings.
Will math help? Of course. Is it required? For some applications it is a must. Game engines, for instance, lean heavily on linear algebra, among other things. Rendering anything in 3D space will get your matrix flowing. But most programmers don't write games or other specialize things.
For the day to day work: designing systems that interact with people, writing applications that fulfill specific business needs, solving all the problems programmers are called to solve; math almost never rises above the algebra level.
Math folks believe that math is the lingua franca of the universe. They'll tell you how it's required to do almost anything. You can find higher math in a flying football, but I'm pretty sure the guy who launched it wasn't thinking about that.
Please do not let math stop you from being a computer programmer, if that's what you want to do.
#7
Re: Math in a Computer Science degree
Posted 27 March 2009  09:42 PM
baavgai said:
Thanks, it's encouraging to hear that you seem to think in the same way I do.
mostlyfriedman said:
Ok, my opinion is exactly the opposite to yours; but that's a good thing, it's what I wanted. Are you still in uni/college? Can you qualify what makes a "good" programmer?
mostlyfriedman said:
Could you give examples?
I know a lot of people who seem to think the same way you do mostlyfriedman. I'm interested to hear your side.
#8
Re: Math in a Computer Science degree
Posted 27 March 2009  09:50 PM
I took nearly every math class that the school offered while I was there. All of my "free electives" were math classes, and I actually ended up with quite a few math credits that didn't count towards my degree.  Of course, I like the challenge, and I love math.
I suppose that you can get by without a lot of math... but all of the really interesting stuff requires math.
#9
Re: Math in a Computer Science degree
Posted 27 March 2009  10:11 PM
#10
#11
Re: Math in a Computer Science degree
Posted 27 March 2009  10:37 PM
Computer Graphics: Math galore. You can't put a pixel on the screen without using the Cartesian coordinate system. Even simple things like moving a sprite along a strait line require concepts like interpolation. The more interesting the effect the more complex the mathematics.
AI: OMG abstract mathematics all over the place. Have you ever opened a book on Bayesian statistics, Neural networks, Fuzzy Logic, or even simple AI systems like Finite State Machines, minimax algorithm, even Expert systems have a rich mathematical background.
DataBases  Oh sure you can be a DBA without knowing Lattice theory or Vector spaces... but if you really want to work in the field of new databases, or expect to understand the technologies coming down the pipeline integrating concepts like fuzzy search and dynamic classifications, ontologies etc.  you had better pick up a math book on Graph Theory and Linear Algebra.
Network Optimization  want your web app to run faster than your compedaters, want to work on better server farms, more efficient download protocols? Better pick up the calculus book, that graph theory book, that Linear algebra book, and while you are at it, make sure you are familer with the topology book too...
Concurrency  Want to make use of the new multicore and massively multicore and cloud computers of the future... again, better pick up some math books. Just understanding vector algorithms makes my brain cry and I have the background to understand them.  where in the past only programmers working on super computers needed to know this stuff, in the next few years your home PC will have more processor cores than the entry level super computer today (which starts at a mere 16).
and that is just stuff off the top of my head
#12
Re: Math in a Computer Science degree
Posted 28 March 2009  06:43 AM
I failed maths at the high school level. I loved computing. I never studied physics/chemistry/biology (and genetics) in my entire life. I went to college, took a computer science degree, learned all I needed to know when I needed to know them.
In spite of this, Computer Science is not "the easy stuff". I've seen many people who take engineering courses or science courses (including maths) who claim that they chose their course because CS was easy. This is not true. A CS course is rich in the diversity of knowledge that you gain. Where I come from, a CS course requires us to take physics, chemistry, biology, mathematics, and now, even business classes. As a computer scientist, we need to be able to understand the different subjects because in the end, the code that we write will be to solve problems for companies in these various industries. I've seen such people with such claims writing monolithic code because they didn't have the skills necessary to design and architect a proper software system and integrate them with the hardware.
You'll excel, as long as you have the interest.
#13
Re: Math in a Computer Science degree
Posted 28 March 2009  07:03 AM
Quote
It is true that you do not need to know very much math to do any of that stuff  someone else will do the hard parts for you and put it in a library. Being a programmer is more about solving problems with the tools at hand then it is about mathematical proofs.  Most professional programmers (myself included) don't get much past High school algebra (and a little graph theory thrown in).
Quote
Now both fields have their depths, there are parts of CS that really make by brain hurt. Vector computing is one. Sure nothing all that hard on the surface, but when you multiply that little complexity by 1000's of simultaneous operations my head has a hard time scaling. Genetic algorithms look to me to be pretty simple in theory but after only a few steps in the that direction I was in over my head.
I really don't mean to scare anyone away from CS  because there is a big diferance between being a computer scientist and being a programmer/developer. Developers use the tools that they have to solve problems. Computer scientists (at least in theory) try to discover new tools and better tools. And just as "armature" inventors often surprise physicists  developers often surprise computer scientists.
Developers only really need to have an understanding of how the tools work, and which ones are useful in what situations. They do not have to know all the insandouts of how to make the tools and prove their validity and their efficiency.
Quote
#14
Re: Math in a Computer Science degree
Posted 28 March 2009  07:04 AM
#15
Re: Math in a Computer Science degree
Posted 28 March 2009  07:17 AM
And just like the amature inventor who may not know all the physics behind his latest whirrlygig  a programmer can have some wonderful mathematical theory laying just below the surface of his new cool application. You don't really HAVE to know the theory behind something to make it work.
(I was working with FSM's long before I knew what they were).
#16
Re: Math in a Computer Science degree
Posted 28 March 2009  07:20 AM
Quote
Come on! Cut us CS majors some slack man! CS isn't all about programming..it's a lot more!
There are programming classes in CS, and those are really really super duper easy, but there are only like 2 or 3 such classes, if I recall.
Hmmm...I think many people have the wrong perception of CS. CS is really a very vast and diverse course incorporating many disciplines. It is definitely wrong to say that CS = programming and that CS majors = programmers. Like I always say whenever people tell me things like "I took engineering because CS was easy". I'd just tell them "to each his own".
Quote
And just like the amature inventor who may not know all the physics behind his latest whirrlygig  a programmer can have some wonderful mathematical theory laying just below the surface of his new cool application. You don't really HAVE to know the theory behind something to make it work.
(I was working with FSM's long before I knew what they were).
Agreed!
... I hope I'm not starting any "wars"..
This post has been edited by bryanchen: 28 March 2009  07:21 AM
