What works for building programs that are accessible to "non-traditional" CS students and which help to support the students so that they enjoy the class, start seeing themselves as "CS types," and ultimately succeed in the program and go on in CS?

References to concrete evidence and past attempts to do the same thing would be appreciated so this doesn't become all speculation and opinion.

  • $\begingroup$ See this answer (cseducators.stackexchange.com/a/4852/1293) to a related question. It may offer some insight into this as well. $\endgroup$
    – Buffy
    May 30, 2018 at 12:46
  • $\begingroup$ How do you measure diversity? Who do you want to attract to your course? Is it something like gender or race? I don't even know WTH is a CS-type. I see all kinds of people in CS, they don't seem to have a type to me $\endgroup$ Apr 22, 2019 at 2:03
  • $\begingroup$ @Aksakal - my big goal is to have the demographics of my classes match those of my school. What I mean by "CS types" are people who are comfortable doing computational thinking - so in part my question is about how you encourage people who may not see themselves as "nerds" to explore the possibility. One aspect of this is designing classes that encourage exploration and where success isn't predicated on "natural" CS talent. $\endgroup$
    – dlu
    Apr 23, 2019 at 0:46
  • $\begingroup$ @dlu, the "nerd" is a silly stereotype. I suppose I would fit it, but a few of my friends did not. They weren't exactly jocks, but more like normal boys and girls, who just happened to like programming. I sense that by demographics you don't mean mere appearance, bit something else. I don't know if there's natural CS talent. What I see is that some people like it, and end up spending a lot of time doing it, and become very skillful. Maybe the way to accomplish your goal is to promote the idea that there's no CS type, and that everyone can do it if they like it. $\endgroup$ Apr 23, 2019 at 1:44

2 Answers 2


Three concrete ideas come to mind based on my experience building a CS program essentially from scratch at the high school level:

Have at least one class that has no pre-requisite. We have one intro to programming course that any student can register for, including freshmen. Students don't need any background, any strength in math, any previous AP/Honors/accelerated classes. Part of the battle -- maybe the hardest part -- is getting bodies into the seats, and then winning them over from there. Eliminating hurdles as much as possible is one logical step to take.

Trust word of mouth. I made it my goal to get in front of every possible applicant when promoting our first year of offering AP CS Principles (2016-17). A year ago, I visited math classes and spoke to probably ~700-800 students before course registration. As a result, I received nearly 150 applications. In previous years we could barely muster one full section of AP CS A. If >20 students showed interest in CS, we were doing well. I believe firmly in the Field of Dreams philosophy: "If you build it, they will come." Even 5 minutes of enthusiasm was enough to spark a massive up-tick in interest. Last year, we had one small class of CS, this year we had three full classes, and we are expanding to four next year.

Don't let traditional grading get in the way of learning. I struggled a lot with this issue this year. I tell students bluntly that programming is hard. It can be frustrating and challenging. So, when it comes time to assessing programs, I let students revise, revise, revise. Essentially, I take a standards-based approach; I don't care so much when they learn something but that they learn it. A low grade at the beginning that is difficult to recover from can be more disheartening than anything else and can sap students of the motivation needed to persist through challenging programming work. At the start there has to be a reward for grit and the desire to improve.

  • $\begingroup$ I fully agree with your last paragraph. I tell my students that programming can be the most frustrating thing I have ever seen, which is part of the reason I teach it now instead of doing it. The other reason was: not enough interaction with other people, which is probably the reason that very sensible females "don't go there", and something that might be inherent to the field. Just sayin' $\endgroup$
    – user737
    Jun 15, 2017 at 11:51
  • 1
    $\begingroup$ Had a rock solid c++ intro/basic/intermediate guy...students from every major school in the area would goto his community college take his classes ... a working program was only 10% of the grade on each assignment. $\endgroup$ Jun 30, 2017 at 15:03

There are some good ideas in Peter's answer, but I notice that they all imply or at least come from the perspective of the student being the actor. In many cases, this is just fine. In some other cases, the students may need more of a push, or may need to have some obstacles removed.

It has been reported that teachers themselves may try to steer students away from, among other things, advanced courses when they suspect a poor fit. According to a 2009 article by noted education journalist Jay Mathews,

A recent Fordham Institute survey revealed that only 38 percent of AP teachers believe "the more students taking AP courses, the better," while 52 percent said "only students who can handle the material" should take AP. One of my favorite bloggers, Fairfax County instructional technology specialist Tim Stahmer of assortedstuff.com, frequently says too many unprepared students are being channeled into AP and urged to go to college.

However, the rest of the article points out that even when supposedly unprepared students are given access to advanced courses, they have overall better outcomes. In many high schools, computer science is still seen as an advanced elective, similar to the AP courses described above. Even if the goal is not college prep, there is value in providing some exposure to another field, particularly CS.

Getting more students into classes may benefit from getting faculty and administration buy-in. This is obviously especially true if teachers, guidance counselors or principals are initially discouraging/blocking some students from taking CS courses, but even if that's not happening, some active encouragement can only help.

The title of the question also mentions diversity. "Diversity" is a broad term, but given the context of this site (and to simplify research) I'm assuming for the purposes of this question that you mean racial and gender diversity.

Research on diversity and education covers a lot of ground, but speaking broadly and relatively, it shows that (at least in the USA) minority students are treated worse. A few random examples:

The above is relevant because, where it is taking place, school staff may not even realize that their actions are reducing CS diversity. In other words, it is unconscious bias. Eliminating "gatekeepers" and having "suggest that all students register" policies can help with this.

  • $\begingroup$ It is some and some. We want ALL the right students to sign up, and None of the wrong ones. Unfortunately, we are not omniscient, so we have to err towards overselling. $\endgroup$
    – user737
    Jun 30, 2017 at 12:34
  • $\begingroup$ That's fair. Extending my logic above to put kindergarteners into AP English Literature or Calculus-in-3D would clearly be ridiculous. But I have to think that introductory CS isn't beyond most high schoolers. Do I have such a rose-colored memory? $\endgroup$ Jun 30, 2017 at 14:21
  • $\begingroup$ Agree. Students cannot succeed if they don't try. You said: "the article points out that even when supposedly unprepared students are given access to advanced courses, they have overall better outcomes." So, I think that this means we must accept that to get more success, we have to tolerate more 'failure' as well. But as I understand the current attitude in Education, all failure is intolerable. Good luck with that! $\endgroup$
    – user737
    Jun 30, 2017 at 15:19
  • $\begingroup$ "In many high schools, computer science is still seen as an advanced elective" Maybe in America. Down here in Australia, it's a mandatory course until Grade 8. $\endgroup$
    – nick012000
    Apr 30, 2019 at 4:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.