Skip to main content

Stevey's Blog Rants: Math For Programmers

Popularity Report

Total Popularity Score: 0

Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Rank

Related Lists

Bookmark History

Saved by 67 people (-27 private), first by anonymouse user on 2006-04-02


Public Comment

on 2006-07-09 by muaddib

http://www.amazon.com/gp/product/0387942580

on 2006-08-09 by ppsauve

comment apprendre les maths

Public Sticky notes

* Statistics, some of which is covered in my discrete math book, but it's really a discipline of its own. A pretty important one, too, but hopefully it needs no introduction. * Algebra and Linear Algebra (i.e., matrices). They should teach Linear Algebra immediately after algebra. It's pretty easy, and it's amazingly useful in all sorts of domains, including machine learning. * Mathematical Logic. I have a really cool totally unreadable book on the subject by Stephen Kleene, the inventor of the Kleene closure and, as far as I know, Kleenex. Don't read that one. I swear I've tried 20 times, and never made it past chapter 2. If anyone has a recommendation for a better introduction to this field, please post a comment. It's obviously important stuff, though. * Information Theory and Kolmogorov Complexity. Weird, eh? I bet none of your high schools taught either of those. They're both pretty new. Information theory is (veeery roughly) about data compression, and Kolmogorov Complexity is (also roughly) about algorithmic complexity. I.e., how small you can you make it, how long will it take, how elegant can the program or data structure be, things like that. They're both fun, interesting and useful.

Highlighted by xtreme

Math For Programmers

Highlighted by ruadrift

Math is a lot easier to pick up after you know how to program.

Highlighted by navneetk

I've found it's much easier to learn and appreciate geometry and trig after you understand what exactly math is — where it came from, where it's going, what it's for. No need to dive right into memorizing geometric proofs and trigonometric identities.

Highlighted by navneetk

For computer scientists, 95% or more of the interesting math is discrete: i.e., math on the integers.

Highlighted by navneetk

you can learn it all by yourself as a closet hacker, and be just as good (or better) at it than they are. Your background as a programmer will help keep you focused on the practical side of things.

Highlighted by navneetk

how small you can you make it, how long will it take, how elegant can the program or data structure be

Highlighted by navneetk

The right way to learn math is breadth-first, not depth-first. You need to survey the space, learn the names of things, figure out what's what.

Highlighted by navneetk

The right way to learn math is to ignore the actual algorithms and proofs, for the most part, and to start by learning a little bit about all the techniques: their names, what they're useful for, approximately how they're computed, how long they've been around, (sometimes) who invented them, what their limitations are, and what they're related to. Think of it as a Liberal Arts degree in mathematics.

Highlighted by navneetk

Why? Because the first step to applying mathematics is

Highlighted by navneetk

problem identification

Highlighted by navneetk

If you have a problem to solve, and you have no idea where to start, it could take you a long time to figure it out. But if you know it's a differentiation problem, or a convex optimization problem, or a boolean logic problem, then you at least know where to start looking for the solution.

Highlighted by navneetk

because it's easier to read about the field and learn the names of everything than it is to learn the actual algorithms and methods for modeling and computing the results.

Highlighted by navneetk

They're focusing on specializations that aren't proving empirically to be useful to most high-school graduates, and they're teaching those specializations backwards. You should learn how to count, and how to program, before you learn how to take derivatives and perform integration.

Highlighted by navneetk

spend 15 to 30 minutes a day surfing in Wikipedia.

Highlighted by navneetk

Do this recursively until you get bored or tired.

Highlighted by navneetk

Math is almost always about formalizing our "common sense" about some domain, so that we can deduce and/or prove new things about that domain

Highlighted by navneetk

Metamathematics is the fascinating study of what the limits are on math itself: the intrinsic capabilities of our formal models, proofs, axiomatic systems, and representations of rules, information, and computation.

Highlighted by navneetk

notation. Mathematical notation is the biggest turn-off to outsiders.

Highlighted by navneetk

That's a lot like reading programming-language source code, isn't it? You don't need to hand-simulate the entire program state as you read someone's code; if you know what approximate shape the computation will take, you can simply check that their result makes sense. E.g. if the result should be a list, and they're returning a scalar, maybe you should dig in a little more. But normally you can scan source code almost at the speed you'd read English text (sometimes just as fast), and you'll feel confident that you understand the overall shape and that you'll probably spot any truly egregious errors

Highlighted by navneetk

starting to bore you, move on. Jump around as much as you need to. Let your intuition guide you. You'll learn much, much faster doing it that way, and your confidence will grow almost every day.

Highlighted by navneetk

Well, it might not — not right away. Certainly it will improve your logical reasoning ability; it's a bit like doing exercise at the gym, and your overall mental fitness will get better if you're pushing yourself a little every day.

Highlighted by navneetk

The notation is actually there to make it easier, but (like programming-language syntax) notation is always a bit tricky and daunting on first contact.

Highlighted by navneetk

Knuth's "Concrete Mathematics"

Highlighted by navneetk

Just because you don't use the math doesn't mean it's useless, and it sure as hell doesn't mean that the curriculum is designed wrong.

Highlighted by navneetk

http://mathworld.wolfram.com

Highlighted by navneetk

The point is to realize that the prime numbers are the atoms of integers

Highlighted by navneetk

I think the only problem is in the testing of knowledge retention

Highlighted by navneetk

a program called Kumon (it started in Japan, it sums up to being 25 minutes of math a day, everyday, 365 days a year)

Highlighted by navneetk

Math is not that big of a prerequisite for programming. Programming is more of a prerequisite of math. I get better in my high school and college math because i could see similarities in programming.

Highlighted by navneetk

Understanding by Design

Highlighted by navneetk

How People Learn

Highlighted by navneetk

Raymond Smullyan. His books typically start with a series of fascinating logic problems, with a story to tie them together, and then segue into an extended and enjoyable study of some branch of logic and foundations that almost always ends up in a discussion of some of Godel's work from a new direction each time

Highlighted by navneetk

The vast majority of programming involves traversing lists and doing various kinds of sorts. For these tasks, graph theory and queuing theory remain indispensible. Naturally, these areas of math never made it onto the author's list of things allegedly "important to know."

Highlighted by dcorking

I have daydreamed about a solution. I think what should be done is to restructure math so that a student would take a one semester course in polynomial algebra, where they mastered thos basic skills. No roots, no rational expressions (algebraic expressions which look like a fraction), just polynomials. Many more students could handle that. Then they would take "Polynomial Calculus".

Highlighted by dcorking

A nice place to learn linear algebra is a set of free video lectures of Gilbert Strang's MIT class at:

http://ocw.mit.edu/OcwWeb/Mathematics/18-06Spring-2005/VideoLectures/index.htm

Highlighted by dcorking

on 2009-04-09 by dcorking

I think I'll try this


the problem is they haven't taught neither you, nor all math majors in all except very few departments what are mathematicians really doing about mathematics. those who are really going to do math, of course, eventually figure by themselves (usually in grad school)

Highlighted by dcorking

If you want to understand math, start with the number systems. The basic axioms (Peano!) and go on from there. Learn the linear algebra involved (what is a group, what a ring? How about a field? Does it have to be commutative? What happens if it isn't?) - you'd be suprised how different linear algebra is from applying Gauss' algorithm...

Highlighted by dcorking

on 2009-04-09 by dcorking

Maybe, but how could you possibly start there in elementary school? Of course there should be some exposure to 'real math' at primary school - many schools do it - despite the 'new math' backlash in the States - but surely little minds have to be thinking creatively, exploring, modeling and testing before they can dig into abstract models of sets, axioms, possibility of proof ... I don't know, I am not a mathematician, so I could be way off beam here.

children learning maths -
- those who have the most understanding ( mathematicians!) should consider it an obligation to society to publish their "path to understanding" - these should be widely disseminated and chewed over by educationalists - what they had the good fortune to find, just might work for others... - a shared database of key, transformative insightful experiences

Highlighted by dcorking

on 2009-04-09 by dcorking

Yes! I have only read one of these "paths to maths", Seymour Papert's. How representative is he?

students from business, chemistry, physics, engineering, math, biology, and so forth, require indepth knowledge of continuous systems.

This is in addition to the fact that a theory concerning continuous spaces are much more general than one for discrete systems. Take the well known fourier transform.

A student needs to learn about the continous fourier transform, before he or she starts implementing discrete fourier transforms in computer programs.

Highlighted by dcorking

on 2009-04-09 by dcorking

Why? I find continuous models easier, most of the time, but that doesn't mean to say that they are more realistic. Most of the real world is atomic in some way, and it is discrete modelling that led to statistical mechanics, the 19th century gateway to modern physics and chemistry. I think this argument is of the type of "this is how it is, therefore this is how it should be", in other words a closed mind. In fact, the more I see it, the more I think of Alan Kay's lesson in discrete calculus that he gives to 6th graders, and the more I think that _that_ reflects the real world, and, as far as I can tell so far, the way that real applied mathematicians think.

I'd like to add one more author
which had written very nice books on
how the math and matematician work:
George Polya
Try his "Mathematics and Plausible Reasoning" and "Mathematical Discovery".

Also his "Problem in Analyses" are awesome.
I hope they're not out of print.

Also try Alfred Renyi. I don't know
whether his "Trilogy on Math" was translated to English, I read it in Russian translation.

Highlighted by dcorking

on 2009-04-09 by dcorking

Book recommendations that seem to relate to the "Road to Maths" question

As soon as you move beyond the very easy stuff you need consistent notation and practice problems (until you learn how to make your own) and wikipedia doesn't do either very well even though it is great for a quick definition or proof you forgot.

Highlighted by dcorking

Like many other people I know in math grad school I really disliked all the math classes I took before college except geometry which had some proofs. There is nothing as unpleasant and unenlightening than learning rote rules to solve equations, calculate integrals or do trigonometry.

Highlighted by dcorking

on 2009-04-09 by dcorking

Aha!

Really learning math is about fitting together the pieces to see why things really work. If you just want to get your homework done and don't care why things work you don't even have the right pieces in your mind for an explanation to fit into.

Highlighted by dcorking

on 2009-04-09 by dcorking

Oh :(

confidence is essential to math, you need to grope around in the dark with potential solutions until one works

Highlighted by dcorking

on 2009-04-09 by dcorking

Interesting