5 ms·
Computer science is a branch of mathematics. If you mean engineering and programming, then you can get by without any math, but I don't expect you to be writing
by super_mario 12y ago
Computer science is a branch of mathematics. If you mean engineering and programming, then you can get by without any math, but I don't expect you to be writing compilers, operating systems, database engines either without solid CS education.
- jeffreyrogers 12y agoCompilers don't require much math. Nothing difficult at least. (I guess if you're interested in compilers for functional languages this might not be as true). Same for operating systems, as far as I know. I have no experience with database engines. CS theory on the other hand is very mathematical, as are some more applied subfields such as cryptography or graphics. Math is nice, and useful for some classes of problems, but it is certainly not needed for huge amounts of the programming done. Some people have this masochistic ideal of programming where if you're not solving problems that require the most sophisticated mathematical techniques then your problem isn't important. There are plenty of problems in programming that aren't particularly mathematical in nature and are very challenging. Compilers are one of these, as are many others.
- yodsanklai 12y ago> Compilers don't require much math. It really depends what is meant by "math". Not everybody has the same perception of what maths are. I used to teach a language theory class where students had various backgrounds. CS students were bored because they don't like maths, and maths student were bored because it wasn't math to them. Concerning compilers, they require non trivial maths. Parsing, type checking, code generation, register allocation and so on... The thing is that mostly you don't formally prove things like you would do in a maths class. But indirectly you use a lot of mathematical results.
- mtviewdave 12y ago>It really depends what is meant by "math". To my own amusement, I've discovered that I tend to categorize as "math" those areas of mathematics which I struggled with, or am ignorant. Statistics? Differential equations? Math. Doing a DFS walk over a parse tree in order to do code-transformation optimizations? No math involved! Just some code.
- 14113 12y agoCompilers (at least optimising ones) bloody well do! For example discrete maths/graph theory for control/data flow graphs or optimisation algorithms for register allocation/loop unrolling. Or, if those don't count as maths to you - look up the polyhedral model: linear algebra applied to loop tiling/parallelisation.
- scott_s 12y agoMy take on the statement "Computer science is a branch of mathematics": http://www.scott-a-s.com/cs-is-not-math/ http://www.scott-a-s.com/cs-is-not-math/ HN discussion: https://news.ycombinator.com/item?id=3928276 https://news.ycombinator.com/item?id=3928276
- aet 12y agoYou can get by without math in engineering? This is news to me... I think what you meant is: you can use existing hardware and software tools to build software applications and systems without relying on "advanced" math. I would say this is the point of building hardware and software -- so other people don't need to learn how to do it. They can just "use it"
- aet 12y agoSo confused...
- scott_s 12y agoI assume you mean you're confused on being downvoted. I did not think a downvote on your comment was warranted, so I gave it a corrective upvote. In general, it's not worth worrying about one downvote; that one person did not like your comment enough to downvote it is a rather weak signal. There are a lot of users on HN. Other users (such as me) are also likely to give you a corrective upvote. It's when you get multiple downvotes that the signal matters.
- blueatlas 12y agoThis is true. But a very low percentage of practicing software engineers, software developers, or web developers actually write compilers or operating systems. The demand today (e.g. what most companies need in terms of software talent) is pretty far removed from these activities. I believe this is what is driving the emergence of code schools and online software development programs.