As a programmer, I’ve used and struggled with the APIs of many code libraries and frameworks: from data visualization (d3.js, ggplot2) to statistics (many in R) to web development (Ruby on Rails, Bootstrap) and many more.

My two co-authors and I were interested in how to best categorize the knowledge needed to successfully work with APIs. Before I tell you our three categories though, a story of failure, learning, and then success:

A Story: Statistical Tests in R

Early in my PhD studies, I finally got my first dataset to run an experiment on. I wanted to use it to determine if people’s use of an online debugger varied with culture. To see if our dataset fit our predictions about culture and debugger use, I decided to use the R programming language to run some statistical tests. …


We need better PD for CS educators, and Dr. Sue Sentance guides us through the decades of PD research to make it happen!

Early this month, I got to serve as session chair for Dr. Sue Sentance’s keynote speech at the CSEdGrad Virtual Conference. This conference is part of a larger effort by the organization to grow and develop the community of computer science education researchers.

Dr. Sentance gave a talk on professional development for CS educators and her work with the Raspberry Pi Foundation, England’s National Centre for Computing Education, and King’s College London make her the perfect expert to speak about the topic. The gap in professional development for CS educators manifests through a shortage of CS teachers and trouble retaining qualified teachers in the US and all over the world. Thankfully, there are decades of research in professional development and Dr. …


A screenshot of Google search with the query “is google oppressi” and the suggestion “what is oppression google scholar”
A screenshot of Google search with the query “is google oppressi” and the suggestion “what is oppression google scholar”
Don’t change the subject Google.

I spent this summer reading a lot about race and technology (McIlwain, Eubanks, Benjamin, Costanza-Chock, and more). Most of my reading has been broadly scoped, focusing on all of technology and its historical and present day interaction with race. In some ways, this has been transformative, giving me an entirely new lens with which to think about the past and the present, and my role in it. But on other ways, this has been overwhelming, since it’s meant grappling with the entire history of technology and race in the United States, particularly computing.

To give myself a break—if I can call it that—recently I turned my attention to a more narrowly scoped book, Safiya Umoja Noble’s Algorithms of Oppression: How Search Engines Reinforce Racism. Dr. Noble is a professor at the UCLA Department of Information Studies, where she directs the Center for Critical Internet Inquiry. She is a colleague in one sense, as we’re both professors at information schools. But in other ways, we are worlds apart. Her background was in library and information studies; mine was computer science. She’s had eclectic academic appointments in African American Studies, Information Science, and Gender Studies across three institutions; I’ve only ever been at an information school. She identifies as Black; I as White and Asian. And yet, through the wonders of interdisciplinarity, I find myself reading her work, building upon it, and teaching it. …


A Scratch program that, when clicked, redundantly updates a character’s speech bubble to say “editor!” 28 times.
A Scratch program that, when clicked, redundantly updates a character’s speech bubble to say “editor!” 28 times.
When I say block-based, you say editor. Block-based! Editor! Block-based! Editor!

I’ve been writing about some heavy things lately—race, gender, politics. As passionate as I am about these large issues in society, I occasionally need an intellectual palate cleanser. Something light, small, maybe even trivial, maybe even pointless. Tackling these little things like like a cool down after a workout: it’s a way to slow down in a measured way from something intense, before finding a more peaceful resting state. Like Thanksgiving weekend.

What better than a rant about word choice? I am an academic after all, and so this wouldn’t be an academic blog if I didn’t at least occasionally get far too annoyed about the words that people use. …


A photograph of a display showing a slide titled “Critical Computing Education”, with an iPad hovering above showing Zoom.
A photograph of a display showing a slide titled “Critical Computing Education”, with an iPad hovering above showing Zoom.
This is what an invited talk looks like now.

For researchers like myself, one of the major disruptions from the pandemic has been the loss of travel. Most years, I would fly more than 50,000 miles a year, attending 4–5 conferences to share research and network, visiting universities to give invited talks and meet new faculty, and also spending a good amount of time at the National Science Foundation, evaluate proposals by my colleagues. This travel would take me all over the world, including Europe, Asia, Australasia, and sometimes South America and Africa. I’ve always tried to make the most of this incredible privilege to roam, learning about the countries I visited, deeply networking with its scholars, and building on those in-person encounters online. …


A photo of a Black Lives Matter protest showing a row of police on the left and a row of protested on the right
A photo of a Black Lives Matter protest showing a row of police on the left and a row of protested on the right
Photo by Koshu Kunii on Unsplash

I am no expert at managing conflict. For most of my life, I’ve avoided it, and when I find myself immersed in it, I get scared, anxious, overwhelmed, and consumed by it. At best, I’m unconstructive and at worst, I’m combative and destructive. The only thing that saves me is that I’m usually self aware enough to know I’m doing these things that I can pull myself out of the situation.

Unfortunately, avoiding conflict is no way to make change. Our long unjust history in this country has shown that change doesn’t come from everybody avoiding their disagreements. We have to engage hard topics, and that can be uncomfortable, as it can involve strong emotions, arguments, protest, and more. …


An illustration of a Terminator robot with a thought bubble that says “IF OBJ.IS_HUMAN DESTROY OBJ
An illustration of a Terminator robot with a thought bubble that says “IF OBJ.IS_HUMAN DESTROY OBJ
Is the Terminator is coming for your curriculum?

In case it hasn’t been obvious, I’m really interested in computing education right now. There are so many things I like about: a growing and inspired researcher and practitioner community, an abundance of hard, unanswered questions, and—as someone who identifies fundamentally as a human-computer interaction researcher—phenomena rich with people interacting with computers. I’m all in!

However, as some people know, I’m also quite fond of being contrarian, taking something widely accepted or cherished and questioning it as deeply as I can. This includes my own ideas and passions. …


The top of the cover of McIlwain’s book, showing the title “BLACK SOFTWARE” and a pixelated fist.
The top of the cover of McIlwain’s book, showing the title “BLACK SOFTWARE” and a pixelated fist.
Yes, I still by print and no, I didn’t buy on Amazon.

I teach undergrads. And with few exceptions, most of them are just barely 20, only just aware of themselves, let alone the world, and the histories that have shaped it. Because I teach about computing and information, the gaps in my students’ knowledge become clearest when I speak of my own history with technology: one that started with no internet, no smartphones, no apps, no data. I talk about how my early childhood was one of creative play within limits, because my access to information and games was bounded by my access to libraries, newspapers, magazines, floppy disks, and trips to Incredible Universe. I contrast that with my young adulthood, in which IRC, Compuserve, AOL, and Lycos connected me to meme proto-cultures, chat rooms with creepy adults talking to teens, and the earliest of gender non-conforming online communities. …


Image for post
Image for post
A figure from Benji Xie’s 2019 paper “A Theory of Instruction for Introductory Programming Skills”, which has formed the basis for much of our work on the grant in the past 3 years.

Ever since I started writing proposals to government research foundations—primarily the National Science Foundation (NSF)—I’ve felt a strong civic responsibility to be as public as possible about what I’ve done with the money. NSF itself builds in some of this in its requirements, asking investigators to write short 500 word project outcome statements, which appear on its websites. But that format always seemed so limited and formal, preventing me from telling the full story behind a grant. To supplement this, I started blogging about grants that have ended, both as a way of telling this backstory, but also as a way of marking a milestone in my professional career, as grants tend to have a major impact on my ability to conduct research, mentor students, and have impact. …


A photograph of the cherry blossoms in the University of Washington quad.
A photograph of the cherry blossoms in the University of Washington quad.
“University of Washington Cherry Blossoms by Michael Matti” by Michael Matti is licensed under CC BY-NC 2.0.

Most people know the story by now. George Floyd was at a convenience store and allegedly used a counterfeit $20 bill. The store owner, following store policy, called the police. The police came, interrogated Floyd, and then police officer Derek Chauvin wrestled Floyd to the ground and knelt on his neck for 8 minutes while Floyd repeatedly expressed that he could not breathe. Floyd called for his mother, got quiet, and then died. The other officers did nothing, local protests ensued, and what is likely the largest protest against police violence in U.S. …

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store