Thursday, January 29, 2015

Who thinks Computer Science is less relevant than Physics?

Find all the interesting Computer Science in this picture

Computer Science is different from Physics; we don't have examples that we can bring to a presentation that will be relevant to a large population.

If that's the case we're screwed. 

Recently, I heard someone say that. If I believed him I might as well hang it all up and go live on a dairy farm. I wanted to do that after I graduated from high school but my parents had other ideas in mind. I still have a soft spot for dairy cows but I'm in computer science for the long haul now and I don't believe him.
Computers are ubiquitous; they hold together our global economy. What aspect of your daily life does not depend in some way upon computer systems or software? Hmm? Let's see...brain dump...

Get up in the morning, eat a banana, eat a bowl of cereal, answer email, have a conference call with a client, take part in a virtual meeting, drive in my car to another meeting, work out of a coffee shop for a while, take part in a twitter conversation, brainstorm a conference presentation, respond to an email from my mother, pay some bills, make a doctor appointment, remind clients that they need to send out the surveys I created for them... is it lunch time yet?

Which of those activities ARE NOT tightly connected to the global computing infrastructure and which of those types of activity ARE NOT relevant to a large population? Let's say YES for connected and NO for not connected.

Get up in the morning: if I use my smart phone to set the alarm: YES

Eat a banana: that banana arrived from Ecuador in the San Diego harbor on a boat that was almost entirely loaded and unloaded by robots: YES

Eat a bowl of cereal: the bowl was hand thrown by an artist in Texas, so perhaps: NO; the cereal was grown, harvested, packaged and shipped efficiently (or perhaps not) using vast software tracking systems: YES

Answer email: YES (need I say more?)

Have a conference call/take part in a virtual meeting: Skype, Google+, the beep beep beep of telephone software: YES

Drive my car: The vehicle would gather dust in a nearby canyon without that little chip the mechanics charge an arm and a leg to plug into for diagnostic purposes: YES

Work out of a coffee shop: Free wi-fi: YES. Computerized receipt generation: YES

Twitter conversations, answering mom's email, online bill pay, annoying automatically generated paper bills anyway, making appointments via the tangled electronic phone tree: YES

Creating surveys, and emailing clients... ditto conference call note above. YES

Now, is any of this relevant to a large population listening to our hypothetical presentation? In other words are these types of activities interesting beyond my and my clients' and colleagues' worlds? Of course. Why wouldn't they be? Let's give people credit.

If one thinks that economics, history, communication, relationships, nature, biology, and caffeine aren't relevant to a large swath of the population, then we aren't thinking very creatively. We all eat, drink and communicate. Most of us drive, make appointments and (however regretfully) pay bills. 

The issue of relevance is more than an intellectual exercise, it is a communication exercise. 

If computer scientists, educators, researchers, want to make our field relevant, first we have to see for ourselves that computer science is relevant and interesting. 

We must believe that computer science is, can be, should be, relevant and interesting to a large population. 

We have to get out there and tell the story of the relevance of computer science in a way that speaks to our audience.  

 Or else we're screwed.

Tuesday, January 13, 2015

Having a Technical Impact Goes Beyond the Bits

Technical Communication Failure
I'm contemplating the human and personal side of science, particularly computer science, more than ever. Both of the courses I taught this past Fall at Harvey Mudd College, Computer Science Education Research (co-taught with Colleen Lewis) and Great Papers in Computer Science, had a pervasive emphasis on the human and the personal along with the technical. I posted about the CS Ed Research class earlier this year, tweeted about it regularly, and my next column in ACM Inroads Magazine (March 2015) will be about that course.

The Great Papers class was perhaps a poster child for the how and the why we need to understand the non-technical factors swirling in and around computer science, and our need as professionals in the field to be able to communicate well about them to diverse audiences. We should talk more about how scientific and technological advances are communicated, understood, accepted or rejected. I suspect most of us recognize that those seminal articles we may take for granted had a significant impact only partially because of their technical merit.

It's about being the right person, in the right place, at the right time, saying the right thing. That last point (saying the right thing) is where we find the technical most heavily, although even there, the "right thing" is more nuanced than the bits and bytes of the matter. If we pause and take a look at the contextual big picture of any one of the technical innovations that have shaped our field, we see the truth of the matter. A range of social, historic, economic and psychological factors either inhibit or increase the visibility and impact of any technical work.

For example, in the domain of computer architecture, Howard Aiken's  "The Proposed Automatic Calculating Machine" (1937)  deservedly takes a spot in the annals of the most impactful papers in the field. Yet the paper that led to the creation of the Harvard Mark I was not a shoo-in; if not for a complex series of historical and economic factors the ideas presented in the proposal might well have languished in the "Don't call me, I'll call you" dustbin.  Then there was Aiken's ability to assemble a rock solid team. Grace Hopper, herself no intellectual or personal pushover, was on that team. Aiken did not succeed in a vacuum.

Psychological factors leading to technological change are blindingly obvious in the infamous 1968 Dijkstra Letter to the Editor of the Communications of the ACM entitled "Go To Statement Considered Harmful". Dijkstra effectively and efficiently communicated the potential negative technical consequences of an unbridled use of the "Go To" statement. However, he used arguably tactless language, upset a lot of people, and his comments went viral 1960s style*.  Dykstra wasn't the first person to argue against using Go To statements but he often gets the credit for the ideas that led to eventual changes in coding practice.

By spending a semester delving into issues such as these, I hope that students will come away with more than increased intellectual breadth and depth in the field of CS. I hope they will have a greater understanding of the deep connections between society and technological success and failure. I hope they will appreciate the importance of successful communication about complicated technical subject matter to technical and non-technical audiences alike. It's not just for people in Marketing - it's for them too.

I just got back my teaching evaluations - feedback to me about where I successfully communicated all these things to them and where there is room for work. It cuts both ways - I'm feeling good about that.

*In class I make a point to spend a few minutes discussing why, in spite of Dijkstra's technical brilliance and fame, pissing people off is not professionally wise.