Say we replicate the complexity and computation power of the human brain in another medium - say, silicon chips.
Will this functional equivalence result in the kind of CONSCIOUSNESS that human being enjoy? Or does consciousness require a particular physical substrate - e.g., the "wet" carbon-based one we enjoy?
One response is that it is impossible in principle to even answer the question, as there is no way to "switch minds" with the machine or otherwise verify that they are experiencing things subjectively. We can simply decide to treat anything that behaves like a conscious person as a conscious person. Or, alternately, insist that they must be made of the same stuff as us. It's not a easy question.
The "real world" is subject to change. Education is not about training you in the details of the real world as it exists today. It's about enabling you to play a role in shaping the future - i.e., what today's real world will evolve into.
Today's real world is: a bunch of spreadsheets hacked together with VB6 at some small business; a massive COBOL-based internal application at some big bank; etc etc. Today's real world is the way it is not because that's the best way to do things. Eventually everything will change - some things more quickly than others.
Computer science is not just about programming languages and paradigms. These students will have build systems, and develop algorithms as part of their studies, and even before getting to the "real world" they will find that the functional stuff is inadequate.
Which is why even CMU is limiting this lunacy to first year courses.
The "real world" is subject to change. Education is not about training you in the details of the real world as it exists today. It's about enabling you to play a role in shaping the future - i.e., what today's real world will evolve into.
Today's real world is: a bunch of spreadsheets hacked together with VB6 at some small business; a massive COBOL-based internal application at some big bank; etc etc. Today's real world is the way it is not because that's the best way to do things. Eventually everything will change - some things more quickly than others.
Computer science is not just about programming languages and paradigms. These students will have build systems, and develop algorithms as part of their studies, and even before getting to the "real world" they will find that the functional stuff is inadequate.
Which is why even CMU is limiting this lunacy to first year courses.
In other words, meaning is relational. Which of course it is. The same sequence of sounds can mean different things in different languages, for example. But just because humans assign certain meanings to a computer's output does not entail that the computer itself is incapable of interpretation. The point you are making is really orthogonal to the issue of whether machines can think, as it applies equally to any situation in which the mind interprets an aspect of its environment - whether that aspect is man or machine.
I don't know what "the computer itself is incapable of interpretation" means here. Obviously a silicon chip can be described physically but that it carries out a computation is a matter of definition, just as ink on a page can be described physically but that it stands for a word in a human language is a matter of definition. If you accept that this is true then everything I have said follows. The brain and a computer chip performing a calculation can both be described as physical systems and even if there were striking similarities it would still be meaningless to ascribe computation to the brain.
Note that what I'm arguing is that the brain is not a computer and that computation is not the basis of intelligence. I notice I did use the word "machine" in my original post but I'm actually not opposed to the idea of an artificial brain. Such a thing might be possible, but it wouldn't be performing computations.
Computer science is not just about programming languages and paradigms. These students will have build systems, and develop algorithms as part of their studies, and even before getting to the "real world" they will find that the functional stuff is inadequate.
Which is why even CMU is limiting this lunacy to first year courses.
What exactly can't they do in a functional language?
Regardless, there's still a mandatory first year course on imperative programming, it's just OOP that's elective.
You can write programs that don't garbage collect in C# and Java, nitwit.
Just have a main loop where you don't create NEW objects.
Don't use the extra features of the language if you don't want the side effects.
Complaining about garbage collection is like complaining that you can get in a car accident if you crank the steering wheel left.
No you can't. Garbage collection is a "feature" of object oriented programming. After you create these "objects", something has to come along and reuse the memory space.
You can write programs that don't garbage collect in C# and Java, nitwit.
Just have a main loop where you don't create NEW objects.
Don't use the extra features of the language if you don't want the side effects.
Complaining about garbage collection is like complaining that you can get in a car accident if you crank the steering wheel left.
No you can't. Garbage collection is a "feature" of object oriented programming. After you create these "objects", something has to come along and reuse the memory space.
Memory must be managed somehow - regardless of language or paradigm.
Computer science is not just about programming languages and paradigms. These students will have build systems, and develop algorithms as part of their studies, and even before getting to the "real world" they will find that the functional stuff is inadequate.
Which is why even CMU is limiting this lunacy to first year courses.
Posted 6/23/2012 8:51 pm
The theory of OOP was great. Objects were supposed to be resilient and easy to use. Instead, they're brittle, the parameters you pass to them have to be exactly right, and every java upgrade breaks some programs. And every java object works differently, there's a learning curve there, and even a simple program takes hundreds of classes with many hundreds of methods.
The theory of OOP was great. Objects were supposed to be resilient and easy to use. Instead, they're brittle, the parameters you pass to them have to be exactly right, and every java upgrade breaks some programs. And every java object works differently, there's a learning curve there, and even a simple program takes hundreds of classes with many hundreds of methods.