What would an inclusive curriculum look like in a computer science course?

This is an interesting question. The program I am doing most of my teaching in has recently been faced with a similar question (due to comments of an external evaluation), and I can't say we have come up with a satisfying solution yet.

Here are some pointers (in no particular order) that have come up in our discussion:

  • For exam tasks / homework descriptions: evaluate critically if your tasks (or rather, their descriptions) carry bias. Naturally, you want to avoid the cool developer being called Bob and the silly user Alice or Ahmed, but it goes deeper than that. For example, in an Intro to Programming exam I was giving many years back the task was to model and implement a simulation of a game of football/soccer (the assumption here being that the majority population - white, male college kids in Europe - would be intimately aware of the rules and have an easy time conceptualizing the task). As it turns out, those that did not fall into the majority population (some women, foreign students) did worse on this task, presumably because they needed to spend a lot more brain cycles even understanding the game they were supposed to simulate.
  • For deadlines: consider that some students may not be able to, if need be, work through the night or the weekend. It's easy to think that a deadline Sunday evening is not a big deal if you think of your students as a homogenious mass of 20-year-olds with no other obligations than to study, but if one of your students is a father / mother of two, or working on the weekend to sustain themselves, the story becomes different.
  • For extra-curricular activities: the same is also true for extra-curriculars. If at all possible schedule attractive extra-curriculars (e.g., Hackathons, job fairs, whatever your university does) in a way that they can also be attended by people outside the majority population.
  • For social events: the same applies to social events. Make sure that social events, to the extent possible, not only cater towards the majority population. For instance, when I studied, a lot of the student social events boiled down to "find an excuse to drink", and basically all conversation was in the local language. Both of this together unsurprisingly meant that foreign students, especially Islamic students, never showed up.
  • Avoiding "hidden knowledge": in many universities and courses, there are official rules and "unspoken rules". For example, a teacher may say that students are expected to learn the entire book, but well-connected members of the majority population know from previous years that in reality most of the questions are about Chapters 3-8. Given that (some) minorities are less well-connected than the majority population, these constructions can disadvantage these students severely.
  • Diversity of TAs: ensure that not all TAs are always from the majority population (i.e., ensure that there is some amount of representation of non-majority students). This may need active steering, because if you just take the first 5 qualified students, you may easily end up with only students from the majority population (because they are more, because they are better-connected, and because a lot of TA contracts are written in a way to appeal to 20-year-olds).

To summarize: keep in mind that some of your students may have a different cultural background, different life constraints, different priorities, or different access to "common knowledge". Try to level the playing field as well as you can.


I expect that most modern schools will have many special-interest groups for every minority and sexuality, gender and religion. This attitude has no place in the classroom. What classes really seem to need in terms of inclusivity are the following:

  • Inclusivity of ideas. Don't inject snarky political comments into your lectures under the assumption that everyone has the same opinions. This alienates students who have different ideas and opinions, and gets old quickly. I was in school during the 2016 election. I was about ready to die by graduation.

  • Inclusivity of learning styles. On tests and exams, include different types of questions, and award points for answers that don't quite hit the mark but show evidence of critical or logical thinking, as these are the underpinnings of computer science. Even if the student doesn't remember the exact algorithm in question, showing that he can think about it in a "CS-y" way proves that he is the right kind of student for the program. This also can be extended to lectures and additional readings. Provide examples that are visual. Provide examples that are auditory. Create analogies and parallels. And make sure that the board is visible all throughout the classroom and that you can actually be heard all throughout the classroom. If a lecture hall is so big that the students in the back have a significant disadvantage, that's because there are supposedly that many students in the lecture, so don't punish kids who have to sit in the back.

  • Inclusivity of schedules. While the point about setting deadlines to avoid weekends or nights is not really practical due to the aforementioned snowball effect, you can try to make sure that someone is available in some capacity for a lot of time. Try to respond promptly to emails, or have a TA who responds quickly to them. Keep up with Piazza. Nothing is more disappointing than a class message board that hasn't been viewed by an instructor in over a month. To take this a step further, please keep up with your grading. Some students are not all right with having to wait until the day before the final to know how they're doing in the course. Many students are planners, and want to have as much information as possible as early as possible to make informed decisions about how to allocate their study time.


tl;dr It's not so much about curriculum, but in delivery and materials.


I have specialised in issues of inclusivity in Computer Science within my university and have several publications in this area. Many of my papers look at inclusivity for students with alternate needs but I have also been looking at issues of gender issues that affect inclusivity.

The question asks what changes in a curriculum should one make? It depends somewhat on how you define curriculum and the scope of what a curriculum contains, which in my experience varies from place to place (or even discipline to discipline). In theory a curriculum is a document that defines higher level outcomes, competencies and broad brush subject areas. For example, it would say that students should be taught computer programming but not specify a language or software platform; it might say computer architecture without naming specific hardware devices and so on.

Thus we should have a universal curriculum that makes it clear what would be learned and demonstrate the value of the qualification without saying in detail the mechanisms by which those goals would be achieved (or am I being too theoretical in my pedagogics?).

What does need addressing to permit inclusivity in a computer science curriculum are aspects of delivery: the teaching material, the environment, the language, the people, the attitude. Many of these are human focused aspects of education.

There are probably too many detailed elements for me to include them all, but some important ones are:

Hearts and Minds: If your colleagues are not totally engaged in the diversity agenda, or see value in it then much effort in this direction would be attenuated. Everyone has to agree; the problem is convincing them. One has to point out that it helps recruitment, reputation, retention, income generation, student morale, improved results and so on. For the recidivists I just pointed out that to do otherwise would probably be illegal and perhaps result in embarrassing legal cases at some indeterminate time in the future, and would they like to explain their position in court? (That worked).

Language (spoken and written): Everyone has to be able to use appropriate language automatically and without undue effort. All class material should use appropriate language, and all verbalisations in class should be appropriate. Some examples from the past: do not assume programmers or manager would be male by slipping into "when he ...". Do not assume everyone can see the screen by saying "as you can see in the diagram..." (vision impairment) or assume that everyone is able to hear clearly, and so on. Use multiple forms of delivery in any class.

Images and Illustrations: Be careful in the selections of images used in teaching material. What do the images imply: like the languages do they imply particular attributes for the people pictured; particularly ones that not all students could relate to (e.g. all men etc).

Use Technology: As we are talking about computer science there is no excuse for not using technology. There should be online support for the classes (like a VLE) so students can download notes, copies of the presentations and even video recordings of the class. This can also allows assessment submission and feedback. This permits student with differing needs to use their own support technology to access the material without extra spport.

Unconscious Bias: Teachers needs to accept that they have implicit unconscious Bias use that awareness in their work. Colleagues might need to attend the available training.

Culturally Specific Examples: To help students understand difficult concepts examples and exercises are important. Picking the right examples will help learning. However there are cultural traps in these example which one should avoid because they might implicitly exclude or disadvantage a particular group. Assuming that students know how tax works or using abbreviations for tax forms or assuming they know something outside the subject like complex numbers or eigen vectors can be difficult.

Physical Access: An obvious one when considering diversity, but labs need adjustable height desks, doors wide enough for adult wheelchairs there need to be appropriate toilet facilities, appropriate break and rest areas, quiet and social spaces. All these address the needs of different groups. For example, our campus lacks a fully equipped disabled access toilet (i.e. one with a power hoist).

Regulations and Procedures: Are the institutional regulations for things such as attendance, submission of mitigation, repeat years and such like appropriately accommodating for the various needs of student groups or are they discriminatingly punitive in an attempt to be equal.

The wider institution: It is as important that management, IT provision and marketing for your institution are similarly minded. Without them many of the efforts in one subject area would just be made impotent by the lack of support from elsewhere.


Although not answering the question directly you may be interested in publications in this area. As has already been mentioned in comments, there is plenty of literature out there that you can refer to. Mine is but a splash is the ocean:

  • Experiences of Teaching Disabled Students of Computing at UK Universities, (2007)

    • Discusses funding provisions in the UK for disabled students (DSA), common adaptations required for students being taught within the University of Hull's Computer Science department [e.g. electronic accessible lecture notes, clarity of taught examples and assignment information, adaptations for examinations] and the process through which students can disclose additional needs at application time. Generally a very UK-representative discussion of what is involved to teach students with disabilities at university-level.
  • Experiencias de enseñanza a estudiantes de informática con discapacidad en Universidades del Reino Unido, (2008) Spanish Version.
  • Vortrag über Diversity in der Informatiklehre (2018) German report on similar talk.

I hope that of that would be useful at pointing you at issues in this area.