Category Archives: Computer Science

Soap: Extraordinary Ordinary Things

I remember as a child my parents always insisted I wash my hands with soap before sitting down to eat. I have never forgotten this, and sometimes get odd looks because of it.

In a restaurant, I always go wash my hands before the food is delivered even though no one else at the table does. Worse, when I visit friends in their homes, I do the same thing. I imagine they must think I have some kind of mania about cleanliness on a par with Lady Macbeth: “Out, out, damned spot!” While the good lady does not explicitly mention soap, there is a Lady Macbeth soap on the market anyhow. I don’t have a cleanliness mania. But I do have due consideration for the advice I received from my parents—and continue to receive from the medical community.

Continue reading Soap: Extraordinary Ordinary Things

In Praise of Spaghetti Code

Spaghetti code is not getting any respect. Software experts denigrate it; coding classes avoid it like the plague; and when students go out into the world, they spend inordinate amounts of time trying to follow their mentors’ instructions. This unalloyed disparagement of spaghetti code is unfortunate, because we owe so much to it. Continue reading In Praise of Spaghetti Code

Is Computing in Reverse the Next Big Thing?

As Moore’s Law runs out of steam, and fabrication of Boolean circuits on silicon appears to be reaching its limits, some computer scientists and physicists are looking beyond the limits of current computing to “reversible computing.” That is, instead of one-way circuits that produce a deterministic output from given inputs, reversible computing works both ways: Inputs can be obtained from outputs by running the circuits in reverse. Generally speaking, computation runs in one direction, producing outputs from inputs, without the ability to run backwards and compute inputs from outputs. Continue reading Is Computing in Reverse the Next Big Thing?