It looks like you're using an Ad Blocker.
Please white-list or disable AboveTopSecret.com in your ad-blocking tool.
Some features of ATS will be disabled while you continue to use an ad-blocker.
originally posted by: pl3bscheese
a reply to: noonebutme
Agreed the multiplication tables are drilled in my head, more so because I constantly encounter situations where basic calculations are required. People around me guess or waste time with their smartphones, I know the answer instantly.
Programming is very similar to mathematics. It's simple logic is all. Didn't get what the OP was talking about. For instance when he talks about syntax meaning different things in different fields of mathematics, the exact same thing happens when you switch programming languages. Maybe he sticks with languages coming from similar roots, like someone who knows Latin based languages.
originally posted by: ChaoticOrder
Now I'm a programmer and I've done things like create a crude 3D graphics engine from scratch, which involves a lot of math. I still cannot remember most of the multiplication table though. The reason I can do stuff like that is because I have access to a thing called the internet, and when I need to know something I don't know, I can just look it up and find all the information I need. I'm not going to remember every physics equation in my head when I have almost instant access to it whenever I need it, especially since I will most likely never need to use 90% of those equations in practice. I also have a thing called a computer which can perform calculations billions of times faster than I can do them in my head. The most important thing is that I can understand new concepts and convert those ideas into algorithms, that's where real intelligence is required.
The result is that the complex behavior, or what we thought was complex behavior, will often naturally emerge just from those simple rules. The flock of birds will start doing very complicated things as a group, even though the rules dictating the behavior of each bird are not that complicated. It is easy to conceptualize such behavior when you think of it like that, and it's easy to implement those models in computer code without needing to be good at math. This is the core reason you'll often hear many programmers who say it doesn't really matter whether you're good at math or not. Of course it helps to have a wide knowledge of different mathematical concepts so you can create innovative and efficient solutions to problems, which is what math education really needs to focus on.
In conclusion, I think the way we teach math today is quite obsolete and hasn't advanced much since we started teaching it in schools. We need to place more focus on understanding the concepts involved rather than being able to remember a bunch of useless numbers or equations which take up precious space in our head. Children are not drones who can just have endless streams of data shoved down their throats and be expected to regurgitate any little factoid on demand. They will enjoy the learning experience a lot more and get more out of it if they weren't taught in such a bland and unimaginative fashion. I understand it wouldn't be the best approach for all children but I feel like there are many kids like me who have hidden potential but they are repelled by the way math is presented to them.
originally posted by: ChaoticOrder
a reply to: pl3bscheese
There is just far too much uncertainty for my liking, I would prefer the language of math to be much more universal and clear cut. It's also just hard trying to pack complicated ideas into small equations, the notation gets very messy and I just cannot bring myself to try and understand such gibberish. I find it exceptionally easier to read a computer algorithm which is stating the exact same thing as the equation.
Programming is full of using different words to express the same outcome, just as math is. I brought this example up in another thread recently and I feel like being lazy so I'll reuse it. If A currently equals 35 and I want it to equal 0 there's many ways I can write it.
A = 0
A -= A
A xor A
A *= 0
A -= 35
Programming and math are both logical but logic is nothing more than a sequence of steps taken to arrive at a conclusion, there isn't only one correct logical path to a result.
originally posted by: ChaoticOrderAs long as I understand the concepts involved, I can write algorithms which implement those concepts, then let the computer do the hard calculations for me.
If you're relying on the computer to do the math for you, you have no way of error checking it to compare the results of it's calculations to the expected value in order to make sure your algorithm is correct.
originally posted by: ChaoticOrderBut I don't really think it would be quicker to solve problems like that in your head compared to just using a calculator, especially when you start having more than 2 digits. In fact I cannot afford to waste mental energy on such calculations, I have much more interesting and high level problems to think about.
Then you would be wrong, it's extremely quick to do math this way and not just with small numbers. Hundreds, thousands, millions, billions, trillions, even more it's all the same.
you're not able to visualize the equation and manipulate variables in real time - computer software is.
there's a line between thinking like a programmer and thinking like a mathematician, which you're drawing as far from yourself as possible, and that's a bad thing. you can mimic the equations, you can even calculate the same thing those equations represent, but without deep mathematical understanding of some problems, you will never be able to come up with solutions that won't seem obvious from your purely-programming-driven point of view.
you will never make a leap similar to discrete fourier transform - fast fourier transform with such attitude towards math, and without FFT and similar things, we wouldn't have any decent audio or video compression these days, at all. do you think FFT was invented by programmers? far from it, we didn't have any computers back then.
The Fourier Transform is one of deepest insights ever made. Unfortunately, the meaning is buried within dense equations:
[equations removed to reduce snippet size]
Yikes. Rather than jumping into the symbols, let's experience the key idea firsthand. Here's a plain-English metaphor:
* What does the Fourier Transform do? Given a smoothie, it finds the recipe.
* How? Run the smoothie through filters to extract each ingredient.
* Why? Recipes are easier to analyze, compare, and modify than the smoothie itself.
* How do we get the smoothie back? Blend the ingredients.
Here's the "math English" version of the above:
* The Fourier Transform takes a time-based pattern, measures every possible cycle, and returns the overall "cycle recipe" (the strength, offset, & rotation speed for every cycle that was found).
Time for the equations? No! Let's get our hands dirty and experience how any pattern can be built with cycles, with live simulations.
If all goes well, we'll have an aha! moment and intuitively realize why the Fourier Transform is possible. We'll save the detailed math analysis for the follow-up.
This isn't a force-march through the equations, it's the casual stroll I wish I had. Onward!
An Interactive Guide To The Fourier Transform
The computer is simply drawing the graph, it wouldn't make a difference whether you used a computer or you used a paper and a pencil to plot the graph on some paper, it would give the same visualization.
In order to create an algorithm which does the exact same thing as the equation I obviously do need to have a deep understanding of what the equation represents, but I don't need to be able to read the equation to gain that understanding.
If I was just starting to learn about Fourier transformations this is where I would start:
Also when it comes to compression, the technique used by the most powerful compression software today is a method called arithmetic coding.
i guess after reading this thread everyone already got your true point. you just hate equations
i'm sorry, i was convinced that being a programmer implies an IQ that doesn't require 'for kindergarden'-level tutorials on such topics as FFT. no wonder the average software quality today is going downhill.
of course, one can use arithmetic coding for lossless compression of any data, but on its own it won't beat datatype-specific codecs - every datatype-specific codec, including lossless ones, is heavily optimized toward that specific datatype, and again - arithmetic coding becomes just the tip of the iceberg.
Maybe if I had the necessary education I would be better at it but I think it has more to do with how my brain works, it just doesn't like the ambiguity that comes with complicated equations, it much prefers the clear syntax of (most) programming languages.
And the fact is, in real life, many systems are simply too complicated and messy to be mapped to an equation and so we must absolutely have other ways to visualize how those systems function.
Not everyone has a brain which works like a mathematician and I don't know why you cannot grasp that fact.
Also, just because something is explained in simple terms doesn't necessarily mean it has been dumbed down.
Einstein once said "If you can't explain it simply, you don't understand it well enough".
I don't want to have a "who can sound smarter" competition with you, but this statement is not exactly true.
Arithmetic coding is a universal "plug-and-play" type of procedure which can be applied to any type of data very effectively. If you want to focus on compressing a specific data type then the prediction models need to be optimized for specific data types, but the arithmetic encoder will always be used the same way to encode those predictions. The level of lossless compression will be proportional to how well the prediction models can predict upcoming symbols. Arithmetic coding directly translates prediction power into compression strength, so if your model can predict audio or video data very well it will compress that type of data very well.
But I'm sure you're going to say it's a terrible video because they explain it in simple English without using a single equation and dumb it down with too many charts and animations.
I never said I couldn't understand the explanation on the Wikipedia page, I said there are easier places to start which give better visualizations. Like I said, what I often have trouble understanding is the complicated equations. I can work out most equations if I really try but I find it's usually much easier to understand the concept through text and charts first, and I don't know why that approach to learning upsets you so much.
i cannot grasp though how a - pretty simple actually - explanation on wikipedia page about FFT cannot be understood by someone claiming to be a decent programmer.
you can of course define some pretty basic model based on simple data analysis, but it'll loose to any datatype-specific models.
but - to be back on the main topic of this thread - not everyone needs the math to be dumbed down, and education was never about the lowest common denominator - why should it be now? isn't there enough of dumbing down in schools already?
those few kids that have the potential to be scientists/researchers/whatever in the future, are already getting bored beyond belief, and you want to treat them like they're retarded just because few other kids that can't follow basic math, truly are?
garbage in - garbage out. if we'll treat them all like idiots, they will become ones.
For the nth time, no where am I saying we should teach all kids this way, I'm saying we should try harder to teach mathematics in a more intuitive way for those who don't work well with the traditional methods.
Your attitude seems to be they shouldn't be creating software in the first place if they cannot create the most perfect analytical solution possible, which is ridiculous.
I have created ray tracers, many different forms of cryptocurrency software, even a genetic algorithm based on evolving neural networks, and I was able to understand and implement all those things without being great at math.
If you can understand the idea of survival of the fittest
Many kids may not realize they can solve these sorts of problems without being good at math and so they don't even try because they were always told they were too stupid.
for me "my kid isn't retarded, he just doesn't work well with the traditional methods" usually (not always, but usually) is equal to "my kid isn't rude, he's just having ADHD". there's no such thing as ADHD in my opinion, there are just retarded parents, and it's the same exact thing with education - sadly, the retardedness of such parents spreads to their children.
it all just smells to me of "lets not force our poor kids to think" attitude, so popular these days. the result - neverending flow of extreme stupidity amongst the youth, can be seen every day, and it's something that makes me want to vomit in disgust.
it's not ridiculous, advanced software development is - or at least should be - all about finding the most perfect solution, and finding such solution requires much higher level of intelligence than that required to understand more or less basic math without the need to dumb it down. half-assed software is no software at all, it's crap.
not everyone has the same IQ, trying to ignore that is just pointless.
Lol... I don't even know where you're trying to go with this, it seems you are implying my parents are some how retarded because I was never great at math, even though you've never met them.
Maybe if people like you weren't so willing to easily overlook the hidden potential of retarded kids with retarded parents than you could see what they are capable of if given the right resources, and then we wouldn't have so many kids who hate the education system, and more kids applying their energy to the things they are good at.
These are all topics where visualization and conceptualization are all more important than knowing complicated mathematical equations.
Not everyone is good at the same things, you can't just boil down human intelligence to a single "IQ" score, and trying to ignore that is just pointless.
it wasn't meant to be personal in any way. you've perceived it as such - not my fault. ask yourself why.
because these are all programming topics that don't have that much to do with the math. what does it have to do with the topic at hand then?
are you trying to say "lets turn all those kids that aren't smart enough even for basic math, into programmers"? are you insane?
Ask myself why? There you go again implying things you claim not to be implying.
You brought up the topic of code efficiency, I pointed out how it is more important to know many useful algorithms and data structures for creating efficient code than it is to be good at math, so your argument isn't that solid.
I never said the problem was basic math, I said the problem was understanding more advanced math.
I'm saying lets not overlook the potential some kids have just because they aren't mathematically gifted. I'm saying the education system needs to be more personalized for individual students instead of assuming they can all learn the exact same way and if they don't succeed it's just because they are stupid.
yeah, right. "this kid isn't mathematically gifted, lets give him some programming lessons instead, so he can fail at more than one thing". how about letting those kids do something entirely else than math and programming?
but that is certainly not always the case