What Comprehensive Computer Science Education for All Students Looks Like

Reflections from a year of teaching Coding, my experiences at Computer Science Training, and a ways to get involved in CS advocacy

(lots of additional linked content with more information within the post, for my non-education and non-CS people)

As I return back to Kansas City and get ready for the school year, my mind is still coming down from last week in Milwaukee, Wisconsin, where I just finished a week-long professional development for this new curriculum I am using in my Computer Science class this fall.

The name of the curriculum is Exploring Computer Science (ECS), and the purpose of the class is to serve as a meaningful and engaging intro level look into Computer Science (CS), it’s principles, and it’s applications.

The professional development was for teachers all around the state of Wisconsin teaching the course this fall — and me. I was fortunate for the opportunity to join them through Teach for America as one of the few CS teachers in the Kansas City, Missouri metropolitan area. Having now taught CS for a year as an outsider to the subject, I experienced firsthand that there was a great deal I had to learn.

Misconception #1: Coding and Computer Science are the same thing.

Operating under this myth, my approach to my class ultimately made it a Coding course. We spent almost the entire year in front of computers, learning as many languages as possible. We started in HTML/CSS, dabbled a little in Scratch, moved on to Javascript, and finished in Python. I thought it was important to give them a taste of various programming languages, so that they could see the many ways Coding can be used — whether it is for websites, games, animations, or standalone applications.

As I would come to find out, this approach to my class blew up in my face rather often, as I found myself constantly backtracking to teach my students “softer” skills before they could produce anything meaningful. Skills such as computational thinking, algorithms, and problem-solving — skills that are at the core of what computer science is.

In short, I gave my students a bunch of technical knowledge in a vacuum, with no framework for how to apply it. A classic problem that many beginning programmers find themselves facing.

Analogy: Imagine assembling a large piece of IKEA furniture without the manual — it can be done, but it’s not a pretty process.

Despite this, my students pushed forward and ultimately made huge advances in their computer science knowledge, surpassing my highest expectations. I would have never thought I could take my students from zero CS knowledge, to participating in (and winning awards) at a collegiate-level Hackathon.

They deserve all the credit.

I knew entering this year that I had to do better, so I headed to Milwaukee, anxious to gain a more holistic understanding of what computer science truly is.

My goals for the week were twofold:

  1. Deepen my understanding of CS in hope to provide my students with a higher-quality learning experience, transferring to increased students gains in computer knowledge and an increased interest in computer science as a field.
  2. Gain knowledge and insight on how to build a network to increase CS teacher participation in Missouri, as well become a more effective advocate for computer science education overall.

If you hadn’t yet pieced it together, Wisconsin is much farther along than Missouri with regards to comprehensive CS education, but has a long way to go as well. As I would discover, nearly all the teachers in attendance had backgrounds in subjects other than computer science, including business, math, art, music, and even English.

They had all stepped up to the plate (or had been given the directive) to begin creating a pipeline of meaningful computer science coursework in their schools, so that their students may be more equipped and prepared for our increasingly technological society. Teachers came from predominantly suburban and rural schools, with a few teachers having worked in urban communities such as Milwaukee.

All expectations withheld, I threw myself in…

Very early into the week, I knew that it was going to be a profound learning experience. We remained unplugged (away from computers) throughout the entire week, and walked away with even more knowledge as as a result.

At the core of everything we did, we always came back to three fundamental ideas:


Three Strains of Exploring Computer Science

1. Inquiry:

Misconception #2: Computer Science is a “cut-and-dry” subject

The Exploring Computer Science curriculum is grounded in years of research, and one of the key takeaways from that research was that since problem-solving is a core principle of Computer Science, instructional models must reflect and facilitate this. This is why the curriculum leans almost entirely on inquiry-based and project-based learning.

Given this is a departure from most teachers’ typical pedagogy, the week-long professional development is crucial to making clear how these learning approaches should take form in the classroom. What made this particular PD extra-special was that it operated in same manner that the class is supposed to be taught.

That meant our own learning as teachers happened in a inquiry-based manner, meaning we became the students. High energy and high engagement were a constant, and I couldn’t have been happier about it. It was like being in your favorite teachers’ classroom.

We were broken up into groups and each given lessons from the curriculum to teach to the larger class. Regardless of whether or not you were the teacher or the student, learning was happening through action.

Students (being role-played by teachers) take turns going up to the poster board to share what they think a computer is or isn’t

In one of our first lessons on Human-Computer Interaction (one of my favorite lessons in particular), it was started with a very simple question: What is a computer?

What followed were passionate (and sometimes even heated) discussions and follow-up activities, allowing us to dig even further towards approaching a more formal definition. Conversations ranged from why old cars are not computers whereas newer cars in fact are, and whether or not more mechanical devices (such as light switches) are in fact technically not computers. The conversations were purposeful and engaging.

As the week progressed, we were able to gain a much more robust understanding of what computer science was through our own self-discovery — which is arguably the purest form of student empowerment there is.

Continuing on empowerment, the deeper beauty in what inquiry-based learning allows is this: leveling of the playing field for all students to be able to use their prior knowledge.

2. Equity

Misconception #3: “Computer Science is a field for White and Asian men” OR “Black and Brown children are just naturally less interested in Computer Science (and STEM)”

The first day of PD, we were given the book Stuck in the Shallow End: Education, Race, and Computing by Jane Margolis. This book set the stage for the week, and was a driving force in more deeply understanding the second of our three strains — equity.

The premise of the book is based in the fact that we often hold preconceived notions of ability in certain fields for particular groups. These notions are typically grounded in stereotypes that are often in fact a result of systemic and institutional oppression.

The book uses the example of blacks being seen as bad swimmers as the widely held stereotype, but then takes a closer examination at the history of access to swimming facilities for people of color. A closer look showed that there were almost no places people of color could go swimming without putting themselves in apparent physical danger. The result: generations of African-Americans who were unable to swim and drowned at much higher rates than whites. What made this most problematic though — was the conclusion most made (especially post Civil Rights Era) that these results were indicative of some innate (lacking of) ability.

The book makes then makes the parallel to computer science, saying:

“Through study of why so few African Americans and Latino/as are learning computer science, we have learned how in computer science, as in swimming, people of color have been denied access to facilities, resources, and critical learning opportunities. Further, in both cases, the underrepresentation is rationalized, and made to seem as if it is based on a “natural sorting” process… instead of deep structural inequities.” (pg. 2)

Through studying three rather different Los Angeles Public Schools, it captures the common theme that females and students of color (even in wealthier, higher performing schools) are engaging in meaningful CS experiences/classes at much lower rates than their white peers. This was due to a combination of factors including internalized beliefs held by students about themselves, or assumptions/beliefs held about students by their administration.

These points really hit home for me, as a product of South Central LA. The actual exposure I had to careers in STEM such as Computer Science were limited to non-existent. I did not really understand what one could do in these fields, but I gravitated towards them — simply due to the fact that I was good at math and I knew that the possibilities were vast.

I was fortunate to have a few instrumental people who really pushed me to actually envision myself in these careers.

I had serious fears and hesitations about entering STEM, despite my natural inclination towards it. I did not see others like myself who were in these careers, or who even seemed to be interested in these subjects for that matter. I thought these types of careers were not for me.

The sad truth is, many of our students do not see themselves in these careers either. Unfortunately STEM fields historically have — and continue to be — dominated by White and Asian men.

taken from https://code.org/advocacy/state-facts/MO.pdf

These two groups make up 84% of the STEM workforce. The race and gender makeup of the STEM workforce is no more diverse than it was 15 years ago. Even worse is while all of this is happening, the demand in tech careers is growing — particularly, in computer science.

taken from https://code.org/promote

A small number of kids will always naturally find themselves interested these careers, but the reality is that a large majority of our student population never gets the chance to pursue STEM fields such as CS, simply because they have had no access to meaningful coursework in such careers.

Our CS (and STEM) education is not doing enough to compel female and minority students to consider such careers as a viable option. Often times, our CS (and STEM) education doesn’t even do enough to prepare those same students for college.

Many people do not understand that this is a national problem that we must address as we become an even more globalized, minority-majority nation in the coming decades. We have to make Computer Science and STEM as a whole more relevant, engaging, and accessible to all students, or we will fall even farther behind.

One of the most powerful lessons we did during the week focused around equity was called Cornrow Curves. By taking a historical look into the origins of cornrows and braiding, you see huge implications in numerous fields including Geometry (curvatures) and Computer Programming (loops and threading).

Through exploring the progression of braiding styles during different periods in history, we were able to dive more deeply into different computer science principles. In other words, “Ancient Egyptians we’re master programmers”. That’s just one example of how you get increased investment and buy-in from students of color. The examples are limitless, and it is powerful stuff.

Beyond the equity that inquiry-based learning naturally promotes, the curriculum is intentional about addressing social and ethical issues within computer science, such as diversity, digital citizenship, and artificial intelligence.

3. Computer Science Content:

Lastly, the course gives it’s due diligence to more technical Computer Science content, while continuing to weave in many of the earlier principles explained earlier.

Outline of early stage HTML lesson

Students start out their first language in Web Design (HTML), which is one of the more user friendly languages.

Still, our process went beyond just making a website, and digs more deeply into what makes a website good. We first talked about the key components of a website: Design, Content, and Navigation, and gave context to these by evaluating websites of own.

Following this, we went through two iterations of hand-drawn websites using peer feedback. That way, when students would be unleashed to their computers, they had a clear, purposeful vision for a website in mind.

Students would continue developing their websites and go through several other feedback processes, before submitting their work as a final project.

After Web Design, there is a Unit on Scratch, another user-friendly programming language (for games and animation). Lastly, the course closes with a Robotics Unit.

We did not touch on those Units during this PD, but will do so in the later ones during the year. Needless to say, we left with enough information to carry us through much of the school year.

Moving beyond CS content, this experience has also taught me that starting a intro level computer science class does not take a particularly high level knowledge the subject, but rather, just an interest and willingness to pursue it.

What next?

Exploring Computer Science (ECS) is not only a highly accessible curriculum to all learners, but all educators as well. The curriculum is free to access, and PD is provided at the beginning of the school year through the program. There’s already a strong national network of teachers and facilitators who use ECS everyday. Every school has teachers with the skills and competencies needed to teach this class.

A majority of your time is not spent in front of a computer, yet you will be paving the way for students to enroll (and have a much smoother transition) into higher-level computer sciences courses, such as Computer Science Principles (CSP), and even AP Computer Science.

The long term goal must be to be able to provide all students with these course offerings, if they choose to pursue it. That way, we can truly prepare them for opportunities in Computer Science.

In others words, why doesn’t every child in Kansas City (and our state/nation) have access to a comprehensive Computer Science education?

The opportunities in these careers are only growing, and the financial opportunity in these careers could be enough to disrupt generational poverty for students and their families. As such, we must begin to build the talent of our city and state from within — as a means of stimulating the community. The computer science education our kids receive must go beyond word processing and presentations, but engage them more critically with the technology of the present and the future.

Ways to Advocate and Take Action

(some resources at https://code.org/promote)

The resources to implement early-stage CS program at schools are definitely in reach. Exploring Computer Science (ECS) which this blog post is about, is aimed at secondary (grades 6–12) students, but there is a plethora of resources out there for older and younger groups.

Check out Code.org and their list of other 3rd-party CS websites.

“In fifteen years we’ll be teaching programming just like reading and writing… and wondering why we didn’t do it sooner“ 
-Mark Zuckerberg, 2016

President Obama recently spoke about a new initiative led by the White House called CS for All: The goal is to provide funding that should make it’s way down to the state and local level to push for more comprehensive CS education. As a community though, you can do the following right now:

Parents and community members: Contact your schools and districts about the current Computer Science offerings your school may have. Suggest ECS as a viable option if they do not have one. Push for Computer Science to be a requirement in you schools and districts. Call local and state officials to see proposed use of funds from the CS for All Initiative.

Educators: Talk to your administration about bringing ECS (or some other CS related coursework) to your schools. Advocate for meaningful legislation to make Computer Science accessible for all students. Talk to parents and families about demanding these classes at your schools and in your districts.

Administrators: Push to bring meaningful CS coursework to all students at your schools. Recommend legislation that gives extra funding to such programs. Encourage staff to participate in PD for Computer Science such as ECS.

Simply because we are behind the times, should not allow for us to let our children to follow.

Like what you read? Give David Persley a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.