By Sine Zambach, Ph.d., Senior advisor in Department of Financial Analysis, CBS, Maria Menéndez-Blanco, Ph.d., post.doc. in computer supported collaborative work, Department of Computer Science, University of Copenhagen, and Martin Dybdal, Ph.d., Senior advisor in digital education, Department of Computer Science, University of Copenhagen
Stereotypical understandings of computer scientists as antisocial and only focusing on technology are common in contemporary western societies. However, this is a misconception which does not reflect the actual characteristics required to be successful in the field.
As many have already pointed out, computer science it not just for boys with specific skills and interests; it is a diverse and constantly changing field where everyone should be welcome. Existing research have documented that the lack of diversity only exists in western societies, and that the lack of diversity is not a matter of biology, but instead a complex cultural problem.
In this article, we summarize some of the mechanisms which risk excluding women in the field of computing and present the approach of ‘pair programming’, as a proposal to mitigate some of the cultural issues in computer science education which may increase participation of diverse populations. Although low number of women in computer science is the elephant in the room, women are not the only ones being excluded by stereotype-portraying.
Stereotypes easily lead to exclusion
Often, computer science is portrayed as excluding and not a very friendly and inclusive field, especially in terms of gender. Recent examples from Google and Uber reinforce this image. These companies are now setting up new strategies to identify and mitigate aspects which discriminate against gender among their employees to name a few examples. Still, these stories, reinforce the stereotypes about computer science.
One of the key problems with stereotypes is that they can scare people away from computing. A recent study suggests that one of the reasons why young women are not interested in computing is because they do not see it as a field where they could succeed.
Cultural and structural issues in the field of computing science might prevent people with different interests and expertise to join. Thus, the question remains as how can we create educational and professional spaces where people can explore their own interests in computing?
There is no silver bullet that can fix these cultural or structural issues. Thus, we need concrete examples that illustrate how computing could be done in different ways.
Programming as a means – not a goal
The terminology we use, and how we talk about IT professions has an impact on how working in IT is perceived. Often people working in IT are described as mere “programmers” or even as “coders”, as if the goal is to “produce programs” or “produce code”. We argue that we need to look at the programming part of computer science as a means rather than a goal.
Depicting programming as a means to solve real world problems can add to a more nuanced view of what we consider a computer scientist.
The computer science discipline contains much more than pure programming, as the goal is often to solve a problem. The formulation of this problem as well as user needs and priorities to be taken into consideration are just as important as the programming itself.
The English term “computer science” does not fully describe the profession and education which is entailed in computer science, since it is too narrowly focused on the “computer”. The difficulty to choose a terminology that represents the practices of the field of computing has been a topic of debate. For example, the term computer science itself also brings some of these connotations, indicating that the research area is the computer, not the domains where the computers are used.
To follow up on different ways to represent computer science (or datalogy!), below we focus on different initiatives seeking to broaden the narratives around computing.
Fixing computer science or fixing the gender gap?
The gender gap in computing is what we call socially and culturally constructed – i.e. it is not caused by our biology as the gender gap only exists in Western societies, but by the expectations we have to men and women in these societies.
In Denmark, an increasing number of initiatives by public and private institutions are addressing the gender gap in computing in different ways.
One of these initiatives is FemTech.dk, an action research project started by Prof. Pernille Bjørn at the Department of Computer Science at University of Copenhagen (DIKU). FemTech.dk seeks to create spaces where people can explore their own interests in computing.
One way of doing this is by challenging the idea that computer science is a non-collaborative activity (i.e. you mostly work alone), which it is quite far from reality. Indeed, collaboration is essential to computing and has led to entire fields of research such as Computer-Supported Cooperative Work (CSCW), which focus on studying collaborative situations with the aim of designing cooperative systems.
The software industry is increasingly acknowledging the importance of collaboration by, for example, adopting so called agile workflows for teamwork in software development teams. Agile workflows often stress the benefits of collaboration and communication across different team members and different teams.
Lone wolf or group work?
Many things in life are more fun when you are more than one. Most tasks in computer science too. We argue that this should be promoted and exhibited more – also when looking at role models.
Often, popular computer scientists are presented in the media as solitary geniuses such as Grace Hopper, Alan Turing, Bill Gates or Mark Zuckerberg. What if we promoted the successes of computer scientists as the result of collaborations?
A famous example of the latter is the ENIAC computer, where six women did most of the programming of this computer during WW2. This was the first electronic computer in the world.
They described how they organized the tasks after their talents. Some of them were debugging, some were designing and others were documenting the programs (an often underestimated task).
Later on in the 1950’s a consortium developed the computer language COBOL. This consortium consisted of both the initiative taker Grace Hopper, Betty Holberton Schnyder from the ENIAC group as well as other women and men.
For us, the important part is not that the software developers were women. Instead we argue that the case exhibits an alternative representation of success – the important role of succeeding by working with others. Perhaps we should handle the gender gap by coming up with other such representations of success.
Different motivations and learning styles in the classroom
A way to offer different views about a matter is to change how we present it. For instance, we should ensure that programming is introduced as a social and collaborative activity as part of the current global push to introduce computing in elementary schools.
Even though professional IT-development is a collaborative effort, as we have explained above, it is not taught with a focus on the social and collaborative aspects in many schools.
When computers are brought to the classroom, we often get a ‘one student – one computer’ relationship. Two persons cannot type at the same keyboard after all.
In addition to the practical matter of typing, there is also the problem that we tend to focus our attention into the screen, without interacting with our peers. However, how do you then get people to collaborate when working with computers?
Pair programming is one way to go
Pair programming is a role-play approach that allows two persons to collaborate at one computer in a meaningful way.
The two programmers get two distinct roles: a navigator and driver. The navigator is responsible for analyzing the situation, catching errors and making longer-term suggestions, while the driver is responsible for writing the code and dealing with the details.
Every 10-20 minutes the persons swap roles. The pairs should be instructed to try to maintain an ongoing conversation, reflecting on what is going on on the screen. This should be the focus point of a teacher when used in class – making sure the pairs are actively discussing.
Why does this work?
Pair programming leads to at least five advantages:
1) Increased learning as the participants swap between teaching each other
2) Habits and unpronounced knowledge and skills are exchanged
3) The final program is more correct
4) Reduced time spent on debugging
5) Less time used on coordination when the pair is part of a larger team.
From our experience, when you use pair programming in educational contexts, it is important that you ensure that everyone is on board with this approach, as there otherwise can be some resistance. Start with a discussion with the students about their thoughts on the benefits, often the students will be able to come up with the above main benefits themselves.
Gender gap and the future of computing
In summary, we argue that the gender gap in computing is socially and culturally constructed. Therefore, striving for gender equity in computing requires cultural, structural and didactic changes.
Addressing the gender gap entails promoting and exhibiting the important role of collaboration in the past, present, and future of computing.