Archive for February, 2011

Balancing HCI and Computational Thinking: Levels of Abstraction and Agency

February 27, 2011 Leave a comment

My colleague Mark Guzdial wrote a great blog post last week called “HCI and Computational Thinking are Ideological Foes.” A lot of HCI wants to make the computer invisible, like Heidegger’s hammer. While you’re using it, you’re thinking about what you’re trying to accomplish–not about how to use the (computer/hammer).  But computer science education takes the opposite approach: please, please look at the computer/hammer!  It’s interesting, and if you’re going to really use it, you need to really look at it.

How much detail should we hide from the user? I think about this every time I run software update on my MacOS computers. The system tells me it has stuff to update, and would I please click OK to install it?  I have to click a button to ask for what it plans to update. I find the dialog infuriating, as if it’s saying “don’t worry your pretty little head about what we’re going to update–we’ll just take care of it, OK honey?” I click to ask for more details, and it tells me that it’s going to, for example, update iTunes and do a system security patch. OK, that works for me–now I click go ahead. But notice that I didn’t say “OK, but what exact part of iTunes are you going to fix? Show me the original code and the patch.” It seems OK to me that they told me it’s a stability update to iTunes. The level of abstraction is right (for me) after I ask it for more details. I don’t want even more details.

Similarly, Mark isn’t arguing that “kids these days–they don’t know their one’s and zero’s any more! They don’t even know what a decrement register is! Whatever happened to punch cards? Why in high school, I had to program our IMSAI to echo characters on the screen by toggling in binary codes with the front panel switches!”  OK, I did have to do that, and I loved that assignment, and I wish everyone could still do that, but it seems impractical. It’s OK in this day and age to keep students at a slightly higher level of abstraction. As Beki Grinter points out in her interesting response to Mark’s post, sometimes we really do want to hide some details from users. Then the question becomes, what level of abstraction is appropriate for what users doing what tasks? And I agree that a lot of HCI today is, like the MacOS software update dialog, pushing the level of abstraction too high.

A complementary concept to level of abstraction is sense of agency. Do I feel like I am taking this action (regardless of whether I’m using more abstracted or lower level tools to do it) or do I feel like the system is doing it for me? The difference is a subtle one. In either case, lower level details are being taken care of without requiring my attention. But when I retain a sense of agency, I feel like I have a clear mental model of what is going to happen and the entire process was set in motion by a deliberate choice on my part. A higher level of abstraction is tolerable when we design in a clarity that helps the user retain that sense of agency.

You might say that designing applications to be used by people and designing CS education are fundamentally different with regard to abstraction and agency. But they are more similar than perhaps it seems at first glance. Consider for example the question of memory management. Do students need to explicitly allocate and free memory? Or is it OK for that to all just happen for them? I suppose that depends on how critical performance is in the application you’re developing, and how good your garbage collection system is. I still think that “serious” programmers need to learn how to do their own memory management, so they understand it, even if they don’t have to do it on a day to day basis. But I do NOT think that serious programmers need to make keys echo by toggling in binary on the front panel switches. The minimum acceptable level of abstraction has migrated upward a bit. Even for the true hacker it has moved up a bit, and for the web developer it has moved up much more.

There’s a delicate and important design problem here. Let’s take the example of creating a new web development environment. How much abstraction is the right choice for this task? How much of how networks and web browsers really work should we expose to the web developer? How do we get the right level of abstraction that lets the web developer have a clear mental model of what’s going on and retain a sense of agency over the task they are accomplishing?  The HCI of programming languages and development environments is an absolutely critical research problem.

There’s still a gap in levels in my argument: What Mark saw on the ischools conference program was a lot of HCI for and about end users. Which you might view as being entirely different than designing for programmers. Except that what I find so exciting about modern computer technology is that maybe there doesn’t need to be such a gap between users and programmers. As technology increasingly surrounds all of us, it’s an open question how much real control ordinary people will have over that technology. But what if we think of everyone as programmers? Think of everyone as programmers who need tools with different levels of abstraction for different tasks. The same person may use a high-level tool for one task, and a lower-level look-at-the-details-of-the-hammer tool for another a few minutes later. How can we create these tools with many levels of abstraction, but which always keep that sense of agency–I am the person doing this with the tool, rather than the tool is doing this for me.  And Mark is dead right that there is not enough dialog about this at the moment at CHI and the ischools conference and similar.  I was thrilled to see a paper accepted for CHI this year on usability of operating system permissions systems. It was one paper. We need 100 more like it.

We underestimate the intelligence and independence of our users when we keep trying to abstract everything away for them, without giving them the choice. HCI and CSED have grown apart, and that’s a tragedy for both traditions of research and for all of us as humans who live with these technologies intertwined through more and more of our lives.

One thing Mark wrote was wrong, though. He concluded his post by writing “Here’s a prediction: We won’t see a panel on ‘Computational Thinking’ at CHI, CSCW, or iConference any time soon.” He’s wrong because I’m going to organize it, and he’s going to be on the panel!

A victory for free speech: you can insult your boss online!

February 8, 2011 1 comment

Can you be fired for insulting your boss on Facebook? That’s what happened to an employee of a Connecticut ambulance company in 2009.  Yesterday the National Labor Relations Board (NLRB) has ruled that the firing was illegal. Labor laws let you discuss working conditions and salaries with others. Venting about the boss is covered. You still can be fired for releasing company secrets, but calling your boss a psychiatric case doesn’t count!  (The employee referred to her boss using the company’s code for a psychiatric patient.)

The most interesting part of Monday’s ruling is that the ambulance company agreed to revise their company policy that prohibited employees talking about the company online. It’s still not smart to go online venting about your employer. But you can imagine a future world where social media policies are used as excuses to get rid of people for minor offenses. Want to fire him and not pay severance? Check his Facebook page and see what cause you can come up with. This would have a serious chilling effect. The NLRB ruling is a big victory for free speech.

Social Media News and Egypt

February 7, 2011 1 comment

Over the past few days, I’ve had a growing sense of disappointment about social media news about Egypt. Followed by puzzlement at my own disappointment–what was I expecting anyway?

In theory, news events conveyed through social media should offer powerful immediacy and authenticity. If official channels are unreliable, real people can give you the story. People collaborate, and something greater emerges. Sharing information, gawking might even turn into meaningful action.

Which brings me to the historic events in Egypt over the last fortnight. Watching events in Egypt unfold on Twitter, I was reminded more than anything of 24-hour television news coverage of major events. Like the newscaster standing out in a hurricane, watching pieces of a roof blow off, and interviewing a random person hunkered down at a bar, waiting the storm out.  The mismatch is in the temporal domain: I don’t need that many updates to know what’s going on. After a while, it becomes more maudlin entertainment than information that can either enlighten or move to action.

Am I the only person who turned the television and Internet off on September 11th? I knew my family in New York City were OK–my Mom called to say hi and it was me who told her to turn the TV on, something was happening downtown. I got the gist of what was happening, and I turned the news off and went back to work. I had a CHI paper to work on, after all. I was glad to have the CHI deadline looming–a reason to focus on something constructive and not sit slack jawed watching horrors unfold. I got a better understanding by waiting for composed and verified news later, rather than hearing every rumor in real time. Likewise, hundreds of tweets a day about every sign in Tahrir Square are not helping my understanding of current events in Egypt.

Malcolm Gladwell has written a couple short pieces recently arguing that social media has nothing to do with social movements and meaningful civic participation. I think he’s wrong. Communications media don’t cause major political and social shifts, but do they facilitate them? Even with the Internet literally turned off in Egypt all last week, I’m still convinced many-to-many communications played a non-trivial role in sea changes in public opinion. But the details matter, and we’re not there yet–the technology can be consciously iterated on to help achieve desired aims.  This is what I hope to contribute to.

PhD student Jill Dimond and I are studying what factors encourage people to become more meaningfully involved in social movements, and how social media can help. Dimond is webmaster and mobile app developer for, a federation of sites that encourage women to report instances of street harassment. Hollaback’s founders hope that awareness can promote change. The key research question is understanding what the general public can contribute to any given social movement, and can social media help them be better informed. Better informed  not about the latest plank flying off the roof but about what it means and what they can personally contribute to making the situation better.

I don’t understand either the current impact of social media news and journalism, or its future potential. I don’t think anyone does. But I have a hunch there’s an opportunity here for researchers to help shape that potential towards democratic aims.

Categories: news, social computing, Twitter
%d bloggers like this: