Personal Question
Re:Personal Question
The only complex math you need to know is boolean logic. In order to design and create your own microprocessor you need to know how logic gates work and you need to be familar with flip-flops, counters, s and r latches. Once you know how the basic logic gates work: and, or, xor, etc. and their boolean logic, designing it is easy.
I took a class in college on this and the only hard part was the boolean logic and the fact of trying to simply it so that instead of having to use 6 seperate chips, you only need 2 or 3 for your original design.
I took a class in college on this and the only hard part was the boolean logic and the fact of trying to simply it so that instead of having to use 6 seperate chips, you only need 2 or 3 for your original design.
Re:Personal Question
Actually, BeyondSociety, they were talking about a particular branch of mathematics called 'complex numbers', because they are represented by pairs of real numbers. A complex number is one with the form
x + yi
where i (or j in electronics engineering, where i is already used for change in current EDIT: not inductance as I originally wrote) is the imaginary root, -1[sup]?[/sup] (so called because it involves what appears to be a logical paradox: the square of a real number can never equal a negative value, thus the square root of -1 cannot be a real number). Complexes are a way of working with imaginary numbers without the paradoxes otherwise associated with them. Just as real numbers encompass all rational and irrational numbers, complex numbers encompass both real and imaginary numbers; when y=0, then the value of the number is the real value of x. Complexes are usually represented as a cartesian coordinate grid, with the values at y=0 being the real number line.
And no, I don't claim to 'understand' complexes in any deep way; I'm no mathematician (hell, I've tried to get a grip on the lambda calculus for years - for reasons of my own, mostly having to do with denotational semantics - and I still feel like I'm missing something). For that matter, I doubt that more than a handful of mathematicians really understand them, mostly those who have specialized in the area, or prodigies like Euler or Ramanujan or von Neuman who had a personal relationship with numbers on a level beyond mortal comprehension ???
The reason it was mentioned is because, 'imaginary' or not, complex numbers are very important in both analog electronics and in integrated circuit design, or so I understand. I personally never got further into digital electronics than a digital design course similar to the one you describe; but that was an intro course, with about the same relationship to the ones srg is talking about that an intro physics course has to one on relativistic QCD.
x + yi
where i (or j in electronics engineering, where i is already used for change in current EDIT: not inductance as I originally wrote) is the imaginary root, -1[sup]?[/sup] (so called because it involves what appears to be a logical paradox: the square of a real number can never equal a negative value, thus the square root of -1 cannot be a real number). Complexes are a way of working with imaginary numbers without the paradoxes otherwise associated with them. Just as real numbers encompass all rational and irrational numbers, complex numbers encompass both real and imaginary numbers; when y=0, then the value of the number is the real value of x. Complexes are usually represented as a cartesian coordinate grid, with the values at y=0 being the real number line.
And no, I don't claim to 'understand' complexes in any deep way; I'm no mathematician (hell, I've tried to get a grip on the lambda calculus for years - for reasons of my own, mostly having to do with denotational semantics - and I still feel like I'm missing something). For that matter, I doubt that more than a handful of mathematicians really understand them, mostly those who have specialized in the area, or prodigies like Euler or Ramanujan or von Neuman who had a personal relationship with numbers on a level beyond mortal comprehension ???
The reason it was mentioned is because, 'imaginary' or not, complex numbers are very important in both analog electronics and in integrated circuit design, or so I understand. I personally never got further into digital electronics than a digital design course similar to the one you describe; but that was an intro course, with about the same relationship to the ones srg is talking about that an intro physics course has to one on relativistic QCD.
Re:Personal Question
Understanding mathematics is pretty much like understanding programming: you can reason about counting apples or doing the same thing until something happens, but once you get futher than that, it's really just a symbolic notation for some set of abstractions and rules. Most of mathematics is just abstractions on top of abstractions, generalizations of those abstractions, and rules for reducing and deriving those.Schol-R-LEA wrote: And no, I don't claim to 'understand' complexes in any deep way; I'm no mathematician (hell, I've tried to get a grip on the lambda calculus for years - for reasons of my own, mostly having to do with denotational semantics - and I still feel like I'm missing something).
Basicly, I'd say that most of mathematics is basicly term-rewriting. Understanding mathematics is really just about understanding the rules, understanding how and when to apply them, and understanding how one thing leads to another. Pretty much the same thing for CS actually =)
Now, let me put a disclaimer here. I'm not a mathematician. I'm just a lowly university CS student. Still, with my limited knowledge over True Mathematics, I can't immediately think of any branch of mathematics that basicly wasn't a symbolic rewriting system. But it might be just me...
Now, the reason actually replied to this, was I wanted to note that I actually learn lambda-calculus first, and I am only studying formal semantics, including denotational semantics, now. Actually, there's nothing very hard about lambda-calculus if you think of it.. basicly, it's a term-rewriting system, with about 2 rules you really need and the rest you should be able to derive.
Schol-R-LEA probably nows this all too well, but I'll give a quick brief for those that don't. A lambda-abstraction, as it's called, defines an anonymous function. In mathematics it's usually written \x.e where \ is the lambda-character (which I can't type here, sorry), x is a variable, and e is the "body" of the function, basicly some term.
There are basicly two kinds of things you can do with lambda-functions. Common mathematical notation is to write e[y/x] to stand for "replace every x in e with y" although it's not part of formal lambda-calculus syntax. It's just useful.
Basicly, alpha-conversion is just another way of stating that variable names are insignificant, that is can freely rename
\x.x <=> \y.y which is useful in cases like
\x.\x.x <=> \y.\x.x
Beta reduction on the other hand is how you "evaluate" lambda-terms. Basicly, given an expression such as:
\y.\x.yx you can "apply" it like a function:
(\y.\x.yx)(\a.a+a) where + isn't really part of lambda-calculus.
You can evaluate such term by replacing every occurence of the formal parameter with the given parameter:
(\x.yx)[\a.a+a/y] => (\x.(\a.a+a)x)
we could then futher reduce:
=> \x.((a+a)[x/a]) => \x.x+x
finally we could apply this to (say) number 3:
(x+x)[3/x] => 3+3 => 6
It is left as an exercise to derive natural numbers and their addition from pure lambda calculus with only lambda-terms. As a hint, you can use the Y combinator \f.(\x.f(xx))(\y.f(yy))) for recursion. Note that there is no rules on the evaluation order in so called "pure" lambda-calculus. Whatever gives you a solution is permitted.
Most "normal" programming language use strict (or applicative-order) evaluation strategy where terms of an application (or function call if you will) are reduced before the application. For example, writing f(g(x)) in C first calls g with x, and then f with the result, while so called lazy (or normal-order) strategy (found forexample in Haskell) would simply call f with g(x) as it's parameter, and only find a value for g(x) if it is actually needed. The Y-combinator give above does not work with applicative-order reduction (although it is possible to write a version that does, which btw is left as an exercise -grin-)
"Pure" lambda-calculus has no types, since there is only lambda-abstractions and applications, but in some texts one sees notation like \x in R.x where "in" stands for the "belongs to set" symbol. This is just a way of saying that the function is defined for all x in R (that is, it's argument needs to be a real).
That's about it. Should be enough to at least let people read lambda-calculus without much trouble. Hope this was useful for someone, and ask for more if you are interested. Finally, sorry for posting so long OT article.
Re:Personal Question
lambda calculus reminds me vaguely of Predicate logic, which I only grasped after drawing some pictures about a conglomerate of differnet entities which share some attributes and others not - so you can use predicate logic expressions to filter them. ('there exists an x for all y so that is valid (x.colour == y.colour)')
It's the formal mathematic language, you can use to abbreviate quite lengthy sentences to a small and juicy formula - and who in programming world has never used expression logic and predicate logic? we do it all the day.
stay safe
It's the formal mathematic language, you can use to abbreviate quite lengthy sentences to a small and juicy formula - and who in programming world has never used expression logic and predicate logic? we do it all the day.
stay safe
Re:Personal Question
I'm 24, programming since I was 16 back in '96, using a computer since I was 11 back in '91. Interested in OS development since I was 19, back in '99. First computer was an Amstrad 8086 with 512K RAM, 5MB hard disk, and a floppy. HA!
Current machine is an Athlon XP 1600+ (1GHz), 512MB DDR RAM, 80GB + 40GB ATA Disks, CD-RW + DVD-ROM, 16MB Voodoo 3 AGP Video card, SoundBlaster Live! 5.1 PCI sound card, PCI RealTek + PCI Netgear FA-311 Fast Ethernet adapters, Netgear DM602 Ethernet and USB ADSL Router + Modem, 17" Sony Trinitron CRT Monitor. Have a SanDisk Cruzer Mini 256MB USB Flash Disk hanging around my neck on a shoelace. Also have an IBM Thinkpad iSeries notebook PC - Celeron 600MHz, 64MB RAM, 10GB Hard Disk, CD-ROM, external USB floppy, PCMCIA slot of course, but no extras. In fact, just about useless for anything other than Windows, since I can't boot from my USB flash disk unfortunately.
Have Debian GNU/Linux Sarge on my main machine, plus OpenBSD 3.5 and MINIX 2.0.4-dev.
Current machine is an Athlon XP 1600+ (1GHz), 512MB DDR RAM, 80GB + 40GB ATA Disks, CD-RW + DVD-ROM, 16MB Voodoo 3 AGP Video card, SoundBlaster Live! 5.1 PCI sound card, PCI RealTek + PCI Netgear FA-311 Fast Ethernet adapters, Netgear DM602 Ethernet and USB ADSL Router + Modem, 17" Sony Trinitron CRT Monitor. Have a SanDisk Cruzer Mini 256MB USB Flash Disk hanging around my neck on a shoelace. Also have an IBM Thinkpad iSeries notebook PC - Celeron 600MHz, 64MB RAM, 10GB Hard Disk, CD-ROM, external USB floppy, PCMCIA slot of course, but no extras. In fact, just about useless for anything other than Windows, since I can't boot from my USB flash disk unfortunately.
Have Debian GNU/Linux Sarge on my main machine, plus OpenBSD 3.5 and MINIX 2.0.4-dev.
Re:Personal Question
Just as a side note, I'm really pleased to see many younger people under 18 here, because I believe computing is about the only useful thing people of that age can learn that's relevant to the workplace and just about anything else. I'm at uni studying to become a primary school teacher, but I tutor high school students as well in computing and mathematics.
I'd like to see better textbooks on computer programming and other stuff for high schools. Unfortunately they don't exist and I'll probably end up writing them myself one day... at the moment I recommend the Wizard book for my talented high school kids, as well as A Book On C by Al Kelley and Ira Pohl, and Randy Hyde's Art of Assembly Language, if they're interested.
I'd like to see better textbooks on computer programming and other stuff for high schools. Unfortunately they don't exist and I'll probably end up writing them myself one day... at the moment I recommend the Wizard book for my talented high school kids, as well as A Book On C by Al Kelley and Ira Pohl, and Randy Hyde's Art of Assembly Language, if they're interested.
Re:Personal Question
Now, I'm not going to write a text-book anytime soon -grin- but exactly what you think could be better in textbooks. I mean, I agree with you, but I can't quite say what's wrong with the books. One thing I don't like with most books is the high amount of mathematics/engineering/financial examples. I think trying to teach recursion to someone by showing them fibonacci-function is not the right approach.kernel_journeyman wrote: I'd like to see better textbooks on computer programming and other stuff for high schools.
But other than that, I can't really say WHAT is it that's wrong with current books. If you, wouldn't you like to give me some hint. I'm just playing around with the idea of writing a small programming tutorial and would like to solve this problem...
Re:Personal Question
Right, there's nothing especially wrong with them, but context, context, context. They teach everything in isolation and that's bad for students just starting out. I have a big problem with math and science books as well, that teach maths, physics and chemistry as if they existed in a vacuum, which is extremely unhelpful. Kids don't generally enjoy maths and science at school because they perceive it to be irrelevant and extraordinarily boring. And when taught from those awful books, they are right. They need application and context. Why the *@#$ am I differentiating, for example? Well, take for example... and not those boring unthoughtful examples like the speed and distance of rockets or cars or fruit fly populations over time - jeez. Get them using the maths to solve something of immediate interest to them. Same with physics and chemistry, and ultimately, but in a different way, computer programming. I would like to see machine organisation and how computers really work, why things are done the way they are, and leave no stone unturned. I hate having to say, "just take my word for it..." and in fact I never do.mystran wrote: Now, I'm not going to write a text-book anytime soon -grin- but exactly what you think could be better in textbooks. I mean, I agree with you, but I can't quite say what's wrong with the books. One thing I don't like with most books is the high amount of mathematics/engineering/financial examples. I think trying to teach recursion to someone by showing them fibonacci-function is not the right approach.
I agree with you on the point of recursion using Fibbonacci series. It's boring. First, students must not see the general elegant case like they do with theory. They should see examples of something, then be shown that a general case can be made and here's the equation or whatever. I find it helpful with young kids to say that, look, algebra uses letters of the alphabet to represent real numbers. There's nothing vague about it, and it works for any real number you care to throw at it. It shows that this is generally useful regardless of what numbers will actually be used. It is not helpful to throw the rules like a(b + c) = ab + ac at a newbie who has never seen algebra. That just confuses them and makes them feel stupid. Show that first, 2(3 + 4) = 2x3 + 2x4 = 14. Then show it works whatever values are substituted for a, b and c, then show them the general case, a(b + c) = ab + ac, and get them to try it out with different numbers for a, b and c, and they say, a-ha! That's what it's all about! See what I mean? Current texts are awful in the way they teach the general case first, without showing why it is so, or what it really means, or why they are bothering to learn it. Nothing really exists in a vacuum. Work up to the general case by showing patterns developing first with concrete examples.
See above.mystran wrote: But other than that, I can't really say WHAT is it that's wrong with current books. If you, wouldn't you like to give me some hint. I'm just playing around with the idea of writing a small programming tutorial and would like to solve this problem...
Re:Personal Question
I second that. You can tell me how to do something (e.g., differential equations) all day, and chances are I will have forgotten by tomorrow because you didn't tell me why I would like to do that. What's the problem I am solving? What is this technique usually applied to? How does it relate to what I've learned already?
It's a bit different in Biology, which is why I was so good at it: No-one would tell you those complex biochemical chain reactions without telling you first what it's about.
But Mathematicians do that all day...
It's a bit different in Biology, which is why I was so good at it: No-one would tell you those complex biochemical chain reactions without telling you first what it's about.
But Mathematicians do that all day...
Every good solution is obvious once you've found it.
-
- Member
- Posts: 1600
- Joined: Wed Oct 18, 2006 11:59 am
- Location: Vienna/Austria
- Contact:
Re:Personal Question
It's their way to think. They handle those abstractions in their brains with no efforts, because they don't care about the *why*. They care about: Gee, this formula looks cool, c'mon gosh, letz look, what happens if we take one more differential on that left side and do an integral on the right side - Now, jesus, sweet and proper Look at This Curve! to say it simple.
Not my way to think. I like my brain be busy with pictures of the imagination of a virtual file system and how to plug in the several file system modules into this superior vfs tree. I like it to handle *real* objects where i know the why and where and the background and other related associations. Well me 's ever had high marks on biology and practical Chemistry/Physics - never liked the theory for they sold it with that much maths it screwed up my stomach.
stay safe
Not my way to think. I like my brain be busy with pictures of the imagination of a virtual file system and how to plug in the several file system modules into this superior vfs tree. I like it to handle *real* objects where i know the why and where and the background and other related associations. Well me 's ever had high marks on biology and practical Chemistry/Physics - never liked the theory for they sold it with that much maths it screwed up my stomach.
stay safe
... the osdever formerly known as beyond infinity ...
BlueillusionOS iso image
BlueillusionOS iso image
Re:Personal Question
Now don't get me wrong, I *like* maths, because it helps me solving problems.
And there's the catch. I was pretty good at maths, up to the point when we started doing curve scetching.
"You know, by forming the first derivation of a curve you get the max and min points of the curve." Hey jolly, a solution for a problem!
"And with the second derivation, you get the points where the gradients of the curve change." Hm. Not sure where I could need that, but well, we'll see.
"Now you'll please do third and fourth derivation." Erm, teacher, why should we want to do that? "For exercise." Erm, but what *is* it we're calculating here? "Max and min for the second derivation." Yes, but why would anyone want to know that? "Never mind, just do it."
That was when my math grades plummeted, because it got only worse from there.
You see, as long as I have an idea of what's going on, math is *interesting*. Give me a concept of what I'm doing, and I dig into the ugliest of formulas. Give me formulas only, and I get bored to death.
*That's* what's wrong with far too many math books. Early grades get those nifty problems to solve. "If a river has a current of X, and is Y wide, how much will a boat get displaced that's running Z fast and aiming for the opposite bank?" Oversimplified, but you *immediately* see what your calculations are good for.
Somehow, matematicians assume that higher grade students no longer need this kind of applicability. That's wrong.
And there's the catch. I was pretty good at maths, up to the point when we started doing curve scetching.
"You know, by forming the first derivation of a curve you get the max and min points of the curve." Hey jolly, a solution for a problem!
"And with the second derivation, you get the points where the gradients of the curve change." Hm. Not sure where I could need that, but well, we'll see.
"Now you'll please do third and fourth derivation." Erm, teacher, why should we want to do that? "For exercise." Erm, but what *is* it we're calculating here? "Max and min for the second derivation." Yes, but why would anyone want to know that? "Never mind, just do it."
That was when my math grades plummeted, because it got only worse from there.
You see, as long as I have an idea of what's going on, math is *interesting*. Give me a concept of what I'm doing, and I dig into the ugliest of formulas. Give me formulas only, and I get bored to death.
*That's* what's wrong with far too many math books. Early grades get those nifty problems to solve. "If a river has a current of X, and is Y wide, how much will a boat get displaced that's running Z fast and aiming for the opposite bank?" Oversimplified, but you *immediately* see what your calculations are good for.
Somehow, matematicians assume that higher grade students no longer need this kind of applicability. That's wrong.
Every good solution is obvious once you've found it.
Re:Personal Question
I totally agree, because of this, when I ever think of maths, I just get bored. I usually use maths in useful situations without realising it, but when I think, "time to do some maths now" I just get really bored (and because of this, I've never liked maths).Solar wrote: Now don't get me wrong, I *like* maths, because it helps me solving problems.
And there's the catch. I was pretty good at maths, up to the point when we started doing curve scetching.
"You know, by forming the first derivation of a curve you get the max and min points of the curve." Hey jolly, a solution for a problem!
"And with the second derivation, you get the points where the gradients of the curve change." Hm. Not sure where I could need that, but well, we'll see.
"Now you'll please do third and fourth derivation." Erm, teacher, why should we want to do that? "For exercise." Erm, but what *is* it we're calculating here? "Max and min for the second derivation." Yes, but why would anyone want to know that? "Never mind, just do it."
That was when my math grades plummeted, because it got only worse from there.
You see, as long as I have an idea of what's going on, math is *interesting*. Give me a concept of what I'm doing, and I dig into the ugliest of formulas. Give me formulas only, and I get bored to death.
*That's* what's wrong with far too many math books. Early grades get those nifty problems to solve. "If a river has a current of X, and is Y wide, how much will a boat get displaced that's running Z fast and aiming for the opposite bank?" Oversimplified, but you *immediately* see what your calculations are good for.
Somehow, matematicians assume that higher grade students no longer need this kind of applicability. That's wrong.
In my mind, the word "Maths" points to boring lists of sums, equations and other things that are just boring, or just really hard. It points to nightmares of lessions in classrooms doing boring, often difficult, but most of all seemingly meaningless stuff that seem to have no relavance to anything but passing an exam filled with more of the same.
If the teaching of maths actually pointed to the fact that it can be very useful, then it would mean a lot more to people.
srg
- Pype.Clicker
- Member
- Posts: 5964
- Joined: Wed Oct 18, 2006 2:31 am
- Location: In a galaxy, far, far away
- Contact:
Re:Personal Question
You might like to know that Taylor Series can approach any function with any whished precision with a polynom (a0+a1x+a2x?+a3x?+...) where ai are computed with i'th derivate of the function.Solar wrote:
"Now you'll please do third and fourth derivation." Erm, teacher, why should we want to do that? "For exercise." Erm, but what *is* it we're calculating here? "Max and min for the second derivation." Yes, but why would anyone want to know that? "Never mind, just do it."
Though i doubt you'll find the time to explain that to a class of 17-year old boys, at the risk of confusing all the JoeAverages that might be in that class, unfortunately.
Re:Personal Question
See, that's the attitude of teacher's that can't be bothered and shouldn't be teachers. No offense Pype, not everyone can be bothered, and that's okay. But if you want to be a teacher, then you have to make an effort to teach the Joe Averages.Pype.Clicker wrote: You might like to know that Taylor Series can approach any function with any whished precision with a polynom (a0+a1x+a2x?+a3x?+...) where ai are computed with i'th derivate of the function.
Though i doubt you'll find the time to explain that to a class of 17-year old boys, at the risk of confusing all the JoeAverages that might be in that class, unfortunately.
Joe Averages can do almost anything the brightest kids can do, the Human brain is really amazing. But the Joe Averages don't necessarily care, and they need more stimulation to learn, because their lives are plain and, well, average. They need more examples and need to see more practical relevance than the very bright students who appreciate what second derivatives are for.
You can very well explain everything and anything to Joe Averages, if you just take the time. I believe education is for everyone.
"What one fool can do, another can."
Ancient Simian Proverb, quoted in Calculus Made Easy by Silvanus P. Thompson.
Re:Personal Question
Maybe we should fork this conversation about education of both programming and math to another thread, in any case...
I think that the "smart kids" aren't necessarily that different from the "averages", except in their interests and experience. I regularly get 135-145 from those stupid IQ tests, yet, I'd blaim it on wholly on my experience: after you've written code for 15 years, it's a no-brainer to think of numbers as series of digits (we do that all the time with bits, don't we?) or arrays of pictures having some regular structure (duh).. I've never felt like very bright. Indeed, I have lots of trouble in more advanced math... and I've never been perceived as a "smart kid" in school.
Similarly, I know of people that couldn't answer a question such as "what is the next number in this series: 1 1 2 3 5 8". On the other hand, they might be able to listen to a Ford DOCH engine and immediately tell based on the sound, what's wrong in there.. The former takes me no effort, but the engine question (unless it's really obvious) is complete mystery to me.
I'm not ready to accept that some tasks rely more on intelligence, while others rely on skill. I mean, I've seen people that were bad at math, but needed to learn it for something they wanted to do, and were helped with enough patience, and managed to become good in math. Really good.
Why the "smart" kids can bother to learn derivatives without being shown how Taylor Series work, is that those kids already can think of reasons why derivatives are useful. They are interested enough in the subject to find the applications themselves, or at least "smell" that they might need it for something later.
Now, I think that a good teacher is one that can get people interested in the subject at hand. A good math teacher for example should be able to show applications relevant to the student. At this point, I realize how much I've changed in Uni, and how I was probably much better teacher before. Why? Because once you've been dealing with some subject long enough, you become interested in the very subject itself, and while you (ofcourse) can immediately think of applications for even the most advanced concepts, it's hard to remember that someone knew to the field doesn't necessarily have such a broad vision.
This is a problem we all should remember I think, whether we are teaching or learning.
I think that the "smart kids" aren't necessarily that different from the "averages", except in their interests and experience. I regularly get 135-145 from those stupid IQ tests, yet, I'd blaim it on wholly on my experience: after you've written code for 15 years, it's a no-brainer to think of numbers as series of digits (we do that all the time with bits, don't we?) or arrays of pictures having some regular structure (duh).. I've never felt like very bright. Indeed, I have lots of trouble in more advanced math... and I've never been perceived as a "smart kid" in school.
Similarly, I know of people that couldn't answer a question such as "what is the next number in this series: 1 1 2 3 5 8". On the other hand, they might be able to listen to a Ford DOCH engine and immediately tell based on the sound, what's wrong in there.. The former takes me no effort, but the engine question (unless it's really obvious) is complete mystery to me.
I'm not ready to accept that some tasks rely more on intelligence, while others rely on skill. I mean, I've seen people that were bad at math, but needed to learn it for something they wanted to do, and were helped with enough patience, and managed to become good in math. Really good.
Why the "smart" kids can bother to learn derivatives without being shown how Taylor Series work, is that those kids already can think of reasons why derivatives are useful. They are interested enough in the subject to find the applications themselves, or at least "smell" that they might need it for something later.
Now, I think that a good teacher is one that can get people interested in the subject at hand. A good math teacher for example should be able to show applications relevant to the student. At this point, I realize how much I've changed in Uni, and how I was probably much better teacher before. Why? Because once you've been dealing with some subject long enough, you become interested in the very subject itself, and while you (ofcourse) can immediately think of applications for even the most advanced concepts, it's hard to remember that someone knew to the field doesn't necessarily have such a broad vision.
This is a problem we all should remember I think, whether we are teaching or learning.