There are a lot of threads asking about math courses to take, so I figured it was time to put together a blog entry on this. I'm making the assumption that you, the reader, are some sort of an IT or CS major, so I'm starting at Calculus and moving my way up. This isn't a complete or comprehensive list of math courses commonly available to undergraduates, but this is my opinion of a set of course that a well-rounded computer scientist will find of interest.
Calc I-II: These classes cover differential and integral calculus, as well as series and sequences on most occasions. These courses should provide a good foundation to understanding rates, changes, motion, basic optimization on the real numbers, and some basic modeling. When working with a lot of dynamical systems or moving objects, it's important to understand calculus.
Multivariable Calculus- This class covers calculus on two or more variables. Topics covered include partial derivatives and multiple integrals. Weaker courses may cover series and sequences, and stronger courses focus on topics like Stokes Theorem, Green's Theorem, and Divergence Theorem. Economists, Mathematicians, and Engineers need this course, and it is helpful for computer scientists focusing on graphics or scientific computing.
Differential Equations- This class covers solving equations with derivatives (usually ordinary differential equations), which is extremely helpful for modeling pretty much any system with changing variables. The topics are very applicable to graphics programming, scientific computing, numerical methods, and dynamical systems. This is a very important class for computer scientists, amongst other majors.
Linear Algebra- I highly recommend a strong linear algebra class to anyone. Linear Algebra has applications everywhere, including numerical methods, scientific computing, mathematical modeling, graph theory, and graphics programming. Make sure to take a strong, abstract and proofs-based version to really get a good flavor. It has been my experience that classes solely focused on number crunching don't encourage a lot of thinking, which isn't as beneficial to a computer scientist (or anyone really) as a class that forces one to think. The other benefit of Linear Algebra is that it introduces rigorous proof-writing, for those who may not have previously taken a formal proof-writing course.
Discrete Math- This class is often times taught as a survey class, based on the professor's interests. You will almost always learn something new repeating this course at a different school or with a different professor. Topics are generally relevant to computer science, and may include logic, set theory, Boolean algebras, computational complexity, number theory, graph theory, combinatorics, languages, proof by induction, and discrete probability. This is another staple course for computer scientists.
Number Theory- Number Theory is the study of the integers. Topics include primality, primitive roots, quadratic reciprocity, factoring, and more. Number Theory is applied in the context of cryptography, so this is a very relevant course for computer scientists. This course is similar to Linear Algebra in the fact that it introduces proof-writing to those who may not have seen it before. Unlike Linear Algebra, however, Number Theory stresses proof by induction.
Combinatorics and Graph Theory- Combinatorics and Graph Theory covers a wide mix of topics. Combinatorial topics include combinations, permutations, inclusion-exclusion, recurrence relations, generating functions, and combinatorial proofs. Graph Theory topics generally include coloring, cliques, trees, network flow, path-finding, and combinatorial optimization. This course will provide a strong foundation for upper-level classes like algorithm analysis, formal languages, compilers, artificial intelligence, and game theory, so I highly recommend taking it.
Calc I-II: These classes cover differential and integral calculus, as well as series and sequences on most occasions. These courses should provide a good foundation to understanding rates, changes, motion, basic optimization on the real numbers, and some basic modeling. When working with a lot of dynamical systems or moving objects, it's important to understand calculus.
Multivariable Calculus- This class covers calculus on two or more variables. Topics covered include partial derivatives and multiple integrals. Weaker courses may cover series and sequences, and stronger courses focus on topics like Stokes Theorem, Green's Theorem, and Divergence Theorem. Economists, Mathematicians, and Engineers need this course, and it is helpful for computer scientists focusing on graphics or scientific computing.
Differential Equations- This class covers solving equations with derivatives (usually ordinary differential equations), which is extremely helpful for modeling pretty much any system with changing variables. The topics are very applicable to graphics programming, scientific computing, numerical methods, and dynamical systems. This is a very important class for computer scientists, amongst other majors.
Linear Algebra- I highly recommend a strong linear algebra class to anyone. Linear Algebra has applications everywhere, including numerical methods, scientific computing, mathematical modeling, graph theory, and graphics programming. Make sure to take a strong, abstract and proofs-based version to really get a good flavor. It has been my experience that classes solely focused on number crunching don't encourage a lot of thinking, which isn't as beneficial to a computer scientist (or anyone really) as a class that forces one to think. The other benefit of Linear Algebra is that it introduces rigorous proof-writing, for those who may not have previously taken a formal proof-writing course.
Discrete Math- This class is often times taught as a survey class, based on the professor's interests. You will almost always learn something new repeating this course at a different school or with a different professor. Topics are generally relevant to computer science, and may include logic, set theory, Boolean algebras, computational complexity, number theory, graph theory, combinatorics, languages, proof by induction, and discrete probability. This is another staple course for computer scientists.
Number Theory- Number Theory is the study of the integers. Topics include primality, primitive roots, quadratic reciprocity, factoring, and more. Number Theory is applied in the context of cryptography, so this is a very relevant course for computer scientists. This course is similar to Linear Algebra in the fact that it introduces proof-writing to those who may not have seen it before. Unlike Linear Algebra, however, Number Theory stresses proof by induction.
Combinatorics and Graph Theory- Combinatorics and Graph Theory covers a wide mix of topics. Combinatorial topics include combinations, permutations, inclusion-exclusion, recurrence relations, generating functions, and combinatorial proofs. Graph Theory topics generally include coloring, cliques, trees, network flow, path-finding, and combinatorial optimization. This course will provide a strong foundation for upper-level classes like algorithm analysis, formal languages, compilers, artificial intelligence, and game theory, so I highly recommend taking it.
2 Comments On This Entry
Page 1 of 1
Invoker
23 August 2014 - 05:16 PM
Funny, I think there's only 2 of these that isn't mandatory for CS majors at my University.
Page 1 of 1
← September 2021 →
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 |
My Blog Links
Recent Entries
Recent Comments
Search My Blog
1 user(s) viewing
1 Guests
0 member(s)
0 anonymous member(s)
Google
0 member(s)
0 anonymous member(s)