Archive for December, 2019

What’s unique about CS education compared to other DBERs?

I was recently asked by an NSF program officer to answer the questions, “What makes CS education different than other discipline-based education research (DBER, like math ed, physics ed, or engineering ed)? What research questions might we ask (that we might not currently be asking) to improve practice in CS education?” If I’m going to write a long-form email reply, I might as well make it a blog post. I’m using the specific term, computer science education, not my preferred and more general computing education because the question was framed specifically about CS programs, not necessarily about information technology, information systems, cybersecurity, or other computing programs.

Computer science education research has a quadruple-whammy right now that isn’t facing any other DBER that I know:

  • ONE: We know less about how to do CS education well than we know about math, physics, science, or engineering education. A point I made in my SIGCSE keynote is that ASEE is 126 years old, NCTM started in 1920, and AAPT in 1950. CSTA started in 2004. With Ben duBoulay, I wrote the history chapter for the new Handbook of Computing Education Research. The field only dates back to 1967. Because CS is so new, there are few mechanisms to track progress at a systemic level. Most US states don’t gather data on CS like they do reading, science, mathematics, and other school subjects. We have less knowledge of how to teach and what’s going on because we’ve been at it for a shorter time.
  • TWO: Below are two slides that I built but decided to edit out of my SIGCSE keynote talk. These are about the relative sizes of CS Ed and other DBER conferences. CS departments are desperately seeking more faculty (see the latest job ads analysis here). We have fewer practitioners and researchers than these other fields.

  • THREE: Perhaps a natural consequence of the first two: CS teachers know less of what we do know about evidence-based methods than STEM teachers in other fields. Charles Henderson showed that the vast majority of physics teachers in the US know about evidence-based teaching methods (over 80%) and try to use them (over 60%). Christopher Hovey presented evidence that it’s a small percentage for CS teachers (closer to 10%, see paper here). This might be expected given that we’re new (e.g., haven’t had the time to develop dissemination mechanisms that actually reach teachers) and there are relatively few teachers (compared to other disciplines) so it’s a smaller target to reach.
  • FOUR: We are facing enormous economic demand for computer science. Undergraduate University CS enrollments are skyrocketing in the US. There’s a great story and infographic from UNC this last week on their enrollment demands.

The result is that we’re providing CS education to many students with few resources (teachers) and without a whole lot of data or use of evidence-based methods. From a research perspective, it’s also interesting that lots of students are resisting CS education — which is pretty common across STEM education. Students complain about algebra, calculus, physics, chemistry, and so on. The interesting twist is that students resisting CS ed are also then resisting the economic benefits, which makes it a bit more intriguing to study. The incentives are there, but many students still find the costs greater than the benefits.

Some of the research questions that I find interesting which are unique to CS education research:

  • Why isn’t the enrollment boom extending to high schools?. Undergraduate education is exploding, but over 90% of US high school students are avoiding computer science, even when it’s being offered (which Miranda Parker explored in her dissertation). These are much lower numbers than in other STEM fields. (See blog post here about the low CS numbers in high schools, and this blog post comparing CS to other STEM fields.) We need ethnographic work and design work, to understand what’s going on and to document what might influence students to find CS more attractive.
  • What would computing education look like for the other 90%? If we wanted to invent computing education that would reach the rest of US high school students, what would it look like? I suspect that the answer is going to be mostly about integrating CS into other-than-CS classes (like Bootstrap, STEM-CT, and Project GUTS). It’s an issue both of engaging students and getting teachers to adopt. I’m working on task-specific programming with teachers informing the design (see post here), to create programming that they’ll actually adopt and integrate into their non-CS classes. Katie Cunningham is working on inventing CS education that is focused on user needs rather than programming language demands. This is an area where we need a lot of design studies to explore a wide range of possibilities.
  • What’s going on in community college CS? I know of studies of CS education at the high school level, the four year college, and the university level. I know of few studies at the community college level. How do they manage the economic imperative of CS education with preparing the students to go on to university? How do they motivate students to complete degrees if students just want to get a good job?
  • What’s going on in undergraduate CS classes, especially during the enrollment boom? One of Lecia Barker’s greatest hits was her definition of the “defensive climate,” how students in CS are more about competing than collaborating, and even questions in class are more about showing-off than gaining knowledge. We published a paper that drew on defensive climate research at ITICSE last year (see blog post) — and that was one of the few papers published on the subject since Lecia’s ground-breaking work in 2002-2004. As I search in Google Scholar, I see a couple papers from Colleen Lewis (2011 and 2013), but other than those, there are very few papers testing or extending these notions over the last 15 years. Is “defensive climate” still an issue? I bet it is. How do we test for it? How do we address it? Is there a difference in climate between liberal arts and engineering based CS? How does the climate impact diversity? We have few studies of what’s going on in CS classes under these extreme conditions these days.
  • How do we improve teaching quality in CS education? CS education has an issue like Engineering, but unlike science and math. I bet few calculus teachers are seriously swayed by, “How do professional mathematicians use calculus?” But in CS Ed, we’re always swayed by that economic benefit — many CS teachers worry about preparing students for current jobs, for current tools and languages. That focus on industry may inhibit a focus on pedagogy, but that’s a hypothesis to be explored. How do we teach CS teachers to know and use better teaching methods? What influences adoption of new teaching methods? This is particularly an important question in post-secondary where we have such extreme enrollment pressure. When I talk to CS teachers about new methods, the most common response is, “Sure, but when could I learn to do that?!?”
  • What influences access to CS education?. When I teach my class on CS education research, I ask my students to identify open research questions. Last semester (see blog post here), a lot of their questions were about access to CS classes, which is complicated by the unique issues of CS education: How do parents’ education level/career influence student choices in CS, e.g. ,to take a CS class, to get a CS degree, to seek a CS job, etc.? Do students with learning disabilities (e.g., dyslexia) view code differently, and does that influence their participation in CS? Could we use fMRI or eye tracking to measure this? Why don’t more lower-income students go into CS, especially since it has such a large economic benefit? What percentage of current CS students are lower-income? How many lower-income students have the opportunity to learn CS and don’t take it?

With this post, I’m taking a break from the blog, both for the holidays and to deal with some intense proposal writing. It’s been an exciting year. I’m going to end with a picture from the recent Georgia Tech PhD graduation ceremony. Not only did I get to hood Dr. Miranda Parker, but Barbara and I watched our son, Dr. Matthew Guzdial, get his doctoral hood. It’s a nice bright spot to close out the year. I wish you a happy holiday season and a successful 2020.

December 23, 2019 at 7:00 am 20 comments

Why don’t high schools teach CS: It’s the lack of teachers, but it’s way more than that (Miranda Parker's dissertation)

Back in October, I posted here about Miranda Parker’s defense. Back then, I tried to summarize all of Miranda’s work as a doctoral student in one sentence:

Readers of this blog will know Miranda from her guest blog post on the Google-Gallup polls, her development of SCS1 as a replication of a multi-lingual and validated measure of CS1 knowledge, the study she did of teacher-student differences in using ebooks, and her work exploring the role of spatial reasoning to relate SES and CS performance (work that was part of her dissertation study).

That was a seriously run-on sentence for an impressive body of work.

On Friday, December 13, I had the great honor of placing an academic hood on Dr. Parker*.

I haven’t really talked too much about Miranda’s dissertation findings yet. I really want to, but I also don’t want to steal the thunder from her future publications. So, with her permission, I’m going to just summarize some of my favorite parts.

First, Miranda built several regression models to explain Georgia high schools teaching computer science in 2016. I predicted way back at her proposal that the biggest factor would be wealth — wealthy schools would teach CS and poorer schools wouldn’t. I was wrong. Yes, that’s a statistically significant factor, but it doesn’t explain much.

The biggest factor is…teaching computer science in 2015. Schools that taught CS in 2015 were many times more likely to be teaching in 2016. Schools have to get started! Hadi Partovi made this argument to me once, that getting started in schools was the biggest part of the battle. Miranda’s model supports his argument. There’s much more to the story, but that’s the biggest takeaway for me on the quantitative analysis.

But her model only explains a bit over 50% of the variance. What explains the rest? We figured that there would be many different factors. To make it manageable, Miranda chose just four high schools to study as case studies where she did multiple interviews. All four of the schools were predicted by her best model to teach computer science, but none of the did.

Yes, as you’d expect, access to a teacher is the biggest factor, but it’s not as simple as just deciding to hire a CS teacher or train an existing teacher to teach CS. For example, one principal laid out for Miranda who could teach CS and who would take their class, and how to fill that gap in the schedule, and so on. In the end, he had a choice of offering choir or offering CS. There were students in choir. CS was a gamble. It wasn’t even a hard decision for that principal.

Here is the story that most surprised me. At two of the schools Miranda studied, they teach lots of cyber security classes, but no computer science. As you would expect, there was a good bit of CS content in the cybersecurity classes. They had the teachers. Why not then teach CS, too?

Because both of these schools were near Fort Gordon which has a huge cybersecurity district. Cybersecurity is a community value. It’s a sure thing when it comes to getting a job. What’s “computer science” in comparison?

In my opinion, there is nothing like Miranda’s study in the whole world. There are the terrific Roehampton reports that give us a quantitative picture about CS in all of England. There are great qualitative studies like Stuck in the Shallow End that tell us what’s going on in high schools. Miranda did both and connected them — the large scale quantitative analysis, and then used that to pick four interesting high schools to dig into for qualitative analysis. It’s a story specific to Georgia, and each US state is going to be a different story. But it’s a whole state, the right level of analysis in the US. It’s a fascinating story, and I’m proud that she pulled it off.

Keep an eye out for her publications about this work over the next couple years.

* By the way, Dr. Parker is currently on the academic job market.

December 16, 2019 at 8:00 am 6 comments

Why some students do not feel that they belong in CS, and how we can encourage the sense that they do belong

One of my favorite papers at ICER 2019 was by Colleen Lewis and her colleagues, and is available on her website. I’ll quote her first:

Does a match between a students’ values of helping society and their perception of computing matter? Yes! A mismatch between a students’ goals of helping society and their perception of computing predicts a lower sense of belonging. And students from groups who – on average – are more likely to want to help society (women, Black students, Latinx students, and first-generation college students), this may be particularly problematic! (pdf)

  • Lewis, C. M., Bruno, P., Raygoza, J., & Wang, J. (2019). Alignment of Goals and Perceptions of Computing Predicts Students’ Sense of Belonging in Computing.Proceedings of the International Computer Science Education Research Workshop. Toronto, Canada.

I want to expand a bit on that paragraph. I often get the question, “Why aren’t more women and URM students going into CS?” We’re seeing female students and students of color leaving/avoiding CS at many stages, e.g., Barb’s deep analysis of AP CS*. Colleen and her collaborators are giving us one answer.

We know that students who have a sense of belonging in computing are more likely to stay in computing. Colleen et al. found that students who found that their values were supported in computing were more likely to feel a sense of belonging. So, if what you want to do with your life matches computing, you’re more likely to stick around in computing. This is the “alignment of goals” and “perceptions of computing” part of the title.

Next step: Students from demographic groups underrepresented in computing were more likely to value community and helping society than other students. These are their goals. Do students see that their goals align with their perception of computing? If so, then you have an increased sense of belonging. Colleen and her colleagues found that If the students who valued community perceived that they could use computing to support communal values, then they were more likely to stick around.

This result is obviously explanatory. It helps us to understand who stays in computing. It also suggests interventions. Want to retain more under-represented students in your CS classes? Help them to see that they can pursue their values in computing. Help them to update their perceptions so that they see the alignment of their goals with computing goals.

But what if you (as the teacher) don’t? This paper suggests future research questions. What if your CS class is entirely de-contextualized and doesn’t say anything about what the students might do with computing? What perceptions do the students bring to the CS class if nobody helps them to see the possibilities in computing? Which student goals align with these perceived goals of computing? We might guess what the answers might be, but it really does call for some explicit research. What are students’ goals and perceptions of computing in most CS classes today?

* Check out Barb’s blog at As I’m writing this, Barb is finishing up the 2019 AP analysis. The gap between white and Black student pass rates on AP CSP is enormous, far larger than the gap on AP CS A. I’m hoping that she has updates there by the time this post appears.

December 9, 2019 at 7:00 am 1 comment

Please forward to high school history teachers: Task-specific programming in social studies data viz


We built this tool, DV4L (Data Visualization for Literacy), to help teachers quickly create data visualizations for social study classes. This is currently a minimum viable product (MVP) version of our tool, and we would like to collect your feedback so that we can improve! 

  • Please take a few moments and try out our tool at
  • We intend for DV4L to be intuitive and easy to use, so you shouldn’t need any instructions to start. (If you ever see a screen with ‘TOO MANY CONNECTIONS’ on the top, please just wait for a few seconds and refresh the page.)
  • After you have tried out the tool, please take a few minutes to fill out this survey at

We would really appreciate it if you could do this by Sunday Dec 8th to meet our class requirements. 

Feel free to share this with any other teachers or students who would like to try this out. Thank you so much!

I have been working with a team of four University of Michigan Computer Science students (in a class with Elliot Soloway) to develop a data visualization tool for history classes. They have a prototype ready for testing, and they need user data for their class by Sunday, December 8. Could you please forward this to any high school (or middle school) history teachers you know? They would also love to get some feedback from high school history students, too.

Here are three reasons why I’m excited about this tool.

First, the team really listened to us, our history professor collaborator (Tammy Shreiner), and the social studies teachers who gave us feedback on different data visualization tools. One of the students drove 2.5 hours to attend a participatory design session with social studies teachers in October. As an example, there are driving questions for each database, to guide students in what they might inquire about — that’s a specific request from Tammy.

Second, this is a tool for history inquiry. Data visualization tools like Vega-Lite and CODAP are terrific. (Readers of this blog know how impressed I am by Vega-Lite.) But they’re not designed for inquiry. As Bob Bain has taught me, historical inquiry starts from two pieces of evidence or two accounts that disagree. This tool is designed to support comparing different pieces of evidence, and maintaining a trace of what you’ve explored. Inquiry is about comparison, not from building a single visualization.

Third, this is task-specific programming in a subtle and interesting way. You build visualizations by making choices from pull-down menus on the left. As you find interesting graphs, you save them to the right. When you want to remember what the graph is about, you hover over it and get a textual representation of what pull-down menus generated this graph. I’m arguing that hover text is a program —- it’s a representation of the process for generating that graph, and it serves as a reminder of where you’ve been. It’s a program whose value is in reading it, not executing it.

Amy Ko told me once (I’m paraphrasing) that a program is a description of a process for the future. Using a tool is for now. A program represents the future. This program could be executed by the user in the future — set the pop-up menus to the same values, and you’ll get the same visualization. More importantly, the program represents the past and serves as a reminder for what you can do next.

Please do pass this around so that our team can get a sense of what’s working and what’s not in this prototype. Thanks!

December 5, 2019 at 8:00 am Leave a comment

When computer science has to be a requirement if we want it to be available to everyone

Robert Sedgewick had an essay published at Inside Higher Ed last month on Should Computer Science Be Required? (see link here). He has some excellent reasons for why students should study computer science. Several of them overlap with reasons I’ve suggested (see blog post here). He writes:

Programming is an intellectually satisfying experience, and certainly useful, but computer science is about much more than just programming. The understanding of what we can and cannot do with computation is arguably the most important intellectual achievement of the past century, and it has led directly to the development of the computational infrastructure that surrounds us. The theory and the practice are interrelated in fascinating ways. Whether one thinks that the purpose of a college education is to prepare students for the workplace or to develop foundational knowledge with lifetime benefits (or both), computer science, in the 21st century, is fundamental.

So, we both agree that we want all students in higher education to take a course in computer science — but he doesn’t want that course to be a requirement. He explains:

When starting out at Princeton, I thought about lobbying for a computer science requirement and asked one of my senior colleagues in the physics department how we might encourage students to take a course. His response was this: “If you do a good course, they will come.” This wisdom applies in spades today. A well-designed computer science course can attract the vast majority of students at any college or university nowadays — in fact, there’s no need for a requirement.

Colleges and universities offer the opportunity for any student to take as many courses as they desire in math, history, English, psychology and almost any other discipline, taught by faculty members in that discipline. Students should have the same opportunity with computer science.

I have heard this argument before. Colleagues at Stanford have pointed out that most of Stanford undergraduates take their courses, without a requirement. Many colleagues have told me that a requirement would stifle motivation and would make students feel that we were forcing computer science down their throats. They would rather “attract” students (Sedgewick’s word above). I recognize that most students at the University of Michigan where I now work have the kind of freedom and opportunity that Sedgewick describes.

But I know many institutions and situations where Sedgewick’s description is simply not true. CS teachers can try attracting students, but they are only going to get them if it’s a required course.

  • In most Engineering programs with which I am familiar, students have relatively few electives. In most of the years that I was at Georgia Tech, Nuclear Engineering students had no elective hours — if they took even a single course out of the planned, lockstep four years, the degree would take them longer (and cost them more). Mechanical Engineering students had exactly one three credit hour course that they could choose over a four year program. These are programs where students are not allowed to take any course that they desire. Those two degree programs are extreme situations (but still exist at many institutions). Even here in Computer Science & Engineering at the University of Michigan, students are limited in the number of elective hours that they can take outside of CS and engineering classes. For many technical degrees, if you want students to take a particular subject, you have to convince the faculty who own that degree to include computer science in those requirements. At Georgia Tech, we had to sell a computer science requirement to the rest of campus. I tell that story here.
  • If students are paying by the course, then they take the courses that they need, not the ones that they might desire. I worked with Chattahoochee Technical College when I was in Georgia. They struggled to get students to even finish the requirements for a certificate. Students would take the small number of courses that helped them to gain the job skills that they needed. Completing courses that were merely interesting or recommended to them was simply an unnecessary expense. There are millions of students in US community colleges. If you really think that everyone should learn computer science, you have to think about reaching those millions of students, too.
  • Finally, there are the students who might end up loving computer science but, right now, they don’t desire it. First, they may simply not know what computer science is. In California (as an example), only 39% of high schools offer computer science, and only 3% of all California high school students take it (see link here). Alternatively, they may know what computer science is, but have already decided that it’s not for them. In my group’s research, we use expectancy-value theory often to explain student behavior — if students don’t think that they’ll succeed in computer science, or don’t see people like them belonging in computer science, then they won’t take it. That’s one reason for mandatory computer science in high schools — to give everyone the chance to discover a love in CS. So far, it’s not working in US high schools. I have argued that (see article here) we don’t know how to ramp up to that at the high school level yet. But we certainly could at the higher education level.

I understand Sedgewick’s argument for why he wants to offer the most compelling computer science course he can at Princeton, in order to attract students and motivate them to learn about computing. (I don’t agree with him that curated online videos are better than live lectures, but I think we mean something different by “lectures.”) I also understand why making that course a requirement might undermine his efforts to motivate and engage students. But that’s only a small percentage of students at the Princeton-like institutions in the US, and elsewhere. I’m sure he would agree that everyone deserves the opportunity to learn about computer science. His reasons why CS is important for Princeton students are valid for everyone. We are going to need different strategies to reach everyone. For some students, a requirement is the only way that we are going to make it available to them.

December 2, 2019 at 7:00 am 16 comments

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 7,127 other followers


Recent Posts

Blog Stats

  • 1,721,679 hits
December 2019
« Nov   Jan »

CS Teaching Tips