We started with the idea of code — data consisting of instructions in a special language. Code can express an algorithm, a process consisting of instruction steps. That implies an engine that understands the code language and executes the steps in the code.
Last time we started with Turing Machines, the abstract computers that describe algorithms, and ended with the concrete idea of modern digital computers using stored-programs and built on the Von Neumann architecture.
Today we look into that architecture a bit…
Many offices feature “casual Friday” in acknowledgement that today our attention begins to shift towards the weekend. (When I started with TC in 1980, ties were required. When I retired this year, “business casual” was the norm. I worn jeans and polo shirts the last half-dozen years or so.)
In the same way, today the focus here shifts from the tough and chewy Sideband material to something softer and easier to digest. I have what amounts to a bit of a rant, but a mild-mannered one of minor import. It’s just one of those little things that’s annoyed me in a small way for a long time. (But it turns out that it’s one of those things that actually have good reason!)
It’S aBoUt ThIs ThInG cAlLeD cAsE-sEnSiTiViTy!
Computer Programming is hard! It’s at least as hard as what commercial architects do, and I will argue that it’s as intellectually difficult as what doctors and lawyers do.
Many people think it’s easy, because they know some nine-year-old who “programs,” but there’s a difference between fooling around with the computer and building good software applications. Here’s the deal.
As Homer Simpson so eloquently puts it, “D’oh!!”
It seems to be an iron-clad irony of writing that the number of proof reads required to find all errors in your writing is:
PR = N + 1
Where ‘N’ is the actual number performed. This rule appears to apply regardless of the actual value of ‘N’.