tags:

views:

280

answers:

5

I'm trying to reteach myself some long forgotten math skills. This is part of a much larger project to effectively "teach myself software development" from the ground up (the details are here if you're interested in helping out).

My biggest stumbling block so far has been math - how can I learn about algorithms and asymptotic notation without it??

What I'm looking for is some sort of "dependency tree" showing what I need to know. Is calculus required before discrete? What do I need to know before calculus (read: components to the general "pre-calculus" topic)? What can I cut out to fast track the project ("what can I go back for later")?

Thank!

+3  A: 

Here's how my school did it:

base:
    algebra
    trigonometry
    analytic geometry

track 1                       track 2               track 3
    calc 1                       linear algebra        statistics
    calc 2                       discrete math 1
    calc 3 (multivariable)       discrete math 2
    differential equations

The base courses were a prerequisite for everything, the tracks were independent and taken in order.

So to answer your specific question, only algebra is needed for discrete. If you want to fast track, do one of these:

algebra, discrete
algebra, linear algebra, discrete (if you want to cover matrices first)

HTH... It about killed me when I returned to school and took these, but I'm a much better programmer for it. Good Luck!

Mark Harrison
+1  A: 

Usually, an overview of each field is a good thing to have when looking at any topic, but it's rare to have a genuine dependence the way we'd think of it. Algebra is always needed. I can't think of a time I've needed any trigonometry. (except to expand it with new things from calculus) I'm even quite sure people wouldn't agree on what a dependency graph would look like, or even in which field each topic belongs.

I think the right way to approach it is to just collect a wide range of topics from all of branches and read them in whatever order you feel like, recording dependencies between topics as you go. (respecting them, or not, as you please.) This should have the far more important property of keeping the student interested.

It's also my experience that if something just has you stumped, just mark it and set it aside for later.

As for my school, well, it was similar to Harrison's:

  • cominatorics,
  • linear algebra,
  • calculus,
  • numerical analysis (error analysis in particular.)
  • logic,
  • statistics, (with operations research / queueing therory.)
Anders Eurenius
+1  A: 

My advice is to lazily evaluate your own dependency tree. Study something you think is interesting -- when you hit something you don't know, go learn about it.

I always find it easier to learn something new when I already have a context in which I want to use it.

Rob Dickerson
+1  A: 

This is a particularly cool site for visualizing how everything in the math world fits together:

http://www.math.niu.edu/~rusin/known-math/

It's also got short summaries of many subfields you've probably never heard of, which is fun.

nsanders
A: 

Take a look at MathWorld. Browse topics or search for one, you'll get your position in the overall tree.

J D OConal