**concrete**examples of where Abstract Algebra and Number Theory appear in computer science. The only application I know of is cryptography. Is their more areas then this? What exactly, how would these courses help with advanced computer science studies?

**0**

# Abstract Algebra and Number Theory in Computer Science?

###
#3
Crossbones+ - Reputation: **1721**

Posted 21 June 2012 - 07:04 AM

The computational commutative algebra tools, primarily Gröbner bases, have several applications from cryptography, to computational biology, to the study of discrete non-linear PDE... They are basically useful each time you have to solve some system of multi-variate polynomials.

The study of finite groups (and also some number theory) can be useful to solve combinatorial problems which sometimes arise in theory or trying to solve some real software problem.

Why are you interested in applications of those fields? Do you want to know if it make sense to take them as courses? Are you curious about the applications of something you have studied?

**Edited by apatriarca, 21 June 2012 - 07:05 AM.**

###
#4
Members - Reputation: **834**

Posted 21 June 2012 - 01:59 PM

**Edited by DevLiquidKnight, 21 June 2012 - 02:02 PM.**

###
#5
Crossbones+ - Reputation: **13368**

Posted 21 June 2012 - 02:12 PM

Besides the argument above, abstract algebra contains the language in which a lot of the other math classes will be described (groups, rings, fields, morphisms...). If you are going to get a degree in mathematics, you should definitely learn abstract algebra.

###
#6
Members - Reputation: **834**

Posted 21 June 2012 - 02:33 PM

I agree with this to extent, but abstract algebra seems like it would be more applicable to graduate level math courses. I also am trying to find some areas where abstract algebra, or number theory are used in CS. It seems like a lot of people say taking high level math can be beneficial, and I am sure thinking abstractly can indeed help. However, is their more benefits then that? For example as:Besides the argument above, abstract algebra contains the language in which a lot of the other math classes will be described (groups, rings, fields, morphisms...). If you are going to get a degree in mathematics, you should definitely learn abstract algebra.

Discrete Fourier transforms

Pointed out knowing these could be useful for image/video compression algorithms, from what I understand at least.

###
#7
Crossbones+ - Reputation: **1721**

Posted 21 June 2012 - 03:19 PM

What are your long term objectives? Why are you studying for a degree in Mathematics if you are mainly interested in Computer Science?

Taking advanced mathematical courses you learn to think in a different, more abstract way. You will also learn new ways to solve problems and to cope with complexity. These are useful abilities on their own. But in most CS jobs you will probably never have to use the most advanced topics (but if you know them you can probably find some applications - I have some problems in finding a mathematical theory which has no real world applications). If you are studying for a degree in Mathematics, then Abstract Algebra is a must (you should also take at least one course in general topology). I think it is more important to learn the basic language and tools used in most of mathematics than learn some tool you can take easily once you have the basis.

###
#8
Members - Reputation: **834**

Posted 21 June 2012 - 04:38 PM

Most the concepts I've seen in computer science are derived from mathematics, even the algorithms. Therefore it made sense to study mathematics before studying computer science.What are your long term objectives? Why are you studying for a degree in Mathematics if you are mainly interested in Computer Science?

###
#9
Crossbones+ - Reputation: **13368**

Posted 21 June 2012 - 08:35 PM

I specialized in the geometry of differential equations with singularities. In particular, I was working with vector fields in dimension 3. But I decided I didn't like it enough and I wasn't making enough progress to feel satisfied, so I quit my Ph.D. program and got a programming job. After 10 years as a programmer, I now have a job in the financial industry where I do research in mathematical modeling of markets (and still some programming).@alvaro: It looks like we basically have the same mathematical background. What's your field of specialization?

The vast majority of the math I use is limited to linear algebra, statistics and a bit of calculus. But recently I've been working on a problem whose solution involves calculus of variations, differential equations, Fourier transform, generating functions and complex analysis. Still no real-world application for algebraic topology, though.

###
#10
Crossbones+ - Reputation: **1721**

Posted 21 June 2012 - 09:20 PM

My master thesis (I graduated in April) was in topological data analysis. In this field, homological methods are for example used to retrieve global information about some data which can be described as some kind of filtration of simplicial complexes. You may find this page interesting (this is not my thesis but the research group at Stanford). Maybe you will find some usage of these results in your job.. I'm currently in the process of deciding whether I'm interested in a PhD or not.Still no real-world application for algebraic topology, though.

###
#11
Crossbones+ - Reputation: **2709**

Posted 22 June 2012 - 02:10 AM

From the point of view of getting a mathematics degree, I don't get how the foundations of abstract algebra and number theory can be anything other than formally, or at least practically, required basic courses. We are talking about general theory, not about making these fields your specialty.I am working on my degree in mathematics, and want to pick the classes carefully in a way to maximize my computer science potential. If theirs very few applications of abstract algebra or number theory, it seems like it might be better to take a different course.

If you are interested in applying math to computer science, learning a little bit of everything without blind spots is the best way to improve your chances of knowing something relevant to your practical problems.

###
#12
Members - Reputation: **834**

Posted 22 June 2012 - 02:06 PM

This would be true for a pure math degree. Even then its typically optional for undergrads, theirs plenty of other math courses that are offered as upper division electives.From the point of view of getting a mathematics degree, I don't get how the foundations of abstract algebra and number theory can be anything other than formally, or at least practically, required basic courses.

My question still remains though is their any use to this stuff in computer science on a concrete level other then knowing the theory.

**Edited by DevLiquidKnight, 22 June 2012 - 02:23 PM.**

###
#13
Crossbones+ - Reputation: **13368**

Posted 22 June 2012 - 08:32 PM