Why did I do this?
Our students need to gain an understanding of issues of culture, bias and equity at the same time that they learn technical skills. There are compelling ethical reasons, but even from a purely pragmatic perspective, information professionals need to understand the context in which we use programming skills. We don’t teach reference services, project management or cataloging isolated from their organizational and culture contexts, and we should similarly be teaching programming in its cultural context.
It is well established that women, people of color and other marginalized groups are underrepresented in programming and related fields. More to the point, they are systematically pushed out of and away from programming, starting at least as early as middle school, and continuing through high school, college and all the way to senior level positions. The obstacles they navigate range from individual bias and harassment (e.g., Gamergate) to structural (e.g., lack of computer science courses in lower-income schools). It is important for all of us to understand and work to dismantle these obstacles.
There is a lot of inspirational work being done already outside of academia – with initiatives like the Techies Project, Black Girls Code, All Star Code and PyLadies, as well as professional organizations like the Association for Computing Machinery (ACM) providing networking, support, mentoring, hackathons, conferences and more. Within academia, though, practical programming skills are generally separated from from social justice or ethical issues, often in separate departments or schools. Critical code studies, for example, interrogates code and and technological systems, but doesn’t teach programming. One exception is Dorothea Salo’s course, Code and Power, which integrates a substantial chunk of PHP programming within a larger framework that critiques “economic, social and cultural structural mechanisms related to racial and gender disparities in the computing industries.” (Check out the reading list – it’s a great resource.)
Changing what and how I teach
Introduction to Programming for the Information Professional is a graduate course at the University of Maryland’s iSchool. I augmented the existing learning objectives for concepts and skills of programming, adding a new objective (“Students will be able to explain how programming is situated in and reflects broader social structures, constructs and issues, e.g. race, class or gender”), four sets of readings and discussions and a final writing assignment. I introduced this in the syllabus and at our first class meeting, explaining that these are essential parts of the knowledge needed to be an information professional, and they go hand-in-hand with the technical programming skills.
It was important that I not only change what I was teaching, but also how – that I also provide an inclusive, welcoming and supportive environment for learning, especially for students new to programming, to counteract a lifetime of misinformation about the difficulty of programming and who can program. As students learn new ways of thinking (algorithmic and computational thinking) they often experience anxiety and feelings of inadequacy, coupled with isolation because they think, wrongly, that they alone “don’t get it.” (It’s really hard to convince them otherwise.) The National Center for Women in Technology provides suggestions to make our courses more inclusive (Top 10 Ways You Can Retain Students in Computing) which also happen to be good pedagogy for all students.
I dedicated time both before and during the course to reflect on how my own social identity (white, male, middle class, etc.) affects the assumptions I make about what, who and why I teach. Because my work is not separate from my identity, I reflected on my feelings in an anti-racism group that I co-facilitated at my church. I shared my disappointments when no-one had done the weekly readings or the discussion was shallow and my joys when I experienced a particularly insightful exchange.
Experiences and next steps
I was pleased that the discussions and final essays reflected a growing, albeit uneven, understanding of issues of culture, bias and equity. Comments often addressed aspects of diversity that I hadn’t initially considered. For example, multiple students commented about various types of gender challenges they observed with rural or conservative families, where there was a fairly “traditional” view of gender roles. I was pleasantly surprised while reading the final essays that several of the students who had been reticent during discussions wrote with insight. My own understanding of diversity and the challenges increased as I listened and read.
I collected anonymous feedback at several points. Student responses varied. About a quarter of the responses at the end of the semester still questioned the inclusion of this material. A smaller fraction commented positively that this was a valuable aspect of the course. I consider that a successful initial experience, with much more work to do. I am still learning how to create space for and facilitate meaningful conversations about culture, power, race, gender, etc. in the classroom, and how we all can reconcile the tensions between disclosure and emotional safety – how we can sit with the discomfort that these conversations require. I worry that I will make harmful mistakes or succumb to my own insecurities. Fortunately, I can draw on supportive communities and mentors. This is a work in progress.
I am looking ahead to teaching this again in the fall, incorporating the many thoughtful suggestions that I received. Some of the changes I am considering are:
- Bring in a diverse set of outside speakers – Outside speakers can complement my own background and skills, and – whether they explicitly discuss social and cultural issues, or focus on technical issues – they can model the diversity of successful programming professionals.
- Use in-class discussions instead of online – For this face-to-face class, we primarily use online discussions for short questions and clarification of assignments in between sessions. We generally get into deeper discussions in the classroom.
- Continue to bring in current events – e.g. articles about Facebook’s Trending News
These are my initial steps. As I move forward I will continue to seek out ways to improve, to uncover my blind spots, to be accountable to my students, and to provide a supportive and challenging environment to learn the knowledge and skills needed to be a well-rounded, critically aware professional. I am eager to hear about similar work, so please share your thoughts and suggestions.