Computer Science, Off Course! Recap!
Well, this was a ride! So much fun to read a lot and to discuss with Hanna every week. Truly a gift to be able to make this! In this recap I want to explore a few themes that came up in more episodes.
What is programming and what are its goals?
One of the themes of our podcast, and of course of my work in a broader sense for a very long time, is what programming is, and what it is for.
Peter Naur (e01) had some lovely things to say about that, he sees programming very very broadly, as
the whole activity of design and implementation of programmed solutions. What I am concerned with is the activity of matching some significant part and aspect of an activity in the real world to the formal symbol manipulation that can be done by a program running on a computer.
I was reminded of this quote when a random comment dude on YouTube was complaining that I was confusing programming and software development (shouldn't a professor in CS know this...!).
But it is such a silly distinction. A writer does not only type on the computer, we all know this and it is not at all controversial. A writer thinks and revises, reads, interviews, etc. Why should we balkanize programming to such a large extent (I know why but that is for season 2 hahaha).
Laurel (e02) refined this on this a bit, when Laurel said:
Both theatrical design and interface design are aimed at creating representations of worlds that are like reality, only different.
I think Laurel is closer to reality than Naur, because when we program something, it is always somewhat different from the real world. Of course that is a theme we dive into more later also.
Dreyfus (e04) in a sense also comments on what the goals of programming are, which are according to him "based on the assumption that human beings produce intelligence using facts and rules". I think so much software is being developed from this perspective, this idea that whatever people do—like grading or teaching or uploading receipts, examples of software that we covered in the season a lot–can and must be precisely captured in rule and databases. But humans do not think like that, they can deal with vagueness. Computer systems could be like that (as I talk about my upcoming book too, you can read one brief version of chapter already where I go into more detail about this!)
Computer Science however, said Suchman (eo5), do not love the vagueness that is the human condition:
To the Cognitive Scientist [these are the AI researchers of the day] [...] vagueness is a fault to be remedied,
Dominance and control
Following the notion that programming forces the vague, messy, chaotic world into neat tables and lines of code, and the fact that programmers have so much power, it follows that programmers have a tendency to dominate and control.
As I mentioned in the episode on Weizenbaum (e06):
[A]bstraction means leaving out of account all those empirical data which do not fit the particular conceptual framework within which science at the moment happens to be working, which, in other words, are not illuminated by the light of the particular lamp under which science happens to be looking for keys.
This dominance and control has implications for software, as we saw in the episode on Mueller (e08) where he explained industrialization turned meaningful, rich work into small steps. We see that as better even then when people do things, as we learned from Dawson and Gallison (e09) [[1]] :
Machines were ignorant of theory and incapable of speculation: so much the better.
By abstracting, programming does that too. As such, programmers as the ideal henchmen of capitalism, breaking work, streamlining it, so computers can do it.
We see this (in.a slightly different form) also in the Turing episode (e03), where we, of course, discussed the silliness of Turing Test. Some good laughs on telepathy, but we also discussed how it became something like a goal for computer scientists to make something that "passes" the Turing test. The Turing Test, that turns something profoundly human like conversation into a measurable numerical goal, has influenced the way we think a lot. Discounting intonation and body language for example from the test, while understandable from a practical perspective, does something to our thinking that we rarely talk about.
But this effect is not just on people using software, also on the people building it, on people that program all the time. In my upcoming book (info in Dutch now available!) I cite another passage of Weizenbaum (e06):
[Programs] obey their laws and vividly exhibit their obedient behavior. No playwright, no stage director, no emperor, however powerful, has ever exercised such absolute authority to arrange a stage or a field of battle and to command such unswervingly dutiful actors or troops.
And another quote by Turkle (e07), whoe, as we heard in the episode studied hobbyist programmers and students at MIT, who said that
building and programming computers was the most powerful intellectual and emotional experience of their lives, an experience that changed the way they thought about the world, about their relationships with others, and, most strikingly, about themselves.
AIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAI
In so many of our episodes, of course we talked about AI. Some authors directly talk about thinking machines themselves. Laurel for example (e02):
Can computers think? [They] don’t have to think, they simply have to provide a representation from which thought may be inferred.
Turkle (e07) reflects on what it means to be conversational:
Dialogue is not just linearized turn-taking in which I say something, you go think about it, then you say something, I go think about it, and so on.
What we do, said Suchman (e05), is situated in the real world, and "comprises necessarily ad hoc responses to the actions of others and to the contingencies of particular situations. [We need] detection, repair or exploitation of differences in understanding."
People can "just" deal with such differences, said Dreyfus (e04):
Our sense of the situation [...] allows us to exclude most of [different] possibilities without explicit consideration. We shall call the ability to narrow down the spectrum of possible meanings as much as the situation requires "ambiguity tolerance."
But in other places, AI just came to mind as a clear example of things the authors of the books and papers talked about, such as with Winner (e10) who examined how technologies shapes the world around us [[2]] :
What matters is not technology itself, but the social or economic system in which it is embedded. This maxim [...] can be called the social determination of technology [...] serves as a needed corrective to those who focus uncritically on such things as "the computer and its social impacts" but who fail to look behind technical things to notice the social circumstances [...].
What a loss that computer science people learn about such things!!
[[1]]: Even though they were not speaking about computers!
[[2]]: This paper influenced me so much that I also wrote my newspaper column on it last week.
Member discussion