Author Archive for David Byowitz

Brooks on Searle

What Brooks had to say about Searle’s argument was stupid, nonsensical, and very hypocritical. For starters, he mocks Searle’s argument for being based on the assumption that the human mind is not reproducible, which is a debatable hypothesis. However, Brooks’s own argument rests on the equally shaky assumption that the human mind is simply a machine. Then let’s move on to the fact that Searle’s Chinese Room example is not intended to imply, as Brooks states, that “no computer can understand Chinese,” but simply to demonstrate the difference between following rules and truly understanding something. He completely misrepresents Searle’s argument, presenting a nonsensical, unnuanced version of the paper that reads like a 5-year-old’s summary of a complex argument (which, I’m sure, is what Brooks was going for). Brooks’s argument is covered with derision and hostility towards Searle (”I wish he had insulted my robots like that. I would have taken it as a badge of honor”) and his ideas. Even more incredibly, however, he then accuses Searle’s argument of ridiculing instead of being based in logic: the exact words I would use to describe Brooks’s argument. He does, however, make one good point. While Searle in his Chinese Room is not conscious, it is entirely possible that the system is conscious: Searle could be analagous not to an unthinking robot, but to a single neuron within the brain. He doesn’t understand Chinese, but perhaps the room does. Personally, I don’t know what to think about this, although I want to agree with Searle because Brooks’s argument was so monumentally incompetent. I definately agree with Searle’s *actual* argument — that the Turing test is not a valid way to prove that a robot is intelligent, but I disagree with his second point, that AI is actually impossible. I think it’s possible, and I also think that, while the Turing test might not be the perfect test, making a robot that can pass the Turing test is certainly not something to sneeze at.

Waaaaay over my head…..

It was quite obvious from his lecture that Tim Berners-Lee is an incredibly gifted inventor, and a brilliant mind.   Unfortunately, that’s about all that was clear to me from his lecture.  For a speaker at a public lecture that was promoted for all students, he was remarkably opaque, often clouding (what I believe were) simple concepts with very high-level terminology.  I really don’t want to spend this entire blog discussing his lack of accessibility for the non-computer-programmers among us, but that’s really about all that I got out of his talk.  Okay, there were some things that I took away: the responsibilities that the individual has to the internet society, and at times I caught a vague glimmer of the promise of what he terms the Semantic Web.  But back to the shortcomings of his lecture: first off, in my opinion, he never clearly stated what the semantic web is.  Of course, he explained thoroughly what it would be able to do, how it would help, etc., but he never really offered a one-sentence “the semantic web is….” statement.  Of course, this is conceptually difficult to do (I mean, how would you define the web as it exists today in one sentence?), but I’d think that a man of his brilliance, with his understanding of the issues, would at least give it a try.  Additionally, the terminology he used in describing (what I think were) compressing formats would have been much clearer had he chosen to say what the different formats were, instead of inaccessibly talking about XML and RTF and the like, with half the audience thinking: “what?”  I want to end on a positive note, so I think it’s obvious he’s a brilliant guy, and I can’t wait to see how the Semantic Web turns out, even if I won’t be able to understand it.

Boolean logic and computation

Boolean logic is a very useful way of obtaining outputs from given inputs.  Combinations of its three basic gates - and gates, or gates, and not gates - can do pretty much anything that computation permits.  These three gates, additionally, are the cornerstones of modern computers.  Since Boolean logic is based on a binary system - inputs and outputs are either “true” or “not true” - they are ideally suited for computational purposes.  High voltage means “true,” while low voltage is “not true.”  Boolean statements are represented by combinations of gates, and gates can be combined in any way possible to form more complex operations.  For example, an “if A then B” phrase can be represented in Boolean logic by “(Not A) OR B,” and similarly, Boolean gates can represent pretty much anything that computation can do.  Boolean gates are the basis of modern computing, as combinations of them are used in making computer chips.
There are only two problems with Boolean gates.  Firstly, since Boolean gates are a form of computation, they have the same limitations that all other forms of computation have.  This is mainly an inability to “perceive” the world around them in the same qualitative way that humans do, but also includes an inability to perform preferential or subjective thought or decision-making.  The other problem that Boolean gates have is that they can be staggeringly inefficient: while it only takes two gates (NOT and OR) to represent an “if … then” statement, seemingly simple operations like addition of numbers, comparisons of numbers, and multiplication can take   thousands of gates.  While computer chips can hold millions and millions of gates in a very, very small space, it is still not very efficient for so many gates to be used for operations so simple.

pseudocode: making the world safe for programming

In ancient times, men worked together to construct a tower so high it would reach the heavens.  God, looking down, decided to destroy this ambition by making them all speak different languages.  Once they all spoke different languages, they could no longer communicate with one another, and the building of the tower stalled.  This situation is similar to that encountered in modern computer programming.  There are many different computer programming languages available: C++, Java, Basic, PHP, and hundreds more.  Each has its own advantages and disadvantages, but they all have one disadvantage in common: each is only one language.  Mastery of one language does not help one learn other languages, with their own unique vocabularies and syntaxes.  This situation is improved by the use of pseudocode.
As the name implies, pseudocode is a type of “false code:” it is a different code that doesn’t really “do” anything as such.  The way pseudocode works is that it has a specific set of commands, which can be used in many programs.  These commands, however, don’t go straight into the program: they need to be converted into the language that the program is written in.  Nothing is programmed in pseudocode, but pseudocode can help serve as a go-between standing between a user unfamiliar with a specific programming language and programs that use this language.  Pseudocode accomplishes this by using real-world terms like “move forwards,” “move backwards,” “turn,” and “spin,” instead of the high-level jargon required to perform these functions in most languages.
However, pseudocode also has some downsides.  Firstly, there is no uniform pseudocode language.  One person’s pseudocode can differ from that of others.  This turns it into another “Tower of Babel” – like situation, although one that is much easier to resolve since pseudocode is very different from other programming languages.  And secondly, pseudocode, while simple and versatile, is no substitute for knowing a programming language.  On the whole, however, pseudocode prevents much more trouble than it causes, and is a great way to simplify the complex world of computer programming.

Uncertainty Personified

Hi, I’m David Byowitz, and I’m a freshman in Mathey. The title of the post comes from my major, which is: I have NO idea. Everybody in my family has been asking me this since to got into Princeton last year, and a lot of my friends too (especially those smug ones who all have their lives planned out). Whenever they ask, I just shrug and make some kind of quiet grunting noise. They normally then say: “But what do you want to do with your life?” I respond with a shrug and a slightly different kind of grunting noise. About a year of this, once a week from my mom, once a month from my grandmother, and about once a day by friends or people I meet, has made me think that I should know at least something about my future, other than what courses I’m taking. But I don’t know. In the meantime, I’m doing a lot of fun stuff, such as writing for Tiger Magzine (Princeton’s oldest and finest humor publication), working as community service chair of the Mathey college counsel, taking [sadist’s delight] five classes (two ST’s, and I think I’m more of a humanities person, although I’m not really sure), and just generally having a good time. I’m taking this class because it seems interesting, and I’ve always wanted to learn about computers. And who can say no to a robot? I especially want to learn about the limitations of computers and cryptography: it’s incredible what computers can do, so I’d like to find out what they can’t, and in my first-semester math class, we talked a lot about RSA cryptography and I’d like to learn more about the field.

Update 3am, 2-13-06: I use a Mac PowerBook G4, the one OIT sells, and I love it