Imagining Numbers
Much of modern mathematical literature is structured with crisp, scripted precision. First there is theorem one, then theorem two, which leads to theorem three, which could only be followed by theorem four, and so on until we reach theorem n. If you want to learn the mathematics of complex numbers (a +bi), then classic texts (this or this) will get you there.
Some may like this logical progression, but it leaves others cold in the same way that crisp, modern architecture by Mies van de Rohe leaves some craving a more layered, fractured, ornate, organic and just plain fun place to live and work. Less isn't more, as Robert Venturi said, less is a bore.
If you happen to feel a chill when churning through an assembly line of theorems, you might enjoy the treatment of Mazur, a professor at Harvard who seems to spend as much time reading poets like Rilke or Stevens as he does examining old mathematical texts. Mazur is not the kind of machine that turns coffee into theorems-- he's too busy stopping to smell the rhetorical flourishes.
The book isn't aimed at mathematicians per se. The publisher, Farrar, Strauss and Giroux specializes in mainstream literature and that's probably the best pigeonhole for this book. Mazur wants the reader to understand how to think about imaginary numbers, not evaluate some integrals -- and that reader could really be anyone with the desire to think about mathematical things. The book is simple enough to be accessible to most who will be interested in it.
In many ways, Mazur attempted a much harder task than just teaching complex analysis. It's one thing to learn how to find the roots of polynomials, but it's another thing to try to help people get a feeling or an intuition for the square root of minus fifteen. Integers are easy to understand and even feel by counting out things, but imaginary numbers don't seem to exist. Mathematicians have spent many years trying to find the best metaphors and structures to understand how to find answers for all polynomials and it's never been an easy struggle.
The best part of the book is, without doubt, the historical treatment of how other mathematicians confronted the question of irrational and complex numbers. These ideas have always been hard to grasp and it took time to evolve the most compact and consistent nomenclature.
If you're interested in mathematics as more than just a mechanism that churns out answers, you'll probably enjoy the book. It's a light, friendly, philosophical expedition looking for a way to make imaginary numbers work in our minds.
Peter Wayner is the author of Translucent Databases , a book on how to imagine databases that hold no information yet still do useful work. You can purchase Imagining Numbers from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
IMHO, assuming you have access in school to the resources: the best way to understand concepts like imaginary numbers is through hands on lab work. I would have never understood control systems just from books. But once you start playing around with tuning some circuits and watching response on an oscilloscope, 'imaginary' numbers in your system become very real. As I told someone (a lawyer) once who asked if 'i' made any sense (of course, I corrected him; to any electrical engineer, it's 'j'), "Sure it does, I've seen in on an oscilloscope.
Granted, if you never get to something like control systems, the above won't make sense. But once you're to a point where you have to deal with imgainary numbers, doing it hands on is best.
<sarcasm>
Yes, somehow there is something concrete and real about programming, but math is just way out there and totally wierd, with no correlation at all with reality.
</sarcasm>
Dude, math, programming, physics, and almost any form of engineering are all abstract arts. We deal with invisible quantities that do magical things that have no correlation with reality. Heck, even music can fall into this arena of abstract arts.
Abstract thinkers make grade A programmers, mathematicians, physicists, chemists, engineers, etc...
The radical sect of Islam would either see you dead or "reverted" to Islam.
fact: calculus, especially as taught these days in most north american universities, is pretty lightweight stuff
opinion: you probably haven't seen any of what a mathematician would call abstract mathematics. I haven't read this book, but some of the points discussed here are sound. When you get out of the kindergarden stuff, you really will have to go at material iteratively, and you will have to work a fair amount of it for yourself before you really get it.
I don't claim particular expertise in mathematical pedagogy. I do have 2 1/2 math degrees, so I know a little bit about learning the material. Every mathematician I know (including one field medalist) attacks new material this way, at least to some degree. I'm sure there could be exceptions.
I got an A in Calc 1, and I've got a 94% halfway through Calc 2 right now, and I'd have to agree with you. I might add though, that even more important than plowing is to DO ALL THE HOMEWORK. There is a direct coorelation between the amount of homework/sample problems people do and how well they understand math. There is a good coorelation between understanding math and the grade you get.
There have been several topics I was confused about, but I plowed through, then did 50 sample problems (over 20+ hours) and found aftrwards that now I understood it, and it was actually easy. It's like a sport, you have to practice!
The ability to do arithmatic quickly and accurately in one's head is fairly orthogonal to the ability to comprehend higher math.
Hell, my current math professor has to write out simple arithmatic that I can do easily in my head, but he's one of the most gifted math teachers I've ever had.
Given that much of the business of creative mathematicians amounts to inventing new patterns of provable relations between objects and properties, probably there are more ways to understand math than there are branches of math --
Spatial models just happen to appeal to me -- and the posts here indicate that is probably pretty common. Many of us just live with the convenience of that (and with its limitations, because many math concepts are hard to geometrize). But it's not the only way, and a few folks seem to find other and non-spatial thought patterns more natural.
In the end, the advice to look over the whole of some new math thing before diving into the detail sounds good, and probably that is because it actively encourages trying to pick out the kinds of relationships and features that the individual reader finds intuitive or meaningful. Those things, whatever they are for the individual reader, will not only stick best in the mind, but also they may in turn provoke further thought and maybe new invention.
Terry
Bad news... *you* are the idiot.
For real.
You seem to have confused the SCIENCE (note that word... "science"...) of computer science with the TRADE SKILL of programming.
If you went to university just to learn how to code a front-end for accounts payable... then you are as seriously misguided as a plumber who enrolls in course on continuum mechanics to learn his trade.
Most plumbers I know are smart enough to understand the difference... on the other hand, a shocking number of CS students I see... aren't.
Bottom line: Please drop out of university immediately... you don't even understand what you are taking. You'd be much happier at the DeVry school of Football, Truckin' and Codin'.
Not only did this person not know the direction the proof would take in advance, but he/she didn't know either the hypothesis or conclusion either!
That's not always entirely true. In theory, you're right, but in both math and science intuition is always a factor. Of course, you can't use your intuition as your proof, but it is often useful to carry you in the right direction.
Computer programming doesn't involve math in the same sense that economics doesn't involve math. You can do both of them with only very simple math skills, but you're going to understand what you're doing a lot better if you do know some math.
I think people studying software in school (CS majors, that is) should continue to be required to take calculus. And this is coming from someone who failed second semester calculus four times in a row, took it at a community college, dropped it, then took it again, and got an "A".
So to get to my point: sure, a web browser doesn't require any math. But if the people who wrote them understood more about the mathematics of the efficiency of algorithms, perhaps there'd be a chance that they wouldn't be so damnably slow. I mean really, I have this computer that's multiple hundreds of megahertz, and the blasted thing should be able to render any web page (minus network delays) in tiny fractions of a second, but instead it sometimes takes several seconds. It's possible that it just has so many features that it's going to be that, but I think perhaps instead somebody out there just didn't understand the difference between O(n) and O(n^2), or they didn't care.
Basically, I think a software professional ought to have enough general math ability that when writing any algorithm, they're just automatically aware of what category it falls into (O(n), O(n^2), O(n log n), etc.) without really consciously thinking about it.
As an example, if I write code that dynamically resizes an array when it runs out of space, and it does this by adding 5 extra elements each time, I should be aware when doing this that it will take O(n^2) time to put n elements in that array (if I work from the beginning). Whereas if I do what Perl does and double the size each time, I will waste a little memory, but in return the running time becomes O(n) again. They didn't teach me that factoid in school, but they taught me enough math to figure it out on my own. And that's a good thing if software isn't going to be complete crap.
Having said that, many math textbooks and math courses are complete crap, because teaching math is about like anything else, which is to say that you can do it if you don't have any communication skills and don't even care about being able to communicate, but if you don't have those skills then you'll make lots of people miserable.
So, IMHO, computer science students should be required to take advanced math, and advanced math students should be required to take creative writing. :-)
Books trying to sell math for dummies suck. Just read real math books. It takes time and is hard to understand but it's the only way to really understand.
I don't understand. How does that anecdote demonstrate that it's hard to write a book about mathematics that the lay reader? In that anecdote, the friend is telling the statistician what he doesn't understand! And that is the essential information that you need when writing expository prose. If you are telling someone how to get to where you are, the first step is to know where they are. Think about it: would you give someone directions to your house without first asking them what part of town they live in and whether they know the part of town that you live in?
So, to me, the absolutely essential first step in writing a book for the layperson is to spend time studying how the layperson thinks about your subject. Then, you have to come up with a plan. You have to understand what path you are going to take them on in order to get them where you want them to go. If the author has missed these two steps and thinks the first step is writing an outline or firing up the word processor, it's no wonder he finds it hard!
Let me tell a quick little anecdote that was taught as part of a US history class. It seems that, during the Vietnam war, the US thought they'd get some Vietnamese villagers to stay away from communism by Americanizing them, culturally. So they sent out teams of people to the villages with items that were big part of American culture. American foods, American music, etc. They even brought in some dogs so that the Vietnamese could have American pets. Some time later, they came back to (one of?) the villages to check up, and the conversation went something like this:
The point is, if you want someone to understand you, you should try to understand them. If the US had really wanted to Americanize the Vietnamese villagers or otherwise convince them not to side with the communists, they should've sent in anthropologists to live with them and learn about their culture and what makes them tick. Then, instead of hatching a truly half-assed plan and stumbling around doing stuff that looks reasonable on the surface but gets nobody anywhere, they might have had some chance of knowing where the others are coming from and actually communicating what they want to communicate. And it's the same with writing a book.
> Software engineering rarely has anything to do with complex math. (Computer Science occasionally does). If you can do simple algebra, you can probably write 90% of all end user applications out there.
>
Not surprising at all when you consider that most software is just an automation of the thinking that we humans do for common daily activities. Such thinking involves processing of higher-level symbols by our brain. These symbols are high-level abstractions into "common-sense" symbols of the sensory inputs fed to our brain continuously.
Contrast this with the lower-level "non-symbolic" processing such as that involved in low-level vision or hearing in the brain. Its not surprising that our brain cannot easily understand its own lower-level brain activities using its higher-level common-sense kind of thinking. Instead, quantitative thinking or "hard math" is needed to understand how vision or hearing works. Hence software to automate hearing or vision (or the inverse-vision problem which is graphics) is naturally mathematical or at least a mix of mathematics and common-sense symbolic processing.
> The only place I can think of that does involve some hard math, is in 3d engines for games,
Heh, actually 3D graphics is hardly hard math. Most of it is high-school calculus (linear algebra, polynomials, etc) which is simple once you spend enough time studying it. And most of 3D math is fairly easy to visualize. The truly hard math areas are those are truly abstract in the sense that they are hard to visualize. There is no easy visual analogy for the concepts involved. For example, try visualizing the formal definition of an abstract topological space or worse, an abstract manifold, hehe.
This is just pitiful. Maybe you should have made an effort to pay attention in class even without this book as a crutch! And maybe you could have still gotten a higher grade than C even if you didn't pay attention in class by taking the time to study on your own! Man, I hate when people claim that the reason they failed at something is due to outside circumstances. Dude, you got a C because you didn't try hard enough. Don't give me this "I have always been more of an abstract thinker and The Evil System just isn't set up to teach misunderstood geniuses like me mathematics" crap.
"It did no good, he said, to just start plowing through the theorems because that brought confusion. The key was to skim the book five or six times to get an idea of what the writer was trying to do."
I agree with this advice. However, it wouldn't be this way if math writers were good writers. I have never seen a math book in which the author did all that could be done to make the subject clear. Maybe subconsciously they don't really want you to know what they know. Mathemeticians did not get into the field because they like people.
I'd recommend taking some discreet math or logic courses and a junior college. It will ease you into more complex math and most likely allow you to avoid calculus, which tends to turn off people who aren't "into math".
As a Math PhD student,my opinion is that math is in fact very easy. It all follows from simple logical thinking.
However, most books try to impress with lots of formulae without explaining the basic math behind them. They focus on being able to do the calculations, but not on actually understanding what is going on.
I would compare that to writing programming code without adding any comments. When following the code you'll see you get the right result, but if you have to find out how it exactly works, it takes a LOT of work, because you don't have the whole picture.
If you really want to understand math, don't take a book on complex numbers, but take something even simpler than that, then try to really understand what is going on.
Should you be comfortable with math? Absolutely! You should know Calc, and should be very much aware of exponents and iteration (another poster's comments about O(n) and O(n^2) are dead on). Linear algebra work well too. But mostly because it helps you write algorithms that require thought, not because you have to know how to perform a Fast Fourier Transform. And if you're getting a degree in CS, that's the type of work you'll do. Getting that degree helps ensure you don't get tapped to write scripts all day long, no?