As more and more people hook their PCs up to their TVs, I wonder if split-screen gaming will come to the PC? I wonder if, now, you could plug four wireless USB keyboards and mice (or game controllers?) into a PC, run four instances of, say, Quake 3 in windows (with each configured to use a different keyboard+mouse/gamepad for input), and play a multiplayer game through a server on localhost -- so everyone can play on your big HDTV from the couch? Obviously configuration would be at least a minor pain in the butt, but I imagine the process could be automated -- perhaps by an OSS program with a database of user-contributed "presets" for different games?
I agree with that statement. For what Nintendo does with it, though, this doesn't matter -- since we humans can see what our actions do on the screen, and we just act like complicated and squishy feedback controllers to make things behave as we want -- without thinking much about it.
Yes, mocap suits fitted with a bunch of inertial sensors exist. It's cheaper than optical systems (with the "ping pong balls"), and in some ways easier to use (you don't need to worry about occlusion, for instance), but integrator drift is always a problem.
But other primates don't experience menopause. So if the fact that humans do undergo menopause has no impact on our evolutionary fitness, then you're saying it's just a random mutation that happened not to matter? Genetic drift?
There is no "optimal balance" with evolution. It does not work that way. Traits that lead to reproductive success are continued those that do not are not. This is it.
A good point, which I understand. I "get" what view you're trying to combat. There's a tendency first to anthropomorphize "evolution," and also to attribute motives to animals to evolve -- as though it is a change undergone by an individual, and as though it is that individual's conscious decision. Of course it's all just shorthand to make talking about these things easier, but it can be very misleading if you're not constantly "translating" -- which is something that the public at large probably doesn't do!
An important caveat for your statement, of course, is that it's not really about individuals and their offspring, but about genes -- so if a gene does not positively impact an individual's number of offspring, it may nevertheless be selected for because it helps others in that person's community (who presumably have similar genes) to survive and reproduce. This is a point that lots of people have brought up. One example is menopause: Why were primates whose ability to reproduce turned off as they got older selected by evolution? Presumably, it enabled them to survive to older ages, and the benefits (the wisdom and experience of one's elders?) that this brought to others in the community with the same genes outweighed the cost (loss of some reproductive members of society) to the gene's ability to propagate itself.
Hence, "getting cancer at 80" might actually be selected against. Also, we might not be talking about cancer at 80, but about cancer at 40: Would humans with abnormally-high stem-cell-production rates get cancer earlier, while they were still of reproductive age?
I do have one worry, though: Stem cells, some research is starting to indicate, are a double-edged sword. On the one hand, they allow new tissue to grow, but on the other, that new growth may end up being cancerous. One wonders whether the fact that we don't naturally produce stem cells at this rate reflects the optimal balance that evolution has found.
If we could control and cure (or prevent?) cancer reliably, however, this sort of technology would be great.
Seriously, control theory goes back long before Apollo, and long before NASA.
Well, sure. "Control theory" is huge and has a long history. But the space race did, as far as I understand, heavily motivate work in, in particular, optimal control. I mean, Pontryagin's Maximum Principle was only introduced in 1956; Apollo began shortly thereafter, in the '60s: This was in fact the period when this work was being done!
Apollo broke no new ground there. Nothing in it's electronics was significantly advanced over rockets that NASA was flying for other programs or that the military was flying.
Now, fine: I don't know much about the history of the Apollo program in particular, so in large part my claim that the program motivated the development of optimal control is the repetition of similar claims made by professors and others in the field. Maybe I've been living in an echo chamber where people repeat the same factoids to each other without evidence and create for themselves a kind of wikitruth; maybe that's all this is. So if you are in fact familiar with some of the details and would care to elaborate, I'd be interested to hear. But to be clear I'm not so much interested in the electronics with which the digital computers were implemented; that's not what controls is about: controls is about the algorithms implemented thereon -- as I'm sure you appreciate.
But a quick Google turns up some evidence to support my assertion. For instance, see this account of the design of the backup control system for the Lunar Module. To summarize, work began in 1963 for Apollo, and used optimal bang-bang control -- so it was clearly an application of then-new optimal control theory. I'd need more sources and have to research this more to make my claim stronger, however.
Finally, like I said, if you've got more details on this I'd be curious to hear them.
The moon shot was propaganda, partially, but it also unleashed a ton of new technologies and trained a generation of engineers
Indeed. A whole lot of control theory -- my area -- was developed explicitly for the purpose of supporting the Apollo program. So much was done in controls during the 60s.
no, you can't argue like that. knowing what the words in ancient greek mean does not allow you to dogmatically impose this meaning on modern english.
Fair enough. I shouldn't have argued in that manner. But my definitions are correct in the modern colloquial sense (see the OED). However, they're not the academic definitions; see my corrections.
Even my posts, I now realize, are a little off. I'd been using "atheist" to mean "strong atheist." This is in fact disjoint with agnosticism
Correction: It's only disjoint if you conflate belief with knowledge. If not, then you can have agnostic strong atheism ("I believe that there is no god but I do not know this.")
Since my original post ended up being modded +5 Informative, I'd like to make some corrections lest my original post mislead people and create some small amount of incorrect wikitruth.
My definitions were correct, but some of the logic that followed was not. For instance, agnosticism and atheism are only disjoint in the common usage, but logically there is actually room for overlap. There are basically two reasons for this and other logical errors that I made:
1. My definition of atheism is the colloquial definition in modern usage. However, in more precise academic terms, what I refer to as "atheism" is really "strong atheism." By contrast, you really can argue that weak atheism is "not a belief."
2. In some of my arguments I'd conflated knowledge and belief. This made sense to me, but really you can have belief without knowledge ("faith?") or, more arguably, knowledge without belief ("cognitive dissonance?") (The exact logic of this I'll need to think about more). This means that, in my arguments, "strong atheism" was also "gnostic atheism," though in fact "gnostic atheism" is really a stronger belief ("I believe that there is no god and I know this to be true").
I get your point, and I sympathize with it, but that's not my argument!!
First, notice this logical distinction:
The belief that there is no god is not the same as the absence of a belief in god. The former is indeed a belief. And, importantly, using my original definitions, atheism is the former, not the latter. This distinction is the core of the argument of the last paragraph of my post to which you are replying.
However, I realize now that there are some flaws in the definitions I'd used originally. To begin with, I'd conflated belief with knowledge (Belief without knowledge had just seemed nonsensical to me, and knowledge without belief even more so. But you can make the distinction). And secondly, I'd used atheism to mean strong atheism. This together with my conflation of belief with knowledge meant that this also implied gnostic atheism. Whereas you seem more concerned with weak atheism. See this page for a decent explanation. For more, see my conversation with BountyX; he brings up some very good points.
Mods: Parent is the best post on this subject. Better than mine to which it responds, in fact.
Even my posts, I now realize, are a little off. I'd been using "atheist" to mean "strong atheist." This is in fact disjoint with agnosticism, but it's not necessarily true that agnosticism implies "weak atheism" as I'd deduced. That last part is logic I'll need to think about.
Anyway, there's lots of crap out there on the web put there by dogmatic theists and atheists of various sorts, but this page is a reasonably good explanation.
You are wrong. [...] The prefix a- is a lack of the root.
It's always possible. But I think I'm right. Anyway, I'd always parsed it, (a-the)-ism as opposed to a-(the-ism). What's the "order of operations" for combining prefixes and suffixes into words? I'd learned the former in this case.
but your mistake is that you think an absence of belief is the same as the belief in the absence of a god.
I do grasp that; actually I thought that distinction had been half the point of my earlier post (and even more the point of my second post on this subject, in reply to aaronfaby). Our disagreement isn't over logic, just over what the words mean -- the subject of the previous paragraph of mine in this post. Using my original definition, atheism and agnosticism are disjoint (as I argued in my earlier post; that logic is sound, if we accept that definition). But if we instead use your definition, then agnosticism is a form of atheism. (If you claim no knowledge of God or whether it exists, then you do not have the belief that God exists). Maybe that's correct -- that agnosticism is a form of atheism -- but again, I'd learned otherwise.
Fair 'nuff?
Y'know what, before I finish, I might as well consult the OED. (I hesitated here, because I don't want to turn this from a discussion into an argument to be "won," and appeal to authority has always irked me. But here goes...) And it seems that the OED's definition is more like the one I'd used:
atheism (n): Disbelief in, or denial of, the existence of a God.
That sounds like a "positive term," to use aaronfaby's words.
Therefore, you cannot say that not accepting a belief is in itself a belief.
What is a positive term, and what is a negative one? In my mind belief has to do with the perceived truth or falsehood of a statement, and "God exists." and "God does not exist" are both simply statements which may or may not be true.
Perhaps it does make sense to differentiate between "positive statements" and "negative statements." But this introduces a dualism, and I'm not sure how all statements should be classified under this scheme; that inclines me to dislike the idea: it seems to introduce an unnecessary distinction.
Also, one final point: In the sentence I quoted, you equate "not accepting a belief [in God]" with atheism. But the set of people who do not believe the statement "God exists" (i.e., the complement of the set of theists) contains both the set of atheists and that of agnostics.
Wrong. That's like saying not collecting stamps is a hobby.
Damn it; damn it; damn it: We have words; can't we please use them correctly?
Atheism is the belief that there is no god. That's what the goddamn word means. Agnosticism is the belief that one has no knowledge of God or his/her/its existence. Look at the damn word roots.
By definition, atheists are not agnostic, because they do claim knowledge: They assert that God does not exist. So the set of atheists and the set of agnostics are disjoint. They are also of course both disjoint from the set of theists.
OK? That's how it works. Atheists believe that the statement "God does not exist" is true; theists believe that the statement "God exists" is true. The end.
(Don't be offended: Calling atheism a belief in no way belittles it, and as a statement by itself is not equivalent to calling atheism "another religion." Beliefs in nonexistence can be quite justified. In math, we have theorems dedicated to showing nonexistence. And in real life, the belief that, say, purple unicorns do not exist is probably correct! But it's still a belief. That's what the words mean.)
Thank you sir! This bugs me too. I still remember Microsoft Visual C++ 6.0's installer used to say, "Develop code with less bugs," which made me cringe every time I read it.
I also mourn the death of the subjunctive. "If I were a rich man" may be the only song that gets it right. (Side note: The other day, somebody was playing pop-star Gwen Stefani's cover of this song; it's called "If I was a rich girl." For Christ's sake, she intentionally changed the verb from the original to make it ungrammatical.)
the public at large doesn't the read journals and papers on the latest scientific findings,
Unfortunately, they can't... The papers are all published by people like Springer (and the like), and it costs money to get access to their databases. The only people who have easy access are at universities, whose libraries purchase subscriptions. The point is that the output of scientists is owned by large publishing companies, out of easy reach of the general public.
Oh, to have a pneumatic "Internet" of tubes! It would be wonderful. I say this in all seriousness. Today, I can use the Internet to move data. That's all well and good. But what if I could order Chinese food from across town, to have it arrive via pneumatic tube a minute later, propelled directly to my apartment 300 mph? What if we could move stuff?
I can imagine some people actually being happy to use MS Bob
My parents, who are older, actually quite liked MSBob, back when it used to work.
The thing is, using a "normal" GUI involves mixing metaphors. We slashdot readers are so used to these metaphors that we don't think twice about them. But for people who didn't grow up with them, the sorts of metaphors used in, say, Thunderbird's GUI just don't make sense. (You don't want to know how many times I've had to explain how to attach a file to an email. I've even written it down for them.) But they could figure out MSBob.
Part of the issue, though, is reading comprehension. Using a computer is an exercise in (1) reading, (2) understanding what's written on the screen, and (3) acting accordingly. Older people seem to be so worried about #3 that they assume that #1 and #2 are out of their league so they don't even try.
You might be interested to know that there are products that do this with C as well though. E.g., "Catapult C," which takes in C code and spits out Verilog/VHDL. But designing hardware in C is a little like using a screwdriver to drive a nail, so it's not like I'd recommend these tools. I imagine that functional languages are somewhat better for this.
Build a linux box in class compiling all the packages. After about a week of that (and resolving dependencies), you'll understand about the real meat of programming, compiling.
Sorry, but this is the worst advice I've ever heard. That's fun as a hobbyist/"hacker" sort of thing, but completely worthless as a tautological experience in computer science. What do kids learn? How to fight with other people's nasty code, while executing magical incantations on the bash prompt that they just copied from a help forum somewhere?
It'd be like trying to learn fluid mechanics by cleaning toilets.
I was thinking more along the lines of a 'rational' data type (store numerator and denominator as integers). But I'm not the GP, so I can't speak for him.
But your post makes me think... something simultaneously along the lines of and diametrically opposed to what you've been saying. I wonder if being given just unsigned bytes and having to write code to handle all more complicated cases would be a good instructional experience. I think it would. Pretend the floating-point units aren't there; really make the kids think about mantissas and exponents, and different ways to represent numbers, instead of having the CPU automagically do it all for them.
I think you should start with imperative languages before doing functional programming. It's not hard to understand a loop, but kids take a long time to "get" recursion, and that's what functional programming depends on.
So, teach BASIC. Then C. Then Scheme.
You see a progression from GOTO in BASIC (easy to understand as an idea; a terrible way to program), to imperative programming with functions including recursion in C, to pure functional programming in Scheme. I think the progression of ideas makes sense.
After that, you can worry about object orientation if you want. But you should have made inroads with that by now with C (structs and functions) and Scheme (classes, polymorphism). So Java should come with a snap of the fingers.
local multiplayer games sitting in the couch
As more and more people hook their PCs up to their TVs, I wonder if split-screen gaming will come to the PC? I wonder if, now, you could plug four wireless USB keyboards and mice (or game controllers?) into a PC, run four instances of, say, Quake 3 in windows (with each configured to use a different keyboard+mouse/gamepad for input), and play a multiplayer game through a server on localhost -- so everyone can play on your big HDTV from the couch? Obviously configuration would be at least a minor pain in the butt, but I imagine the process could be automated -- perhaps by an OSS program with a database of user-contributed "presets" for different games?
I wouldn't say it's "fairly accurate" at all,
I agree with that statement. For what Nintendo does with it, though, this doesn't matter -- since we humans can see what our actions do on the screen, and we just act like complicated and squishy feedback controllers to make things behave as we want -- without thinking much about it.
Yes, mocap suits fitted with a bunch of inertial sensors exist. It's cheaper than optical systems (with the "ping pong balls"), and in some ways easier to use (you don't need to worry about occlusion, for instance), but integrator drift is always a problem.
But other primates don't experience menopause. So if the fact that humans do undergo menopause has no impact on our evolutionary fitness, then you're saying it's just a random mutation that happened not to matter? Genetic drift?
There is no "optimal balance" with evolution. It does not work that way. Traits that lead to reproductive success are continued those that do not are not. This is it.
A good point, which I understand. I "get" what view you're trying to combat. There's a tendency first to anthropomorphize "evolution," and also to attribute motives to animals to evolve -- as though it is a change undergone by an individual, and as though it is that individual's conscious decision. Of course it's all just shorthand to make talking about these things easier, but it can be very misleading if you're not constantly "translating" -- which is something that the public at large probably doesn't do!
An important caveat for your statement, of course, is that it's not really about individuals and their offspring, but about genes -- so if a gene does not positively impact an individual's number of offspring, it may nevertheless be selected for because it helps others in that person's community (who presumably have similar genes) to survive and reproduce. This is a point that lots of people have brought up. One example is menopause: Why were primates whose ability to reproduce turned off as they got older selected by evolution? Presumably, it enabled them to survive to older ages, and the benefits (the wisdom and experience of one's elders?) that this brought to others in the community with the same genes outweighed the cost (loss of some reproductive members of society) to the gene's ability to propagate itself.
Hence, "getting cancer at 80" might actually be selected against. Also, we might not be talking about cancer at 80, but about cancer at 40: Would humans with abnormally-high stem-cell-production rates get cancer earlier, while they were still of reproductive age?
This is awesome. Biology is doing amazing things.
I do have one worry, though: Stem cells, some research is starting to indicate, are a double-edged sword. On the one hand, they allow new tissue to grow, but on the other, that new growth may end up being cancerous. One wonders whether the fact that we don't naturally produce stem cells at this rate reflects the optimal balance that evolution has found.
If we could control and cure (or prevent?) cancer reliably, however, this sort of technology would be great.
Seriously, control theory goes back long before Apollo, and long before NASA.
Well, sure. "Control theory" is huge and has a long history. But the space race did, as far as I understand, heavily motivate work in, in particular, optimal control. I mean, Pontryagin's Maximum Principle was only introduced in 1956; Apollo began shortly thereafter, in the '60s: This was in fact the period when this work was being done!
Apollo broke no new ground there. Nothing in it's electronics was significantly advanced over rockets that NASA was flying for other programs or that the military was flying.
Now, fine: I don't know much about the history of the Apollo program in particular, so in large part my claim that the program motivated the development of optimal control is the repetition of similar claims made by professors and others in the field. Maybe I've been living in an echo chamber where people repeat the same factoids to each other without evidence and create for themselves a kind of wikitruth; maybe that's all this is. So if you are in fact familiar with some of the details and would care to elaborate, I'd be interested to hear. But to be clear I'm not so much interested in the electronics with which the digital computers were implemented; that's not what controls is about: controls is about the algorithms implemented thereon -- as I'm sure you appreciate.
But a quick Google turns up some evidence to support my assertion. For instance, see this account of the design of the backup control system for the Lunar Module. To summarize, work began in 1963 for Apollo, and used optimal bang-bang control -- so it was clearly an application of then-new optimal control theory. I'd need more sources and have to research this more to make my claim stronger, however.
Finally, like I said, if you've got more details on this I'd be curious to hear them.
The moon shot was propaganda, partially, but it also unleashed a ton of new technologies and trained a generation of engineers
Indeed. A whole lot of control theory -- my area -- was developed explicitly for the purpose of supporting the Apollo program. So much was done in controls during the 60s.
no, you can't argue like that. knowing what the words in ancient greek mean does not allow you to dogmatically impose this meaning on modern english.
Fair enough. I shouldn't have argued in that manner. But my definitions are correct in the modern colloquial sense (see the OED). However, they're not the academic definitions; see my corrections.
Even my posts, I now realize, are a little off. I'd been using "atheist" to mean "strong atheist." This is in fact disjoint with agnosticism
Correction: It's only disjoint if you conflate belief with knowledge. If not, then you can have agnostic strong atheism ("I believe that there is no god but I do not know this.")
Since my original post ended up being modded +5 Informative, I'd like to make some corrections lest my original post mislead people and create some small amount of incorrect wikitruth.
My definitions were correct, but some of the logic that followed was not. For instance, agnosticism and atheism are only disjoint in the common usage, but logically there is actually room for overlap. There are basically two reasons for this and other logical errors that I made:
1. My definition of atheism is the colloquial definition in modern usage. However, in more precise academic terms, what I refer to as "atheism" is really "strong atheism." By contrast, you really can argue that weak atheism is "not a belief."
2. In some of my arguments I'd conflated knowledge and belief. This made sense to me, but really you can have belief without knowledge ("faith?") or, more arguably, knowledge without belief ("cognitive dissonance?") (The exact logic of this I'll need to think about more). This means that, in my arguments, "strong atheism" was also "gnostic atheism," though in fact "gnostic atheism" is really a stronger belief ("I believe that there is no god and I know this to be true").
Why does belief in a god get special treatment?
I get your point, and I sympathize with it, but that's not my argument!!
First, notice this logical distinction:
The belief that there is no god is not the same as the absence of a belief in god. The former is indeed a belief. And, importantly, using my original definitions, atheism is the former, not the latter. This distinction is the core of the argument of the last paragraph of my post to which you are replying.
However, I realize now that there are some flaws in the definitions I'd used originally. To begin with, I'd conflated belief with knowledge (Belief without knowledge had just seemed nonsensical to me, and knowledge without belief even more so. But you can make the distinction). And secondly, I'd used atheism to mean strong atheism. This together with my conflation of belief with knowledge meant that this also implied gnostic atheism. Whereas you seem more concerned with weak atheism. See this page for a decent explanation. For more, see my conversation with BountyX; he brings up some very good points.
Mods: Parent is the best post on this subject. Better than mine to which it responds, in fact.
Even my posts, I now realize, are a little off. I'd been using "atheist" to mean "strong atheist." This is in fact disjoint with agnosticism, but it's not necessarily true that agnosticism implies "weak atheism" as I'd deduced. That last part is logic I'll need to think about.
Anyway, there's lots of crap out there on the web put there by dogmatic theists and atheists of various sorts, but this page is a reasonably good explanation.
You are wrong. [...] The prefix a- is a lack of the root.
It's always possible. But I think I'm right. Anyway, I'd always parsed it, (a-the)-ism as opposed to a-(the-ism). What's the "order of operations" for combining prefixes and suffixes into words? I'd learned the former in this case.
but your mistake is that you think an absence of belief is the same as the belief in the absence of a god.
I do grasp that; actually I thought that distinction had been half the point of my earlier post (and even more the point of my second post on this subject, in reply to aaronfaby). Our disagreement isn't over logic, just over what the words mean -- the subject of the previous paragraph of mine in this post. Using my original definition, atheism and agnosticism are disjoint (as I argued in my earlier post; that logic is sound, if we accept that definition). But if we instead use your definition, then agnosticism is a form of atheism. (If you claim no knowledge of God or whether it exists, then you do not have the belief that God exists). Maybe that's correct -- that agnosticism is a form of atheism -- but again, I'd learned otherwise.
Fair 'nuff?
Y'know what, before I finish, I might as well consult the OED. (I hesitated here, because I don't want to turn this from a discussion into an argument to be "won," and appeal to authority has always irked me. But here goes...) And it seems that the OED's definition is more like the one I'd used:
atheism (n): Disbelief in, or denial of, the existence of a God.
That sounds like a "positive term," to use aaronfaby's words.
Therefore, you cannot say that not accepting a belief is in itself a belief.
What is a positive term, and what is a negative one? In my mind belief has to do with the perceived truth or falsehood of a statement, and "God exists." and "God does not exist" are both simply statements which may or may not be true.
Perhaps it does make sense to differentiate between "positive statements" and "negative statements." But this introduces a dualism, and I'm not sure how all statements should be classified under this scheme; that inclines me to dislike the idea: it seems to introduce an unnecessary distinction.
Also, one final point: In the sentence I quoted, you equate "not accepting a belief [in God]" with atheism. But the set of people who do not believe the statement "God exists" (i.e., the complement of the set of theists) contains both the set of atheists and that of agnostics.
Wrong. That's like saying not collecting stamps is a hobby.
Damn it; damn it; damn it: We have words; can't we please use them correctly?
Atheism is the belief that there is no god. That's what the goddamn word means. Agnosticism is the belief that one has no knowledge of God or his/her/its existence. Look at the damn word roots.
By definition, atheists are not agnostic, because they do claim knowledge: They assert that God does not exist. So the set of atheists and the set of agnostics are disjoint. They are also of course both disjoint from the set of theists.
OK? That's how it works. Atheists believe that the statement "God does not exist" is true; theists believe that the statement "God exists" is true. The end.
(Don't be offended: Calling atheism a belief in no way belittles it, and as a statement by itself is not equivalent to calling atheism "another religion." Beliefs in nonexistence can be quite justified. In math, we have theorems dedicated to showing nonexistence. And in real life, the belief that, say, purple unicorns do not exist is probably correct! But it's still a belief. That's what the words mean.)
an advanced civilization with a few hours to kill
There isn't any evidence that such things exist, of course... :-) "Advanced civilizations," that is.
Thank you sir! This bugs me too. I still remember Microsoft Visual C++ 6.0's installer used to say, "Develop code with less bugs," which made me cringe every time I read it.
I also mourn the death of the subjunctive. "If I were a rich man" may be the only song that gets it right. (Side note: The other day, somebody was playing pop-star Gwen Stefani's cover of this song; it's called "If I was a rich girl." For Christ's sake, she intentionally changed the verb from the original to make it ungrammatical.)
the public at large doesn't the read journals and papers on the latest scientific findings,
Unfortunately, they can't... The papers are all published by people like Springer (and the like), and it costs money to get access to their databases. The only people who have easy access are at universities, whose libraries purchase subscriptions. The point is that the output of scientists is owned by large publishing companies, out of easy reach of the general public.
Oh, to have a pneumatic "Internet" of tubes! It would be wonderful. I say this in all seriousness. Today, I can use the Internet to move data. That's all well and good. But what if I could order Chinese food from across town, to have it arrive via pneumatic tube a minute later, propelled directly to my apartment 300 mph? What if we could move stuff?
I can imagine some people actually being happy to use MS Bob
My parents, who are older, actually quite liked MSBob, back when it used to work.
The thing is, using a "normal" GUI involves mixing metaphors. We slashdot readers are so used to these metaphors that we don't think twice about them. But for people who didn't grow up with them, the sorts of metaphors used in, say, Thunderbird's GUI just don't make sense. (You don't want to know how many times I've had to explain how to attach a file to an email. I've even written it down for them.) But they could figure out MSBob.
Part of the issue, though, is reading comprehension. Using a computer is an exercise in (1) reading, (2) understanding what's written on the screen, and (3) acting accordingly. Older people seem to be so worried about #3 that they assume that #1 and #2 are out of their league so they don't even try.
Try this with your C++. ;-)
Interesting post; I didn't know that'd been done.
You might be interested to know that there are products that do this with C as well though. E.g., "Catapult C," which takes in C code and spits out Verilog/VHDL. But designing hardware in C is a little like using a screwdriver to drive a nail, so it's not like I'd recommend these tools. I imagine that functional languages are somewhat better for this.
Build a linux box in class compiling all the packages. After about a week of that (and resolving dependencies), you'll understand about the real meat of programming, compiling.
Sorry, but this is the worst advice I've ever heard. That's fun as a hobbyist/"hacker" sort of thing, but completely worthless as a tautological experience in computer science. What do kids learn? How to fight with other people's nasty code, while executing magical incantations on the bash prompt that they just copied from a help forum somewhere?
It'd be like trying to learn fluid mechanics by cleaning toilets.
presumably use an infinite precision data type
I was thinking more along the lines of a 'rational' data type (store numerator and denominator as integers). But I'm not the GP, so I can't speak for him.
But your post makes me think... something simultaneously along the lines of and diametrically opposed to what you've been saying. I wonder if being given just unsigned bytes and having to write code to handle all more complicated cases would be a good instructional experience. I think it would. Pretend the floating-point units aren't there; really make the kids think about mantissas and exponents, and different ways to represent numbers, instead of having the CPU automagically do it all for them.
(Though this shouldn't be an intro course.)
I guess this is the spirit of this course.
(Disclaimer: Not an RPI grad; didn't take the course. Just saw a Youtube video about it. But it looked like a good way to go.)
functional languages are very different
I think you should start with imperative languages before doing functional programming. It's not hard to understand a loop, but kids take a long time to "get" recursion, and that's what functional programming depends on.
So, teach BASIC. Then C. Then Scheme.
You see a progression from GOTO in BASIC (easy to understand as an idea; a terrible way to program), to imperative programming with functions including recursion in C, to pure functional programming in Scheme. I think the progression of ideas makes sense.
After that, you can worry about object orientation if you want. But you should have made inroads with that by now with C (structs and functions) and Scheme (classes, polymorphism). So Java should come with a snap of the fingers.