<p>Like I said, discrete math and linear algebra are required courses for any reputable CS major.</p>
<p>Furthermore, you mention the distinction between theory and practicality, which is certainly a true distinction. But the question here is more math vs. more CS. And while CS algorithms classes in college might certainly be more theoretical than algorithms in industry, math beyond that typically required for a CS major is going to be even more theoretical.</p>
<p>Now obviously, if you need an algorithm to model a complex phenomenon in physics or chemistry, you are obviously going to need much greater knowledge of mathematics and physics/other sciences. But that is a special case, and is often dealt with by PhD students and/or actual research scientists.</p>
<p>No, it’s not “the distinction between theory and practicality”. It’s a matter of acclimating yourself to the language of math and science. Computer science courses like to rely on pure computer science problems that only rely on concepts that the typical computer science major is comfortable with like discrete math or graph theory. But real world problems aren’t nearly so clean. Real world problems are inter-disciplinary. Most of the projects I worked on bled into many disciplines – math, physics, EE, – which is why I was always working with people with different educational backgrounds. And it was mathematics that helped us communicate with each other.</p>
<p>Another thing that I wish more CS/Developers would pay more attention to is how what they are developing works along with all of the other areas. You can make the prettiest code in the world but if it doesn’t play well with others in the end it’s not very good. We just had something in our last system release that came to me a few weeks before the release to be implemented into our QA environment and I about fell over with how unfeasible it was. I had to call a meeting and walk everyone through the process from start to finish and suggest where we needed to make adjustments to make this a feasible process flow. It then had to go back to development and then made it out of QA three or four days before our release went live.</p>
<p>Mokonen: Like I said earlier, the example you bring, while certainly valid, is a special case (scientific computing). For scientific computing, it is obvious that greater non-CS expertise in Math/Science will be needed.</p>
<p>Now, if the OP wants to pursue scientific computing, then obviously the OP needs to study more math and science. For the majority of the CS field, more math beyond that which is required is unnecessary - I’m talking about jobs in Silicon Valley, software development, web development, etc.</p>
<p>I agree. I should have made it more clear that when I say “I.S. courses”, I mean the courses that pertain to “information systems”, not really the I.S. academic department because that department is usually in neither the engineering nor math departments (home of most CS programs).</p>
<p>…but I agree. The database systems, network systems and operating systems courses should come from the CS department.</p>