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

<p><strong>Have at least one class that has no pre-requisite.</strong> 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.</p>

<p><strong>Trust word of mouth.</strong> 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 <em>Field of Dreams</em> 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. </p>

<p><strong>Don't let traditional grading get in the way of learning.</strong> 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 <em>when</em> they learn something but <em>that</em> 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.</p>

CC BY-SA 3.0
2017-06-30T15:03:04.430Z
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.
Mirv - Matt
CC BY-SA 3.0
2017-05-24T05:33:53.643Z
2017-05-24T05:33:53.643Z
Peter
<p>There are some good ideas in <a href="https://cseducators.stackexchange.com/a/109/1166">Peter's answer</a>, 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.</p>

<p>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 href="http://www.washingtonpost.com/wp-dyn/content/article/2009/06/07/AR2009060702117.html" rel="nofollow noreferrer">a 2009 article</a> by noted education journalist Jay Mathews,</p>

<blockquote>
  <p>A recent Fordham Institute survey revealed that only 38 percent of AP teachers believe "the more students taking AP courses, the better," while <strong>52 percent said "only students who can handle the material" should take AP</strong>. 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.</p>
</blockquote>

<p>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.</p>

<p>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.</p>

<p>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.</p>

<p>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:</p>

<ul>
<li><a href="http://s3.amazonaws.com/academia.edu.documents/11712529/1994_Overrep_JSE.pdf?AWSAccessKeyId=AKIAIWOWYYGZ2Y53UL3A&amp;Expires=1498805087&amp;Signature=MxP0QAGaxWi3V6b0QNAitEjnQOs%3D&amp;response-content-disposition=inline%3B%20filename%3DArtiles_A.J._and_Trent_S.C._1994_._Overr.pdf" rel="nofollow noreferrer">Overrepresentation of Minority Students in Special Education: A Continuing Debate</a> (PDF)</li>
<li><a href="http://people.terry.uga.edu/mustard/courses/e4250/Dee-AEF.pdf" rel="nofollow noreferrer">A Teacher like Me: Does Race, Ethnicity, or Gender Matter?</a> (PDF)</li>
<li><a href="http://www.twotowns.org/Tenenbaum.pdf" rel="nofollow noreferrer">Are teachers' expectations different for racial minority than for European American students? A meta-analysis.</a> (PDF)</li>
</ul>

<p>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.</p>

CC BY-SA 3.0
2017-06-30T14:21:09.650Z
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?
Piyush Parikh
CC BY-SA 4.0
2019-04-30T04:04:30.917Z
"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.
nick012000
CC BY-SA 3.0
2017-06-30T05:47:20.117Z
2017-06-30T14:14:37.487Z
2017-06-30T14:14:37.487Z
Piyush Parikh
<p>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?</p>

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

CC BY-SA 4.0
2018-05-30T12:46:29.183Z
See this answer (https://cseducators.stackexchange.com/a/4852/1293) to a related question. It may offer some insight into this as well.
Buffy
CC BY-SA 4.0
2019-04-22T02:03:39.360Z
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
Aksakal almost surely binary
CC BY-SA 4.0
2019-04-23T00:46:07.543Z
@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.
dlu
CC BY-SA 4.0
2019-04-23T01:44:33.400Z
@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.
Aksakal almost surely binary
<social-context><equity><classroom-environment>
Best Practices / Effective Strategies For Building Diversity In High School CS Programs
# Best Practices / Effective Strategies For Building Diversity In High School CS Programs

(Asked by: username_0 on 2017-05-24)

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.

**Tags:** social-context, equity, classroom-environment

> **Comments:**
> **username_1**: See this answer (https://cseducators.stackexchange.com/a/4852/1293) to a related question. It may offer some insight into this as well.  
> **username_2**: 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  
> **username_0**: @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.  
> **username_2**: @username_0, 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.  

---

## 2 answers

### Answer by username_3 on 2017-05-24. Score: 10

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.

> **Comments:**
> **username_4**: 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.  

---

### Answer by username_5 on 2017-06-30. Score: 4

There are some good ideas in [username_3's answer](https://cseducators.stackexchange.com/a/109/1166), 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](http://www.washingtonpost.com/wp-dyn/content/article/2009/06/07/AR2009060702117.html) 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:

* [Overrepresentation of Minority Students in Special Education: A Continuing Debate](http://s3.amazonaws.com/academia.edu.documents/11712529/1994_Overrep_JSE.pdf?AWSAccessKeyId=AKIAIWOWYYGZ2Y53UL3A&Expires=1498805087&Signature=MxP0QAGaxWi3V6b0QNAitEjnQOs%3D&response-content-disposition=inline%3B%20filename%3DArtiles_A.J._and_Trent_S.C._1994_._Overr.pdf) (PDF)
* [A Teacher like Me: Does Race, Ethnicity, or Gender Matter?](http://people.terry.uga.edu/mustard/courses/e4250/Dee-AEF.pdf) (PDF)
* [Are teachers' expectations different for racial minority than for European American students? A meta-analysis.](http://www.twotowns.org/Tenenbaum.pdf) (PDF)

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.

> **Comments:**
> **username_5**: 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?  
> **username_6**: "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.  

---

