“I’ve been working for the past 15 months on repairing my rusty math skills, ever since I read a biography of Johnny von Neumann. I’ve read a huge stack of math books, and I have an even bigger stack of unread math books. And it’s starting to come together. Let me tell you about it,” writes programmer Steve Yegge.
You got any Math for Dummies books ?
I liked the article for the most part. I would add the need for set theory and graphs in the list of essential things to be taught — all from discrete mathematics. What he is saying is that CS students shold learn proofs, so as to understand where the ideas came from, and so that they can prove new theorems of their own.
What the point-and-click generation (weaned on the short-attention-span-needed MTV shows) fail to recognize is that many of the modern software wonders, for example Google’s Search Engine, are built on solid theoretical principles. Likewise, the theoreticians need to incorporate into their thinking is that improvements in cache and memory size, and high clock speed have contributed greatly to our experience of what is acceptable.
One last thought: kids in India and China learn much of our college math while still in high school. What they don’t learn is how to apply it!
That’s actually not true.
High school students in China actually learn “less” (if only you have seen the thin math textbooks used in China)! They don’t learn anything about calculus, or limits etc. Chinese schools do put a heavier focus on Euclidean Geometry, but they teach the same basic concepts.
However, application *is* very important and you probably won’t be able to solve many of the problems on the standardized exam even though they are based on very basic concepts.
Edited 2006-03-18 01:25
Correct. Calculus and limits were optional in my school, we could take those courses besides the regular classes, and most “good” students did take.
What happens in the last year of senior high school is everyone is caught up in preparing the entrance examination for colleage, and do the same excersises again and again, instead of learning new stuff.
I agree with the author on the need for discrete math.
At least in my research area in grad school (networks), pretty much everything is discrete.
Well, from a computer science standpoint, all operations in a computer are discrete too. Floating point math is in radix form – just ones and zeros. Continuous functions with respect to a computer is just nth order approximations such that the answer is within some minimum error bound.
So discrete math is probably the most useful thing for CS students with regards to programming well.
P.S. At least for China, as someone has mentioned, do teach US/Canada college level math in high school, it’s leans towards the Calculus side of things than probability and discrete math.
It used to be that way (they used to teach calculus), but the cirriculum has been slimmed down for many years…
For honours maths in Irish high-schools, you do algebra, proof by induction geometry, trignometry, limits, differential and integral calculus, basic probability and statisctics (including permutations and combinations) an introduction to matrices, logarithms, and touch briefly on sequences and series. I’d imagine the same is true of the UK (possibly even harder). What’s more, the examination paper isn’t multiple choice, and often you get as many marks for the techniques as for the answer.
Of course, most people forget all that almost instantly. In college we did calculus again (though this time doing differential equations), discete maths, and some more probability and stats, including the use of things like the Poisson distribution (very useful in writing schedulers).
Any computer scientist should do discrete maths. The field covers:
Algebra and Induction Proofs: Essential for checking the veracity of algorithms
Sets and Relations: A fundamental part of AI, among other things
Functions: Seems obvious, but things like the composition of functions, and how to reason about it, is useful when dealing with functional languages in particular, and languages in general (especially when trying to prove that an algorithm works)
Graphs: Or how to reason about all those trees and graphs you hear about in your data-structures class. In fact, graphs are really important, seeing as you can use them to reason about so many things (e.g. Huffman encoding)
The course didn’t deal with matrices, but our Discrete Maths book had an appendix on how to use them: if you want to do any graphics work, matrices, geometry and trigonometry are obviously essential.
Of course, the difference is whether or not you want to be a computer scientist or a software engineer. The latter profession doesn’t need much maths, as it largely involves using pre-built components to construct larger programs. One could argue the need for algebra and induction proofs to ensure correctness, but that’s it. If you want to be a computer scientist however, you’ll be looking into ways to create those components, and that will require a lot of maths (though you can generaly pick and choose depending on your field).
Edited 2006-03-18 14:14
I would rather keeping learning the correct math instead of trying to memorize math formulas that will never come useful maybe only when it comes to science, so those money hungry bankers will not try to take advantage when using credit or applying for a loan.
What matters is understanding concepts and learning to apply them when needed (problem solving). This does not just pertain to Mathematics, but to any field of knowledge. I spent much of my youth memorizing and cramming mathematical formulas. Give me any equation and I’ll solve it. But the moment the problem became worded and involved application of fundamental concepts, I became clueless. It took a while to get over the cramming mentality. Where I grew up there was way to much pressure to pass at all cost that people hardly took the time to understand anything. We just crammed! In the US, I found it odd to see parents making excuses for their kids with regards to Math. “Oh, John is just not good at Math, he is more art inclined.” I had no such luxury as a kid. I had to be good at Math or else…
You do not require significant mathematical training to be a programmer. A large part of the act of programming is an intuitive subset of basic logic, and the process of programming has been intentionally made approachable by the human animal. As long as you are able to express the solution of your problem in computable steps you can be a programmer. What a lack of education in mathematics does is to constrain what you can instruct a computer to do, and limit the efficiency of the implementations. If at no point in your career do you intend to do something more interesting than generate reports, create an interface to business-related information stored in a database, or generate webpages, you can (and many do) get away without even the expected CS graduate’s understanding of discrete mathematics, and all of that geometry and calculus that is made out to be less important in the portion of the blog entry I bothered to read can go right out of the door. If you don’t use much mathematics in your work, then you clearly don’t require it for what you do. Further if you have never learned much in terms of mathematics, you will never work on those tasks where you need to, because you aren’t qualified for that sort of work. No amount of Wikipedia queries are going to fill in those gaps; your solutions will be as half-assed as your ad-hoc education.
The basic discrete mathematics that one learns in the very beginning of the CS curriculum isn’t the end-all of useful mathematical education. The calculus, linear algebra, abstract algebra, logic, continuous probability, and numerical analysis that you normally would take along those CS classes are there for all of the applications of CS you could be doing. If you want to work on crypto, computer visualization, physical simulation, verification, something nontrivial in finance, or any number of those elective subjects that involve more than graph traversal in your course catalog you’re going to take an interest in other areas.
But I’m somewhat biased by being a grad student, I imagine. I have to see incoming freshman without any exposure to rigorous mathematics coupled with half-assed laziness and delusional levels of self-importance, which seems to me the real problem with U.S. High Schools. Not that they study trigonometry, geometry, and calculus. When this attitude and inexperience are paired together, the students typically have no idea what they’ve learned after they’ve taken the class and don’t really care. They don’t need that stuff to generate webpages, so what do they care anyway?
<it>What a lack of education in mathematics does is to constrain what you can instruct a computer to do, and limit the efficiency of the implementations.
…..
But I’m somewhat biased by being a grad student, I imagine. I have to see incoming freshman without any exposure to rigorous mathematics coupled with half-assed laziness and delusional levels of self-importance, which seems to me the real problem with U.S. High Schools. Not that they study trigonometry, geometry, and calculus. When this attitude and inexperience are paired together, the students typically have no idea what they’ve learned after they’ve taken the class and don’t really care. They don’t need that stuff to generate webpages, so what do they care anyway?
<it>
Have to agree with all of the above. I hate to sound dogmatic, but I am a CS Prof, and I have seen it all.
Yet, of my 4 best recent students, one was Czech educated in a US public school, the second an American woman who went to a good public school, the third was from India and educated in Nigeria, and the 4th was an American educated at a very low-quality high school. All have finished or are near the end of their PhDs, and all have the internal thinking mechanisms that surmounted any barriers (English language in some cases, math in the US cases) in their training. Still, for the ordinary CS student, I would agree that discrete math is a must, and calculus is good for the mind-expanding realization that you can see two problems that are similar but very different and you cannot always solve them on the first try with the same method.
I would not give up on the US educational system. Here the emphasis is on learning the concepts and applying them. This is why the major scientific and industrial breakthroughs occur in the US and other Western nations, and not in the places where there is rigorous high school math training in a style that inadvertently puts a straitjacket on the student’s creative side. How else would the US have produced Mark Andreeson, Shawn Fanning, and Steve Jobs, Ted Hoff, or the development of Vinod Dham?
Rigorous mathematics does not impede creativity. An absence of exposure in High School simply makes the transition to real mathematics more difficult for students when they take classes at a university, which in turn discourages learning because they’re lazy and full of themselves. The rote education that many schools rely on translates into people that don’t know how to use what they have learned because they’ve been trained to solve specific exercises they can recognize on tests instead of made to understand (which makes tutoring some people a sad experience, because you can almost see them dropping their major and moving into psychology in your mind). This ends up worse for people that don’t go on to engineering or science disciplines because it’s never corrected, while the rest have gateway classes (discrete math, linear algebra, calc 2) to clean up poor habits.
The true straight jacket for much of the rest of the world is access to capital, which incidentally is the straight jacket for various people in the U.S. as well. That will not be nearly as true forever, and thinking that ignorance is strength will leave the U.S. with a serious case of “used to” syndrome.
He mentions a book by Kleene and clicking on it jumps to Amazon which suggests another book by Haskell Curry which is something I will probably browse if I find it. Anyone heard of the Haskell language. I started looking at that and once the operators were explained, that made alot of sense too ie quicksort in 3 lines instead of 30 lines of C code.
Looks like a pretty good article so far. In my long career in ASIC design and CAD software I had to come to terms with math I never would have dreamed, FFTs easy stuff, but that leads to DCTs, Wavelets, also did error correction which leads to a whole field of its own in coding theory, galois fields etc.
One of these days I really must master CSP & Lambda calculas, it seems to be the basis of correct concurrent programming although as a hardware guy, parallel is already pretty obvious. He is spot on about notation, the single best way to keep something that might be straight forward, a complete secret from the curious.
Now if only I’d had the wiki when I was in school
BTW Europeans may do some stuff in high school that US students do in college, but US is usually a 4yr program starting 1 yr ealier than the 3yr programs we did. Although we did do calculas in mid high school too, don’t know if they still do that (UK).
> He mentions a book by Kleene and clicking on it jumps
> to Amazon which suggests another book by Haskell Curry
> which is something I will probably browse if I find it.
> Anyone heard of the Haskell language. I started looking
> at that and once the operators were explained, that
> made alot of sense too ie quicksort in 3 lines instead
> of 30 lines of C code.
Was it also as obvious that the 3 lines of Haskell code have a O(n*log(n)) space complexity as opposed to the O(n) of the 30 lines of C code? This can make a big difference once your data sets get large.
are you just pulling that out of your rear or is that a fact?
Was about to say you were wrong, then realised you were right. In terms of space complexity the Haskell version is a lot worse than the classic C version (which can be used in any imperative language). This article discusses the pros and cons of Haskell using Quicksort as an example: http://www.haskell.org/haskellwiki/Introduction
Personally I found Haskell to be a very accessible functional programming language. I learned it from the book “Haskell: The Craft of Functional Programming” which did a lot of additional work into algorithm correctness and proof by induction (something which is easy in Haskell). However that book never got into typically applied programs: the impressions I got was that it was best for prototyping important algorithms. That said, the Darcs project is an impressive version control system built on Haskell (http://lambda-the-ultimate.org/node/391)
Edited 2006-03-18 18:30
Limits are so useful it’s insane. We all use limits even when we don’t realise it. Any kind of approximation, table lookup, calculating PI, Newton’s method, fractals, whatever… it’s all limits. Understand limits and a LOT of things should fall into place.
I think a more important point is to really understand the basics. And it doesn’t matter what field.
Pi is easily calculated using an infinite series that translates into just a few lines of code. Last summer I taought at computer camp and we used it to teach some of the campers about loops.
Pi is easily calculated using an infinite series that translates into just a few lines of code.
A series is just a sequence of partial sums and the limit of this sequence would be PI in this case.
Still a limit.
Wow really! I never said it wasn’t I was just giving an example.
Hi,
first, if you look for math books, you can find many on P2P networks, especially *mule/kademlia. If you have moral concerns with that, think that mathematicians (I’m one) almost always borrow from libraries and almost never buy books, and think of P2P as a big library. If I had to buy all I read, it would cost me $1000 a month. Also note that certain authors give their book for free as PDF on their website.
second, here are a few domains that the author of the article didn’t mention, and that are good food for thought for a programmer :
1) group theory
Groups are one of the most ubiquitous math object, second only to numbers. Roughly, a group is a set of symmetries of an object. These symmetries can be composed with one another, and this gives rise to a very interesting structure. Finite and discrete groups occur often in computing.
2) general topology
This is a wide generalization of the notions of limit and continuity. This can be applied even to finite sets.
3) noncommutative geometry
This is a new theory encompassing both topology and group theory (as well as many other things). See Alain Connes’ (freely downloadable as PDF) book “noncommutative geometry”. The idea is to apply to mathematics the ideas of quantum physics. Thus Noncommutative math is to classical math what quantum physics is to classical physics. The good surprise (for programmers and other people interested in discrete math) is that this gives very interesting results already in the case of finite and discrete objects.
4) Categories and functors
An abstract formalism which, among other things, is used to give a precise meaning to the words “canonical” and “natural”.
5) Cohomology theories
To many objects are associated so-called Cohomology groups, which are kind of a “shadow” of this object giving very useful information about it. Again, this is useful even for discrete and finite objects, e.g. for finite groups.
6) Differential, Riemannian and algebraic geometry
Why should a programmer worry at all about non-discrete stuff ? Because it turns out that many discrete objects can be studied using tools from differential geometry. Notions such as “tangent”, “differential form”, “integral” can be applied to certain discrete objects, although this is nontrivial to see. For example, consider the set F which consists of two elements : TRUE and FALSE. On F, consider XOR as the addition law and AND as the multiplication law. Then F, endowed with these addition and multiplication laws, behaves a lot like usual sets of numbers (like the set R of real numbers). In particular, on F, you can consider curves defined by equations – like :
x^3+y^5+xy+1=0.
(Here, I have noted 1 for TRUE and 0 for FALSE).
Although F is discrete, such a curve can be studied using notions from differential geometry, like “tangent at a point”, “differential”, “genus” (= number of handles, 0 for a sphere, 1 for a torus,…), “cohomology groups”. This is algebraic geometry.
Riemannian geometry for finite objects also exists in the form of “spectral triples”, cf. Connes’ book cited above.
Yes, homological algebra and noncommutative geometry is _so_ useful for CS students, who often doesn’t even know calculus. Why start with integrals when you can start with learning k-forms as sections of the cotangent bundle, or why not start with the Cech cohomology of sheaves on schemes?
Seriously though, if the article author want to have some real understanding of the topics he’s talking about, he should learn “real analysis” and linear algebra as the study of linear transformations of vector spaces. Now it is easy for him, not because he’s a programmer, but because the books he’s using take 200 pages to explain even the simplest topic…
Don’t take this too serious because I have attended exactly one European (German) and one American (Midwest) highschool.
I took one math class as a senior during my exchange year in the US. It was trigonometry and one got extra credit for taking it so I suppose it was concidered advanced.
I never really bothered to check out how the whole extra credit works but somehow I got above 4.0 so I guess you just get an extra point or something like that (as a sidenote: the whole 4.0 is best concept is kind of hard to explain in German job interviews because 1.0 is actually the best grade over here).
To sum it up:
Very easy, as a result students usually don’t actually learn a lot (typical learn for test->forget mode of thinking).
Tests were structured like the assignments wich were basically just “use algorithm x to solve problem x (because that’s how we’ve always done it)”.
Talking to friends revealed taht all math classes at that school were like that.
During 12th and 13th grade in Germany our math class was very advanced in contrast to that. However I had elected math to be what is known as a Leistungskurs(LK). Without going into to much detail about the German school system, you take 2 classes as your LK (math and englisch in my case) wich are advanced compared to the regular courses (aka. Grundkurs(GK)). Since I helped some friends to prepare for their Mathe-GK final exams I know what they had to learn and I think it is still very advanced if compared to my US math class.
The main difference is that there’s more assignments/tests involving actual problem solving. Typical questions would be:
“You have learned concept x and concept y, how would you solve problem z by combining those concepts”
“You have learned proof x and proof y, proof that z is true. Using the proof for z solve task a”.
“$long_text + solve me (figure out wich concepts apply)”
Well kind of hard to actually express the difference.
Talking to friends in the US I have come to the conclusion that the math required for a BA is about equal to the math at my German High School.
Edited 2006-03-18 13:34
Trigonometry is a standard part of the U.S. curriculum and either follows a class teaching Euclidean geometry or is taught in a package of classess teaching geometry, trigonometry, and algebra. It isn’t considered advanced, and is basically a requirement for any student that intends to attend a university. Despite the expectation that students will take trigonometry, they are not necessarily expected to understand the subject very thoroughly unless they intend to study one of the sciences or engineering. Many schools do seem to teach math by rote in hopes that the patterns being reinforced will remain and find use in solving problems in other classes. The quality of instruction and the expectations of the students varies considerably between schools, though. The multiple choice standardized tests used for considering admissions and placement don’t encourage thoroughness. I don’t know why you would receive “extra credit” for taking trigonometry, though. Perhaps there was some pity grading for being an exchange student.
Yes, i didn’t quite understand why they gave extra credit for that class either. However it wasn’t just me, everyone got extra credit. The level of skill required for other math classes at that school was the same, so trig is just an example. The point I was trying to make was actually another one though. After rereading my first post, I have to agree that it is rather confusing
US math:
Drilled to become a calculate step by step the way we learned it robot
-> related to programming: you learn to be the programm
European math:
Focused more on understanding what you do, finding solutions to problems wich haven’t been talked about before in class but using the tools you learned in class (and sometimes building new tools on the fly).
-> related to programming: you learn to create the programm
However once again, I’d like to point out that it is only 2 schools and in no way representative of the level of education in the US and in Europe.
However once again, I’d like to point out that it is only 2 schools and in no way representative of the level of education in the US and in Europe.
The US educational system varies widely and is controlled at the local level, whereas the systems in most other countries are more centralized.
However, Trigonometry is not required for the standard high school diploma in most places. Algebra II (which contains basic linear algebra and continuous functions) would suffice. For the advanced high school diploma, one needs Trigonometry.
I think this is all about our objective on programming.If we are thinking in develop some network protocol or driver,yes!, we need that knowledge and some complexity.
But in the other side,if we are develop a php or gtk project, no!, we don´t need that so much, because there are frameworks that hidden this complexity from us, in flavour of usability.We can “abstract” to focus on usability.
2nd year Computer Science student in Belgium, and so far we’ve learned Discrete Mathematics (12 week system), Mathematical Logic (24), Linear Algebra and Geometry (12), Mathetmatic Analysis (24) and Probabilistics and Statistics (12). I can hardly believe that there are CS programs without these math courses, I think of them as the absolute basics as a CS student. Apparently I can even go and teach math in highschool when I’m finished
Our requirements are:
2nd Semester Calculus + Linear Algebra or Vector Calculus.
Discrete Math.
Computing Theory (applied discrete math).
Algorithms Analysis (more applied math).
And there are a few statistics courses to select from which I haven’t taken yet.
Trigonometry burned me out on math in high school. I’d just gotten sick of the drudge (homework everynight, always boring, repetitive, easy) and I quit putting in effort. And then I was largely lost in Calculus in college since my professor couldn’t speak english… Well, I’m sure he could write it well, but he couldn’t enunciate it.
One great thing that soon falls by the wayside is notation. Mathematical notation is the biggest turn-off to outsiders. Even if you’re familiar with summations, integrals, polynomials, exponents, etc., if you see a thick nest of them your inclination is probably to skip right over that sucker as one atomic operation.
Nail right on the head.
My interest is in AI, but when I see formulas for fourier transformations related to transferring signals across nodes/neurons, my brain automatically skips ahead..to the detriment of my understanding of the material.
Those interested in programming paradigms and math should check out the J Programming Language btw. It’s an interpreted language that excels in ‘doing math’. Derived from APL, it’s terse, forces you to learn to handle abstract notation, and is so flexible it supports nearly all of the programming paradigms (most notably functional programming). On the mailinglists they frequently discuss how J compares to Mathematica.
Nail right on the head.
My interest is in AI, but when I see formulas for fourier transformations related to transferring signals across nodes/neurons, my brain automatically skips ahead..to the detriment of my understanding of the material.
Not necessarily. Good mathematicians make an effort to simplify the notation, and make it readable. My PhD advisor spent a lot of time on this with me, and scolded me if he felt I wasn’t making sufficient effort to communicate my results clearly and precisely, with a minimum of notational garbage.
One of the problems with mathematical writing is similar to one of my biggest dissatisfactions with certain programming languages: a reliance on too-short, unclear mnemonics (e.g. **(p++)) and one-letter variable or function names.
On the other hand, no amount of effort on the part of the author will help a lazy reader. 🙂
College: Differential and Integral Calculus,Differential Equations, Linear Algebra, Probability and Statistics, Discrete Math
We learn that in high school in Morocco. As a student, I noticed that european mathematical school programs are too much simplified. And students from the maghreb and studying abroad easily overtake their european peers. But in physics, europeans are much better since we don’t do enough experiences in physics, and we generally think mathematically to solve physics.
We learn that in high school in Morocco. As a student, I noticed that european mathematical school programs are too much simplified. And students from the maghreb and studying abroad easily overtake their european peers. But in physics, europeans are much better since we don’t do enough experiences in physics, and we generally think mathematically to solve physics
“Europe” is not a country, just like there isn’t one single education in “Africa”.
And just because your subjects are called the same in HS doesn’t mean that they are equivalent to the university level programs in Europe, they aren’t. We also learn all the mentioned topics in HS, but they are studied in a LOT more depth at the university level. Just because you take a course called Differential Equations in HS doesn’t mean that you will learn about solutions using complex analysis, fourier analysis or distribution theory (distributions as in a closed subspace of the dual of the space of test functions, equipped with a certain vector topology).
Well, I just had to comment on this as I’m doing some education courses and have been teaching in schools.
Now, I know as the author does that long division may be ‘useless’. But removing that ‘tedium’ by giving kids calculators hasn’t helped anything, I’ll tell you that. They have no more applicable knowledge. They can’t solve problems any better. They can’t estimate any better. In fact, the only difference I’ve seen with the increased use in calculators is a grade 8 student answers 6×3 with 14. Oh, they’re trying all sorts of ways to teach kids math: manipulatives, overviews, computer programs… and yet the kids with the most insight still tend to be the old school kids who CAN do math by hand.
Perhaps there is something to doing math by hand that gives you insight into numbers. Now don’t get me wrong, you won’t catch me doing complex problems by hand anymore: mathcad, excel, matlab all the way , but somehow I think doing math by hand gives a certain insight into numbers that kids aren’t getting today. Maybe they just need to be taught the calculator better?
Humans are animals. We touch things. Doing basic math by hand is better for the same reason it is more njoyable to read from a piece of paper: it’s physically there. All of it. Our full analytical and creative attention can be focused on something physical.
I did get to use calculators in math…and have begun to re-teach myself old basics, and have even learned some very simple things on my own that I didn’t get before*. Calculators have a place, but it is not to replace the ability of the human mind.
* when you wonder why our maths suck, take this: I’m 22. It was only last year, during Calculus, that I figured out the relationship between a remainder, a fractional component, and decimal approximation (and parents wonder their kids have trouble learning fractions…). There is now no depth to which I will not believe the U.S. school system as a whole needs help . It’s something as simple as the sound as one hand clapping; but with so much emphasis on rote (serial, analytical), narrow-minded training, rather than abstract, spatial (parallel, creative) thinking, it did not require attention until an abstract view was forced.
* when you wonder why our maths suck, take this: I’m 22. It was only last year, during Calculus, that I figured out the relationship between a remainder, a fractional component, and decimal approximation (and parents wonder their kids have trouble learning fractions…).
I’m certain that material was taught to you many, many times before, but for various reasons you never made the connection, perhaps because you never had to — and if a teacher had given you a problem where you had to, your parents would have raised a fit, or if not yours, then someone else’s parents would have, because their child didn’t have time after football practice to do math homework every day. (This happened to me when I was a high school math teacher.)
It isn’t just math, though. In pretty much any course in a US school, students are not required to do anything more than a very low level of thinking. One- or two-step problems are the extent of it.
In all fairness, many non-US schools separate students into different levels. I was talking with some German professors about this earlier in the week; they pointed out that their “high school” students are a small percentage of the total student population, because many students opt for vocational schools instead. US high schools have to accomodate the lowest common denominator in American culture, as well as our best and brightest.
“I’m certain that material was taught to you many, many times before, but for various reasons you never made the connection…”
That’s just it, though: that should be the core of it. Teaching more flexibly will mean some kids won’t be able to manage it. We should be able to accept that. Not every one is good at every thing.
“It isn’t just math, though. In pretty much any course in a US school, students are not required to do anything more than a very low level of thinking. One- or two-step problems are the extent of it.”
Pretty much. Then, we get meds because we’re bored .
“In all fairness, many non-US schools separate students into different levels.”
Where I went, while there wasn’t strictly vocational education, it was pretty close. Having gone from gifted down to whatever-nice-name-they-have-for-bottom-classes, I still don’t get why they can’t just say, “these kids are going to be thinkers, these kids are going to be managers, and these kids are going to work under the previous two,” and attempt at making all levels excel at what they are doing.
Anyway, enough hijacking…
I was looking at some old Maths text books the other day. Specifically Engineering Mathematics and Laplace Transforms both by K.A.Stroud.
I looked at them and wondered how on earth I had managed to understand it all when I was at College. IT was like a foreign language to me now.
Ok, I have a little excuse in that I last looked at them in 1975!
But the old adage is certainly true. “If you don’t use it, you loose it!”
I’m somewhat of a programming student, and one of my recent assignments included writing replacements for some of the functions in <math.h>.
I’d never done anything of the sort before, and I hadn’t even done any basic maths for absolute years. But actually programming how to calculate a sine/cosine/whatnot was enjoyable beyond words, and really made me understand the whole thing a lot better.