<p>I heard CS requires a lot of math. What are actual kinds of classes in CS (broad category, or specific), that actually do? Because so far in the 2 entry programming classes in my school, there isn't much math involved...</p>
<p>Have you checked your course catalog? There should be upper division CS courses for which at least a year of calculus and some linear algebra are prerequisites.</p>
<p>"Have you checked your course catalog? There should be upper division CS courses for which at least a year of calculus and some linear algebra are prerequisites. "
… like what? Really, I’d like to know. Do you mean things like Graphics, or some applied class? Because nothing at my school has those prerequisites (then again, the prerequisites here are pretty poorly organized).</p>
<p>Seriously, though, the following courses involve math:
Algorithms
Data Structurs
Formal Languages
Discrete Mathematics
etc.</p>
<p>Even inside classes like Operating Systems, Networks, and Software Engineering, you do a lot of mathematical treatment of things. Queuing theory, graph theory, probability and statistics, etc. come to mind.</p>
<p>CS doesn’t REQUIRE math, CS IS math.</p>
<p>Cs is basically an applied math degree. While generic classes like CS1 and CS2, intro algorithms and stuff only require a few limits and integrals. Though classes like networking go heavily into statistics and probability. Theory classes like the real Algorithms class and Theory of computation go heavy into set theory, calculus, probability and combinatorics. Classes in image processing and alike go heavy into linear algebra and Abstract Algebra. Then there is always the discreet math classes needed.</p>
<p>Lots of Vector calc in the graphics area.</p>
<p>
</p>
<p>Calculus, Linear Algebra, Abstract Algebra (Algebraic Structures), Combinatorics, Graph Theory, Number Theory, Set Theory, Mathematical Logic, Probability and Random Variables. </p>
<p>It varies though from school to school. Some programs place a greater emphasis on math than others</p>
<p>Question for some of you guys:</p>
<p>Where is calculus proper used in CS, and how? The only places I can imagine it being used are in the context of some statistical analysis, perhaps in a networking, organization, or software engineering course. Really, where does it show up?</p>
<p>I would say CS has way more to do with graph theory, combinatorics, logic, set theory, probability and statistics (like I said, maybe including some calculus, but maybe not) and things like that. Discrete math. Heck, even abstract Algebra and Topology seem to have more to do with CS than things like Calculus.</p>
<p>Limits, perhaps, and sequences/series are the notable exception. Is this all the calculus you guys are talking about? When I hear “calculus”, I think differentiation, integration, and all that jazz. Oh well.</p>
<p>Algorithms uses some calculus to prove algorithms, as an example you can use an integral to calculate the mean value of a hash table insertion time/linear probe for a empty cell.</p>
<p>
</p>
<p>You’ll need to know calculus to do stuff with continuous random variables.</p>
<p>Aside from algorithm analysis, calculus seems more situational in my experience. I spend most of my time on graphics (and some AI), so I use linear algebra more than anything. The last time I used calculus was for some physics calculations in a 3D engine I was developing; it’s helpful once in a while, but I’m not sure if it serves as a real foundation to anything in CS. Then again, there must be some little niche in CS that uses it quite a bit…</p>
<p>As for the original question here, it’s harder to find a CS course that doesn’t use math. Programming classes usually don’t involve too much math, but they’re not truly representative of computer science. Since you asked, a few examples:</p>
<p>-Computer graphics: linear algebra, trigonometry, geometry
-Computational geometry: obvious
-Artificial intelligence: discrete math, probability</p>
<p>I mean, all the theory classes ARE math. Some methods or topics may overlap with more traditional, mainstream mathematical topics (logic, set theory, algebra, etc.) while others may be more specific to CS (a branch of mathematics). Examples of theory classes were given by me in the posts above.</p>
<p>Most of the applications classes USE math. Some kinds of math may be used more or less than others, but you can probably find an application for any kind of mathematics in CS applications areas. Applications areas include things like what js911 said.</p>
<p>You will probably encounter more or less mathematics in every CS course beyond introductory programming. That being said, if you pay attention, they do slip some math in at a fairly early stage. If my memory serves me, my very first programming course may not have focused so much on mathematical concepts, and my “introduction to engineering” course certainly did not.</p>
<p>However, my second programming course - which also serves the role of an introductory data structures course - slipped some pretty sophisticated mathematics in the back door. We implemented data structures for things like sets, lists, trees, graphs, queues, stacks, heaps, etc. We implemented algorithms on these data structures and solved problems with them. Some algorithmic analysis was introduced. While this may not have been the most rigorous or difficult material, it is mathematics.</p>
<p>My next programming course - this one was called software construction and focused on larger-scale development in C++ - had us do some pretty sophisticated projects which used math to solve problems. Examples include: using KNN to guess the value of an unknown function for a set of inputs given the value of the function at a suite of test points; using genetic algorithms to approximately solve certain optimization problems; calculate interest rates; etc.</p>
<p>Every course after that has involved mathematics explicitly.</p>