I don't know much when it comes to computers,

But If I wanted to learn how to programm algorithms that perform symbolic calculations and other techniques used to solve or aid mathematical problems, and to be able to classify the efficiency of different types of algorithms in terms of different factors, what sub field of computer science should I study, and how would I start studying it?

So that I can gain these techniques. In addition, I would like to start studying some enumerative combinatorics, is there some way I could study them together or at the same time? In terms of my educational background, I am familiar with parts of elementary number theory, and know about arithmetic functions, I also have about a thorough high school education in calculus, and all proceeding k-12 math courses, but other then that, I don't have any technical skills, and have no experience when it comes to using computers.

I hope this is an appropriate question for this site, and I would greatly appreciate any advice.

  • 1
    $\begingroup$ Offhand, terms like "computer algebra", "numerical methods" and "analysis of algorithms" come to mind. But I don't know that this answers your question. $\endgroup$ – Patrick87 Mar 7 '13 at 0:04
  • $\begingroup$ Do you know any programming languages? For symbolic anything you should learn a functional language like OCaml or my preference F#. Depending on the depth you may find that you just comitted to a several year project since you say "no experience when it comes to using computers". Don't let that stop you, just realise it is a big project. $\endgroup$ – Guy Coder Mar 7 '13 at 14:54

Symbolic algebra is a vast area... perhaps you should sniff around the sites for maxima, Pari/GP, or SAGE, all open source (full details on how they are built is available, essentially) packages. There are specialized journals on computer algebra and symbolic computation in general.

For enumerative combinatorics, Richard Stanley's homepage should give a starting point (also look at lecture notes on OCW, and courses on Coursera), check out the book by Flajolet and Sedgewick "Analytic combinatorics" and (a somewhat simpler exposition) Sedgewick and Flajolet's "An Introduction to the Analysis of Algorithms". Note that the stuff I cite is heavy going, more targeted at graduate students.

But before diving into this specialized stuff you'd need a solid ground on computer programming, data structures and other basic CSc stuff. Your interests aren't exactly bread-and-butter computer science, probably more in the line of graduate studies. Check if the schools you are considering have research in the areas that interest you.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy