Monday, October 7, 2013

Social power in computing and its affect in early CS education

Reading a NYTimes piece this morning that summarized work on how people tend to dismiss those with less social power in a given situation.  The article is unfortunately titled around money, even though the point of the article is much broader, looking at the implications for public policy if high-power people dismiss those below them.

I'm thinking about the impact of this in education, particularly in my own field of computing.

Much has been written about the nasty or dismissive culture of computing and its role in hampering diversity. Much has been written about how early encouragement was key for many women in the field (citing women simply because I'm familiar with writings on women in CS); this was a key component of last week's NYTimes piece on Women in Science.  The surface-level connection between these themes seems clear, but I've never understood the underlying mechanism that makes computing culture somewhat abrasive.  The social power piece leaves me wondering how we define social power in computing, and how that evolves over the span of a degree program or career.

My sense is that early on, we equate social power with programming ability in some abstract sense: those who can crank out code quickly, know arcane commands, and never need to reference a manual are granted power and status.  The "social" power here comes from these folks being able to act as human manuals (if you can muster the nerve to approach them).  As computing assignments and projects grow richer so that programming is more a mechanism and less the whole picture, new forms of social power emerge.  By then, of course, many of those who struggled with the first definition of social power have dropped out.

CS educators are increasingly thinking about how to broaden the perspective of computing in intro courses: get beyond programming and into applications, requirements, ethics, etc.  This is a great first step.  But if social power theory applies here, then these efforts will only have impact of courses can create a similarly broad social power structure.  Exercises that talk about broader issues but then have students primarily express their ideas in code won't challenge the core problem.  Expanding what we talk about in classes targets an individual's perspective on computing; changing what we visibly value and celebrate in our courses targets the social communities that yield broader groups of computing professionals.

How often do we talk about instructional design for shaping communities rather than individuals?  If anyone has pointers into literature on this for computing, I'd like to hear about it.