Archive for November, 2009

“Oddly enough, it’s the scientists who had the most to do with redefining beauty.”
— author Paul Schullery

I watched parts of Ken Burns’s new documentary series “The National Parks: America’s Best Idea” on PBS. One part talked about George Melendez Wright, a biologist who through his tireless efforts got the national parks to change their policy towards wild animals in the 1930s. Park policy had been to treat them like zoo animals. Some were caged for public viewing, and feeding sites were set up to attract animals to strategic locations so that people could see them. Wright made the case against it, saying that this policy detracted from the beauty of the natural experience for visitors. Paul Schullery said the above quote in that segment, and I felt a tinge of anger. “Oddly??”, I thought. I felt disgusted. There’s nothing odd about it. It’s just that most Americans don’t recognize that science can open up a new perception to beauty. I’m using this post as an illustration of the beauty of science in an area I’ve been studying as a hobby.

I’ve been looking at the issue of climate change from a scientific perspective for several years now. When I was a kid I was very interested in severe weather phenomena: tornadoes and hurricanes. I wanted to be a meteorologist. Had I gone through with that I probably would’ve been one of those storm chasers. But then I found computers… Anyway, my interest in atmospheric science has remained.

I’ve looked at this subject long enough to know that just the study of what affects our climate is highly controversial within the field. Unfortunately, it has a significant amount of dogma in it, and any new theories that break with it have a hard time even being published. This is the main reason my interest in this area of research has been reinvigorated. There is legitimate climate research going on in the field, but I’ve had this increasing sense as I’ve kept track of it that the field is being used for non-scientific purposes, and at the expense of science. I’ll get into that in a future post.

A new theory, proposed by Danish scientist Henrik Svensmark, that’s been published just recently, proposes a radical idea: Our climate is under the influence of celestial phenomena. The theory is rather complex. Sometimes it’s portrayed as saying that our climate is influenced by the Sun, but that’s not the full story.

The theory contains three concepts:

  • The Sun’s magnetic field goes through active and dormant cycles.
  • The position of the solar system in the Milky Way changes with time. It has an orbit around the center of the galaxy (though our solar system is positioned near the edge of the galaxy). As it orbits, it sometimes goes through spiral arms, which contain many stars, some of which go nova. At other times it’s in between these arms, in relatively empty space.
  • Cosmic rays, which come from exploding stars, have a direct influence on the cloudiness of our atmosphere, and thereby heavily influence the cooling of our climate.

The third point is what’s most controversial about this theory. Svensmark claims that cosmic rays have a much greater influence on our climate than carbon dioxide (CO2).

The theory goes that there is an interaction between the three components. When the solar system is traveling through a spiral arm, there is more opportunity for cosmic rays to reach our atmosphere and create cloudiness. When it’s traveling in between arms, there are less cosmic rays. At the same time, when the Sun is in an active period, the solar wind diverts cosmic rays away from the Earth, creating less cloudiness, and a warmer climate. When it’s in a dormant period, cosmic rays reach the Earth more freely, creating cloudiness, and a cooler climate.

Svensmark claims that his theory can explain periods of climate that are evident in the geologic record, which go back hundreds of thousands of years, and the climate we experience in modern times.

This is a theory that still needs to go through the scientific process of rigorous review by other scientists. So at this point I’m going to consider it speculative, but worth considering.

I found the following video on “The Cloud Mystery.” It features other scientists who are supporting Svensmark’s work: Nir Shaviv, an astrophysicist at Hebrew University in Jerusalem; and Eugene Parker, a solar astrophysicist at the University of Chicago. Svensmark has also published a book, The Chilling StarsHere is an article on The Resilient Earth blog about this subject.

There’s a point of clarification I should make. Nir Shaviv talks about measuring Carbon-14 in sedimentary deposits. My understanding is that Carbon-14 can be used as a proxy for cosmic rays when looking at geologic records, since Carbon-14 is formed when nitrogen in the atmosphere is struck by cosmic rays. If you’re a science maven like I am, you often hear about Carbon-14 in relation to radiocarbon dating some organic material found at archaeological sites in order to date a find.

What they’re saying is when matched up against the temperature record (through other proxies, though I’m less familiar with them), there seems to be a good match between the trends in Carbon-14 levels and temperature trends in the same time period.

The comment that Svensmark makes about the whiteness of the low clouds is significant. We experience full-spectrum light as white light. So the fact that the low clouds appear white means, as he says, that they are reflecting most of the Sun’s rays that hit them back out into space.


The one disappointing thing to me about this presentation is that the proponents of this theory sound as dogmatic about it as other scientists in this field are about CO2 affecting global warming. I much prefer the stance of, “Given our current level of ignorance, what we think we know is…”. Even so, I find this idea that there’s a unity between the universe and our Earth, and that it affects something we experience every day to be really beautiful. It makes sense to me, but I’m going to withhold belief, and let the scientific process vet it out.

Science can be beautiful. I think a lot of people miss that. They think that scientists live their lives in sterile labs in white coats, running experiments. Some do that sort of thing, but the exciting stuff in the natural sciences happens when people go out in nature and “get their hands in it.”

There’s a wonderful site I found recently called Symphony of Science that takes lyrical quotes from some prominent scientists, modifies them so they sound like they’re singing, and sets it to music. It sounds a bit alien, but beautiful at the same time. This article is my opinion alone, and I make no claim that the scientists portrayed in this video endorse this theory hypothesis. I thought this “song” would put a nice “exclamation mark” on the subject, though.

“We are all connected” from symphonyofscience.com

Read Full Post »

A while back I wrote a post on the death of the computer chain store, and I speculated a bit on where the PC was going:

The PC business is definitely going through a transition. Somehow I think the future of the PC is your mobile phone…or maybe your TV. It will practically disappear. In some ways this makes sense, but until the I/O interface is figured out so that people can actually use it in a sophisticated way the prospect makes me cringe.

I remember thinking about how the “mobile phone” would take over the PC’s functions. I wish I had written this in my article, because it’s less credible for me to talk about this now. I honestly did think about this at the time. What came to mind was “projection”, that the small computer you would wear would somehow project a screen onto a surface (so that we wouldn’t have to deal with the small screens on mobile phones), detect your finger movements for manipulating objects on the screen (in place of a mouse), and it would project a keyboard onto a surface so that you could type on a keyboard “anywhere”. You wouldn’t have to carry a physical keyboard with you. It would detect all this through one or more cameras. I thought of the “computer you wear” as the phone you carry with you. Well, a young engineer at MIT, Pranav Mistry, came up with such a thing. Only it looks more like a necklace. He calls it “Sixth Sense” (h/t to Tammy Bruce). I’m not taking credit. Obviously thinking of it and implementing it are very different. Implementation takes more skill and effort. Take a look:

Mistry takes it farther than what I had thought of, integrating physical objects and media into the digital world, and vice-versa. It is a further optimization of the idea of computing = digital media, though my hat’s off to Mistry for doing it in a very innovative way that gets us beyond having to use armatures to manipulate digital stuff. Now if we could just integrate programming into this new idiom somehow… Hmmm. Some new ideas are percolating up…

Read Full Post »

Once again, I return to the technique of using a metaphor created by a recent South Park episode (Season 13, Episode 10) to illustrate the way things are (in an entirely different subject). Warning: There is adult, offensive language in the video clips I link to below. My usual admonition applies. If you are easily offended, please skip them.

The episode is about the popular perception of wrestling, promoted by the WWF, vs. the real sport. It uses the same theme as an earlier episode I used, which satirized Guitar Hero: The pop culture is taking something which involves discipline and hard work, with some redeeming quality, and turning it into something else entirely with no redeemable value. Rather than challenging us to be something more, it revels in what we are.

This is a follow-up post to “Does computer science have a future?” It fleshes out the challenge of trying to promote a real science in computing…with some satire.

I’ve been getting more exposure to the evolution of CS in universities, which extends to the issue of propping up CS in our high schools (which often just means AP CS), though there’s been some talk of trying to get it into a K-12 framework.

University CS programs have been hurting badly since the dot-com crash of 2001. Enrollments in CS dropped off dramatically to levels not seen since the 1970s. We’re talking about the days when mainframes and minicomputers seemed to be the only options. It’s not too much of a stretch to say that we’ve returned to that configuration of mainframes and terminals, and the thinking that “the world needs only 5 computers.”

After looking at the arc of the history of computing over the last 30 years, one could be excused for thinking that an open network like the internet and an open platform like the personal computer were all just a “bad trip,” and that things have been brought back to a sense of reasonable sobriety. This hides a deeper issue: Who is going to understand computing enough to deal with it competently? Can our universities orient themselves to bring students who have been raised in an environment of the web, video game consoles, iPods, and smart phones–who have their own ideas about what computers are–to an understanding of what computing is, so they can carry technological development forward?

Going even deeper, can our universities bring themselves to understand the implications of computing for their own outlook on the world, and convey that to their students? I ask this last question partly because of my own experience with computing and how it has allowed me to think and perceive. I also ask it because Alan Kay has brought it up several times as an epistemological subject that he’d like to see schools ponder, and in some way impart to students: thinking about systems in general, not just in computers.

The point of the internet was to create a platform upon which networks could be built, so they could be used and experimented with. It wasn’t just built so that people could publish porn, opinion, news, music, and video, and so that e-commerce, information transfer, chat, and internet gaming could take place.

The personal computer was not just created so that we could run apps. on it, and use it like a terminal. It was created with the intent of making a new medium, one where ideas could be exchanged and transactions could take place, to be sure, but also so that people could mold it into their own creation if they wanted. People could become authors with it, just as with pen, paper, and the typewriter, but in a much different sense.

But, back to where we are now…

Most high schools across the country have dropped programming courses completely, or they’re just hanging on by a thread (and in those cases an AP course is usually all that’s left). The only courses in computer literacy most schools have offered in the last several years are in how to use Microsoft Word and Excel (and maybe how to write scripts in Office using VBA), and how to use the web, Google, and e-mail.

CS departments in universities are desperate to find something that gives them relevance again, and there’s a sense of “adapt or die.” I’ve had some conversations with several computing educators at the university and high school level about my own emerging perspective on CS, which is largely based on the material that Alan Kay and Chris Crawford have put forward. I’ve gotten the ear of some of them. I’ve participated in discussions in online forums where there are many CS professors, but only a rare few seem to have the background and open mindedness to understand and consider what I have to say. These few like entertaining the ideas for a bit, but then forget about it, because they don’t translate into their notions of productive classroom activities (implementations). I must admit I don’t have much of a clue about how to translate these ideas into classroom activities yet, either, much less how to sell them to curriculum committees. I’m just discovering this stuff as I go. I guess I thought that by putting the ideas out there, along with a few other like-minded people, that at least a few teachers would catch on, become inspired, and start really thinking about translating them into curriculum and activities.

I’ve been getting a fair sense from afar about how hard it is for computing educators to even think about doing this. For one, academics need support from each other. Since these ideas are alien to most CS educators, it’s difficult to get support for them. I’ve been surprised, because I’ve always thought that it’s the teachers who come up with the curriculum, and in this “time of crisis” for CS they would be interested in a new perspective. It’s actually an old perspective, but it hasn’t been implemented successfully on a wide scale yet, and it’s a more advanced perspective than what has been taught in CS in most places for decades.

The challenge is understandable to me now at one level, because any alternative point of view on CS, even the ones currently being taught in some innovative university programs, run into the buzz saw of the pre-existing student perspective on computing (prepare, there’s an analogy coming):


Trying to teach anything akin to “the real thing” (using computing in deep and creative ways to create representations of our ideas and test them, and possibly learn something new in the process) tends to get weird looks from students (though not from all):


There’s a temptation on the part of some to take away from this experience the idea that the material they’re presenting is no longer relevant, and that the students’ perspectives should be folded into what’s taught. I agree with this up to a point. I think that the presentation of the material can be altered to help students better relate to the subject, but I draw the line at watering down the end goal. I think that subjects have their own intrinsic worth. Rather than trying to find a way to help more students pass by throwing out subjects that seem too difficult, there should instead be remedial support that helps willing students rise up to a level where they can understand the material. To me, the whole idea of a university education is to get students to think and perceive at a more sophisticated level than when they came in. CS should be no different. You’d be surprised, though, how many CS professors think the more important goal is to teach only about existing technology and methodologies.

Talking to most other CS educators at the high school and university level has been an eye-opening and disheartening experience, because we get our terminology confused. I mean to say one thing, and to my amazement I get people who honestly think I’m saying the complete opposite. In other cases we have a different understanding of the same subject, and so the terms we use get assigned different meanings, and I come to a point where I realize we can’t understand each other. The background material for where we’re coming from is just too different.

Many CS professors (whom I have not met, though I’ve been hearing about them) apparently think all of this “real thing” stuff is quaint, but they have real work to do, like “training IT professionals for the 21st century.” Phah! Guess what, people. Java is the new Cobol (in lieu of Fortran, no less…). Web apps. are the new IBM 3270 apps. Remember those days? Welcome to the 1970s! And by the way, isn’t CS starting to look like CIS? Just an observation…

(A little background on the clip below: In the story, after the failed attempt at learning real wrestling (in the clip above), the South Park kids form their own “wrestling show,” which is just play acting with violence, complete with the same scandal-ridden themes of the “WWE wrestling” they admire so much. A bunch of “redneck” adults in South Park gather around to watch in rapt attention.)


Note I am not trying to call anyone “stupid” (the wrestling teacher in South Park has a penchant for calling people that), though I share in the character’s frustration with people who are unwilling to challenge their own assumptions.

I get a sense that with many CS professors the bottom line is it’s all about supporting the standard curriculum in order to turn out what they believe are trained IT professionals who are capable of working with existing technology to create solutions employers need. I wonder if they’ve talked to any software developers who work out in the field. I’m sure they’d get an earful about how CS graduates tend to not be of high quality anymore.

The faculty support their departmental goals and the existing educational field. The belief is, “Dammit! We’ve gotta have something called ‘CS’, because something is better than nothing.” This ends up meaning that they accommodate the dominant perspective that students have on computing. This ultimately goes back to the dominant industry vision, which now has nothing to do with CS.

When I’ve found a receptive CS professor, what I’ve suggested as a remedy, along with “moving the needle” back to something resembling a real science, is that the CS community needs to invent educational tools: Their own educational artifacts, and their own programming languages. This still goes on, though it’s not happening nearly as much as it did 40 years ago. I think that the perspectives of students need to be taken into consideration. The models used for teaching need to create a bridge between how they think of computing coming in, and where the CS discipline can take them.

The standard languages that most CS departments have been using for the past 14 years or so are C++, and now Java. C++ came from Bell Labs. Java came from Sun Microsystems. Both were created for industrial use by professionals, not people who’ve never programmed a computer before in their lives! In addition, they’re not that great for doing “real CS”. I’ve only heard of Scheme being recommended for that (along with some select course material, of course). I haven’t worked with it, but Python seems to get recommended from time to time by innovative people in CS. It’s now used in the introductory CS course at MIT. My point is, though, there needs to be more of an effort put into things like this in the CS academic community.

What’s at stake

In my previous post I link to above I asked the question, which Alan Kay asked in his presentation, “Does CS have a future?” I kind of punted, giving a general answer that’s characterized the field through the last several decades. I figured it would continue to be the case. This is going to sound real silly, but this next scene in South Park actually helped me see what Kay was talking about: We could lose it all! The strand that spans the gulf between ignorance and “the real thing” (a connection which is already extremely tenuous) could snap, and CS would be all but dead:


What came to mind is that it wouldn’t necessarily mean that the programs called “CS” would be dead, but what they teach would end up being something so different and shallow as to not even resemble the traditional CS curriculum that’s existed for 30+ years.

What I’ve learned is there’s a lot of resistance to bringing a more powerful form of CS into universities and our school system. This is not only coming from the academics. It’s also coming from the students. This is because, ironically, it’s seen as weak and irrelevant. I’ve already given you a feel for where the student perspective is at. Alan Kay identified a reason why most CS academics don’t go for it: They think what they’re teaching is it! They think they’re teaching “real CS.” They have little to no knowledge of the innovative CS that was done in the 1960s and 70s. They couldn’t even recall it if they tried, because they never studied it. They’re historically illiterate, just like our industry.

High school “CS” teachers (why not just call their courses “programming.” That’s what they used to be called) are hapless followers of the university system. They’re less educated than the CS professors about what they do. From what I’ve heard about the standards committees that govern curriculum for the public schools, they’d have no clue about what “real CS” is if it was shown to them. This isn’t so much a gripe of mine as an acknowledgment that the public schools are not designed for teaching the different modes of thought that have been invented through the ages. There’s no point in complaining about a design, except to identify that it’s flawed, and why. The answer is to redesign the system and then criticize it if the intent of the design is not being met.

My sense of the historical ignorance in our field, having been a part of it since I was a teenager, is people take it as an article of faith that there’s been a linear progression of technological improvement. So why look at the old artifacts? They’re old and they’re obviously worse than what we have now. That’s the thinking. They don’t have to verify this notion. They know it in their bones. If they’re exposed to technical details of some of the amazing artifacts of the past, they’ll find fault with the design (from their context). How the design came about is not seen as valuable in and of itself. Only the usefulness that can be derived from it is seen as worthy. Most CS academics are not too distant from this level of ignorance. I get a sense that this comes from their own sense of inadequacy. They know they couldn’t design something like it. They wouldn’t expect themselves to. As far as they’re concerned electrical engineers and programming “gods” created that stuff. They also tend to not have the first clue about the context in which it was designed. They’ll pick out some subsystem that’s antiquated by what’s used now and throw the baby out with the bathwater, calling the whole thing worthless, or at best an antique that should be displayed dead in a museum. You may get the concession out of them that it was useful as a prototype for its time, but what’s the point in studying it now? The very idea of understanding the context for the design is an alien thought to them.

The designs of these old systems weren’t perfect. They were always expected to be works in progress. What gets missed is the sheer magnitude of the improvement that occurred, the leaps in thinking about computing’s potential, and what these new perspectives allowed the researchers to think about in terms of improving their designs, the quality of which were orders of magnitude greater than what came before them (that point is often missed in modern analysis). Technologists often have the mindset of, “What can this technology do for me now?” They take for granted what they have, as in, “Now that I know how to use and do this, that old thing over there is ancient! My god. Why do you think that thing is so amazing?”

Another thing I’ve seen people dismiss is the idea that the people who created those amazing artifacts had an outlook that’s any different from their own, except for the fact that they were probably “artists”. That’s a polite way of dismissing what they did. Since they were so unique and “out there,” many of their ideas can be safely ignored, rather like how many in the open source community politely dismiss the ideas of the Free Software Foundation, and Richard Stallman. The stance is basically, “Thanks, but no thanks.” Yes, they came up with some significant new ideas, but it’s only useful to study them insofar as some of their ideas helped expand the marketability of technology. Their other ideas are too esoteric to matter. In fact we secretly think they’re a little nuts.

As I have written about on this blog, I share Kay’s view that computing has great historical and societal significance. What I’ve come to realize is that most CS academics don’t share that view. Sure, they think computing is significant, but only in terms of doing things faster than we once did, and in allowing people to communicate and work more efficiently at vast distances. The reasons are not as simple as a closed-mindedness. Kay probably nailed this: Their outlook is limited.

What it comes down to is most computer science academics are not scientists in any way, shape, or form. They’re not curious about their field of work. They’re not interested in examining their own assumptions, the way scientists do. Yet they dominate the academic field.

I’ve given some thought to some analogies for the CS major, as it exists today. One that came to mind is it’s like an English major, because the main focus seems to be on teaching students to program, and to do it well. As I’ve said before, programming in the realm of computing is just reading and writing. Where the English major excels beyond what CS teaches is there’s usually a study of some classics. This doesn’t happen in most CS curricula.

In discussions I’ve heard among CS academics, they now regard the field as an engineering discipline. That sounds correct. It fits how they perceive their mission. What generally goes unrecognized is that good engineering is backed by good science. Right now we have engineering backed by no science. All the field has are rules of thumb created from anecdotal evidence. The evidence is not closely scrutinized to see where the technique fits in other applications, or if it could be improved upon.

I am not arguing for a field that is bereft of an engineering focus. Clearly engineering is needed in computing, but without a science behind it, the engineering is poor, and will remain poor until a science is developed to support it.

My own vision of a science of computing could be described as a “science of design,” whose fundamental area of study would be architectures of computing. Lately Alan Kay has been talking about a “systems science,” which as he talked about in the presentation I link to above, includes not just architecture, but a “psychology of systems,” which I translated to mean incorporating a concept of collective “behavior” in a system of interactive systems. Perhaps that’s a shallow interpretation.

As you can tell, I now hold a dim view of traditional CS. However, I think it would be disruptive to our society to just say “let it die”. There are a lot of legacy systems around that need maintaining, and some of them are damn important to our society’s ability to function. There’s a need for knowledgeable people to do that. At the same time, Kay points ahead to the problem of increasing system complexity with poor architectural designs. It’s unsustainable. So it’s not enough to just train maintainers. Our technological society needs people who know how to design complex systems that can scale, and if nothing else, provide efficient, reliable service. That’s just a minimum. Hopefully one day our ambitions will go beyond that.

The discussion we’re not having

I happened to catch a presentation on C-SPAN last month by the National Academy of Engineering and the National Research Council on bringing engineering education into the K-12 curriculum (the meeting actually took place in September). I’m including links to the two-part presentation here, because the people involved were having the kind of discussion that I think that CS academics should be having, but they’re not. The quality of the discussion was top notch, in my opinion.

Engineering in K-12 Education, Part 1, 3 hours

Engineering in K-12 Education, Part 2, 2 hours

What was clear in this presentation, particularly in Part 2, was that the people promoting engineering in K-12 have a LOT of heavy lifting to do to achieve their goals. They are just at the infant stage right now.

Readers might be saying, “How can they possibly think of teaching engineering in primary school? What about all the other subjects they have to learn?” First of all, the organizations that held this event said that they weren’t pressing for adding on classes to the existing curriculum, because they understand that the existing school structure is already full of subjects. Rather, they wanted to try integrating engineering principles into the existing course structure, particularly in math and science. Secondly, they emphasized the engineering principles of design and systems thinking. So it didn’t sound like it would involve shoving advanced math down the throats of first graders, though teaching advanced math principles (again, principles, not drill and practice) in a fashion that young students can understand wouldn’t be such a bad idea. Perhaps that could be accomplished through such a curriculum.

I had a discussion recently with Prof. Mark Guzdial, some other CS professors, and high school teachers on his blog, related to this subject. Someone asked a similar question to what I posed above: “I agree [with what you say about a real science of computing]. But how in the world do you sell that to a K-12 education board?” I came to a similar conclusion as the NAE/NRC: Integrate CS principles wherever you can. For example, I suggested that by introducing linguistics into the English curriculum, it would then be easier to introduce concepts such as parse trees and natural language processing into it, and it would be germane. Linguistics is an epistemological subject. Computing and epistemology seem to be cousins. That was just one example I could think of.

If CS academics would actually think about what computing is for a while, and its relevance to learning, they wouldn’t have to ask someone like me these questions. I’m just a guy who got a BSCS years ago, went into IT for several years, and is now engaged in independent study to expose himself to a better form of CS in hopes of fulfilling a dream.

Universities need to be places where students actually get educated, not just “credentialed.” Even if we’re thinking about the economic prospects of the U.S., we’re fooling ourselves if we think that just by handing a student a diploma that they’re being given a bright future. Our civil and economic future is going to be built on our ability to think, perceive, and create, even if most of us don’t realize it. Our educational systems had best spend time understanding what it will take to create educated citizens.

Read Full Post »