Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Math for computer science [closed]

I have read several answers on this topic , but I still have questions.. There are plenty of math courses, and I don't know which one to take first. Which math classes should every computer scientist take? And what class should be first one and why?

like image 735
LoLzMan Avatar asked Feb 14 '13 05:02

LoLzMan


People also ask

What kind of math is required for computer science?

Computer science is a broad field, so if you're looking to get your computer science degree, the kind of math you'll need to know will depend on your specific program and career path. But generally speaking, most degree programs require a basic understanding of calculus, algebra, discrete mathematics, and statistics.

Does computer science really require math?

Math is an essential component of computer science which underpins computing and programming concepts. Without it, you would find it challenging to make sense of abstract language, algorithms, data structures or differential equations.

Is math in computer science hard?

In fact, Computer Science does require less mathematics than a pure-maths degree or even an electrical engineering degree, but some of the math you will encounter will be more difficult and theoretical than you might expect. It is also possible that your university has different requirements for computer science.


1 Answers

Very good and important question! A good understanding of math is essential for every computer scientist, and the math requirement is starting to become more diverse.

  • Discrete Math is the most important and basic class for computer science, and for this reason it is usually offered in CS departments instead of math departments. This class will underpin your intro to algorithms to class and teach you how to prove things mathematically and give you the fundamentals for analyzing data structures and algorithms.
  • Calculus, while not directly used in intro-level computer science classes, is generally a sequence of courses offered by your university to buff up your math skills. As you start getting into things like numerical programming and machine learning, though, it will prove immensely useful. It's also a requirement for advanced probability/statistics courses.
  • Probability is usually covered in some extent in your discrete math class, but you'll want to take a class on continuous probability distributions and statistical inference, probably in the math and statistics department. This will give you a better understanding of how to do numerical computation and simulation, and is fundamentally necessary for machine learning, one of the most important applications of computer science.
  • Linear Algebra is a class that you will find primarily useful for machine learning and (advanced) algorithms classes, but its importance in computer vision, computer graphics, machine learning, and other quantitative sub-disciplines is paramount.

That said, if an intro to machine learning class is available, they will probably cover enough linear algebra and other stuff that you can get by with a basic probability class. However, for graduate study in computer science, a good understanding of all areas of math above is essential.

Beyond undergraduate math, higher-level math courses are useful for certain theoretical areas of computer science (e.g. algorithmic game theory, which intersects with economics) and especially in going beyond being a machine learning practitioner to developing new algorithms. These courses include:

  • Real analysis, including measure theory where you'll find that if you study probability and calculus for long enough, they converge again. Analysis is generally a useful thing to know when you start working with algorithms involving numbers.

  • Optimization, including linear optimization, convex optimization, gradient descent, and so on. In many cases, "learning" a machine learning model basically boils down to optimizing an objective function, and properties of this function such as whether it is convex have a big impact on how easy it is to optimize.

  • Numerical methods: some wouldn't consider this a math class per se, but in translating algorithms and theory into the imperfect representation of floating-point math, there are many practical problems to be solved. For example, the log-sum-exp trick.

  • For those who will be in "data science" and related fields, advanced statistics and especially causal inference are very important. There are a lot of things to know, mostly because having access to a lot of data tempts this problem for the uninitiated.

like image 108
Andrew Mao Avatar answered Sep 20 '22 07:09

Andrew Mao