Convince me that Computer Science and Math are a good combination.

<p>I have always heard that Computer Science and Math is a powerful combination, but I truly am struggling to see why. I am a current freshman at Virginia Tech and I plan on majoring in Computer Science. I am unsure about which industry I would like to move into, but I would love to go into video game programming or get a job at a major software firm in Silicon Valley. </p>

<p>I have a strong interest in Math so dual majoring in math would be fun for me, but I just don't see how that would help me in the long run. It seems as though my time would be better spent if I took more classes in networking, databases, or graphics, instead of spending time learning about Fourier Series. How exactly does math help me with programming? People say it helps you "think" better, but that sounds like a waste of time if there is no realworld advantage to be had. </p>

<p>Virginia Tech offers a computational math option which requires the following classes:</p>

<p>Calc 1 and 2
Multivaribale Calculus
Differential Equations
Linear Algebra
Introduction to Proofs
Calculus of Several Variables
Advanced Calculus
Intro to Numerical Analysis 1,2
Issues in Scientific Computing
Fourier Series PDE 1,2
plus two senior level electives.</p>

<p>I figured I would take Elementary Analysis and Cryptography if I decide to dual major or not.</p>

<p>While some of those classes could help, wouldn't it be better to just minor in math instead? That way I don't need to take all the classes that don't directly help me? The Computer Science program also requires a class in combinatics.</p>

<p>If my ideal job isn't scientific and is geared more towards comerical software, how do these classes help me become a better programmer? Thanks in advance.</p>

<p>It really depends on what you want to do. If you graduate and get a job as a web developer or something like that, those math classes may not be very helpful.</p>

<p>I worked briefly as a game programmer, and I can tell you that our interview process had a ton of math questions in them – mostly game related math (transformation matrices, line/plane intersections and things of that nature). We also had a few senior graphics guys who had strong backgrounds in physics and math (to accurately model lighting under all sorts of conditions).</p>

<p>I also worked for a few years in scientific computing doing mostly signal/image processing type work. We used linear algebra and fourier transforms everyday. </p>

<p>At my current company, I do mostly low level systems programming – not a lot of math involved.</p>

<p>I guess the point I want to get across is that math can be useful in a variety of fields. If you don’t really know yet what you want to focus on, I think it’s good to keep taking those math classes because they will open more doors for you.</p>

<p>Math can help if you go into scientific computing (where courses like numerical analysis, advanced differential equations, statistics, etc. can help), cryptography (where courses like abstract algebra and number theory can help), finance (where courses like real analysis, mathematical economics, finance, statistics, etc. can help) or computer theory.</p>

<p>But otherwise, many CS graduates go in industry without needing additional majors. It helps to have a course each in topics commonly used in industry, such as algorithms and complexity, operating systems, networks, software engineering, databases, and security. For video games, add additional courses in graphics, user interfaces, artificial intelligence, art, and physics (mechanics). Some applications involving parsing and translating input languages will make use of stuff from the compiler course.</p>

<p>Many applied/discrete mathematics courses study problems and proofs which can be applied to developing useful algorithms. Graph theory, cryptography, data compression, linear algebra, coding theory, information theory, combinatorics, logic, numerical analysis & methods… These are application areas, though, so you don’t need to study them to be a competent CS major.</p>

<p>CS majors do a lot of math anyway in their CS courses. Algorithms, formal languages, automata, complexity, networking protocols, OS filesystems/memory/processes, programming languages, etc. If you recognize this, appreciate this and take the time to learn how to think mathematically and logically about CS, most of what studying math separately would teach you would be superfluous.</p>

<p>Thank you for your responses.</p>

<p>But would more math be better than say taking an advanced course in Networking? I see that it can be used, but wouldn’t it be better to minor in math instead of dual majoring? </p>

<p>I feel as though more math classes instead of more Computer Science classes would make me uncompetitive to prospective employers.</p>

<p>It depends on the jobs you will be applying for. In general, I think that taking more CS courses is good, and you should do this first. However, don’t take CS courses just because they’re CS and not math; Networking is a much more valuable course than Computer Ethics II or some random Teaching Software Engineering or whatever. Take the good, rigorous, CS courses - networks, OS, architecture, parallel/distributed computing, theory, algorithms, programming languages, etc. - and take the most interesting/useful/applicable math courses - graph theory, optimization, information theory, logic, etc. - instead of the fluff/boring CS electives - a full sequence of 4-5 software engineering courses, teaching/pedagogy courses, ethics courses, + things you are genuinely not too interested in (e.g. user interfaces, graphics, databases, AI, etc.).</p>

<p>Really, my advice boils down to this: once you have the basics down, you should be taking the most rigorous, challenging, stimulating and useful/applicable courses you can find, regardless of the department. Whether that is math, CS, physics, EE, English or Business doesn’t matter. Pick hard courses that interest you and employers/graduate programs will recognize you for it.</p>

<p>At Va Tech aren’t you only about one course away from a Math minor? I mean with the regular Comp Sci major not the one with computational math option.</p>