Binary Digits
Sep. 1st, 2024 08:34 pmSay you were a young college student taking a programming class, and your aging computer science professor’s first assignment was for each student to write a program to print out their name and telephone number.

That wouldn’t be the least bit sus, now would it?
Apparently, back in 1984 it wasn’t! Lemme tell you a story…
I was recently bedridden with both a back injury and my first case of Covid. And having already purged many of my old books, I really had to stretch (metaphorically, of course) to find something to entertain myself with.
One book that followed me through my migrations – from Maine to (five different locations in) Massachusetts, then Pittsburgh, and finally Texas – was a college textbook that was highly cherished by most of the CS majors I knew back then: George Struble’s “Assembler Language Programming for the IBM System/370 Family”.
Yes, I was so bored that I started re-reading a 40 year old textbook on one of the driest topics in all of computer science, for a computer that no longer exists!
Chapter 1 is a snoozer (not unlike the rest of the book). It’s all about how mainframe computers used combinations of ones and zeroes to encode numbers and characters. Like any textbook, the end of Chapter 1 had a dozen exercises for the student to solve, to promote active learning and demonstrate a practical understanding of what’s been taught.
Here’s the text of Problem 1.3: (emphasis mine)
Each byte of storage in the IBM System/370 contains eight bits of information and one parity bit. The parity bit is redundant; it is used only to guarantee that information bits are not lost. The parity bit is set to 1 or 0 so as to make the sum of 1’s represented in the nine bits an odd number. For example, the character / is represented in eight bits (in EBCDIC) by 01100001. The parity bit to go with this character will be 0, because there are three 1’s among the information-carrying bits. The character Q is represented by 11011000, and the parity bit is set to 1, so there will be five 1-bits among the nine. These representations with parity bit (we call this “odd parity”) are also used in magnetic tape and disk storage associated with the IBM System/370. Using the character representation table of Appendix A, code your name and telephone number in eight-bit EBCDIC representations, and add the correct parity bit to each character.
That’s right: on just the third exercise in the entire book, Struble is asking the student to provide their personal contact info, presumably to their instructor. I can only imagine the repercussions if a professor presented this exercise to his or her class today.
To be fair, when Struble’s book came out (in 1969, then revised in 1974 and again in 1984) such an assignment simply wouldn’t have set off the red flags it does today. The author and his editors probably felt safe in the assumption that women wouldn’t be taking hard-core mainframe assembler classes. And for the odd exception, what harm could possibly come from a young coed revealing her phone number to an upstanding member of the academic community?
What harm, indeed.
I’m not one to condemn past generations for not living up to more modern social norms, but still… Today that exercise just screams of inappropriateness and invasion of privacy. For me, reading that was a head-scratching moment of astonishment from an unexpected source, a true blast from my past.