Graph Theory useful for software developers? [closed]
开发者_如何学Python
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this questionI don't want to take any more math in college than I have to, the graph theory course is not a requirement but is "recommended" by the CS department. Is it worth learning graph theory as for a programmer?
Surprisingly many problems in CS can be reduced to graph problems. Without knowing basic graph theory those solutions will elude you and you might end up re-inventing the wheel or coming up with a sup-par solution. I would definitely go for it.
Since you don't want to take 'any more math in college than [you] have to', it seems reasonable to infer you don't see yourself in a job where you will need much computer science. There are plenty of programming jobs out there where you won't use computer science often, but knowledge of it is always helpful. If my original supposition that you wont want a CS heavy job was inaccurate, then you should probably bite the bullet and take the graph theory course.
So in answer to your question -- it depends on what type of programming you want to do. For scientific, mathematical, OS type programming it would probably be helpful. For business application programming not so much, with the caveat that knowledge of CS can only help any programmer.
I wonder, however, if you really don't like math, are you sure you should be a CS major? CS after all is quite math oriented.
If I had it to do over again, I would have been a math major.
To add a little to what BrokenGlass said, graph and search problems probably cover a fair part of all problems when you boil them down to the bare essentials, and since search usually operates on a graph graph theory is prob. a good thing to have.
I know i regret not taking it. Bite the bullet.
Are you sure you know what graph theory is? We are not talking about "graphing a function" type graphs, we are talking about "nodes and arcs" graphs. "graph theory" is not about numeric computing.
Programming, especially object oriented programming, is all about these kinds of graphs. Graphs of buttons and widgets, graphs of relational database records, graphs depicting event flow. Many-to-one, one-to-many, trees, stars, with and without cycles. etc etc.
Treading on dangerous ground here, but if you find math difficult or boring then computers might not be the thing for you.
There's a topic I did not see in other answers: social networks.
All the interesting algorithms (current and future) exploting the information generated by Twitter, FB and the like are made possible thanks to the previous developments in graph theory.
精彩评论