England: Time to replace Computer Science with Computing

This is policy wonk stuff, but I find policy fascinating. As a researcher, it’s hard to figure out “How are most people (students, faculty, whatever) in this field thinking about X?” Policy-makers have to figure that out, too, and then have to respond. A change in policy is like a research paper that says, “We found that the status quo wasn’t working anymore.”

The English government has just conducted an independent review of all their school curricula (see report here).  The review is critical of how Computer Science is working in English schools today. They say that Computing now pervades all disciplines and “digital literacy” should be taught in an integrated manner. I recommend reading the report — it’s accessible and covers a bunch of important issues, like who is taking CS and where there’s a split between policy and practice.

One of the explicit recommendations is that the government:

Replaces GCSE Computer Science with a Computing GCSE which reflects the full breadth of the Computing curriculum and supports students to develop the digital skills they need.

The government response (linked here) agrees:

We agree with the Review that the computing curriculum should be the main vehicle for teaching about digital literacy, and we are confident that delivering the computing recommendations will provide more pupils with valuable digital skills that are essential for the future.

It is also clear that, in some subjects, digital methods now influence the content and how it is taught. We will work with experts to assess the validity of digital practice in these subjects, the evidence of whether this can be done robustly and whether it merits inclusion in the new curriculum. Where it does, we will include a requirement for the relevant digital content in those subjects’ programmes of study and we will ensure that it aligns with the computing curriculum, to reduce the risk of duplication.

We will also replace the computer science GCSE with a broader offer that reflects the entirety of the computing curriculum whilst continuing to uphold the core principles of computer science such as programming and algorithms, and explore the development of a level 3 qualification in data science and AI.

Bottomline: CS just isn’t the thing anymore. Computing and computing across the curriculum is what is needed.

As a director of a Program in Computing for the Arts and Sciences, and someone who spent 25 years in a College of Computing, I wholly endorse this change and welcome it. As I described in a blog post from a couple of years back, “computer science” was originally invented to be a broad subject to be taught to everyone. Over the last 60 years, “computer science” has become more narrow (e.g., overly emphasizing algorithms while de-emphasizing building and creativity and social impacts, as Sue Sentance describes in this blog post, while “computing” represents a broader perspective. When we think about what should be taught to everyone in secondary school, Computing (and digital literacy, as the reports suggest) are more appropriate than what we now mean when we say Computer Science.

February 24, 2026 at 8:00 am 1 comment

GenAI as automobile for the mind, and exercise as the antidote: A metaphor for predicting GenAI’s impact

Some of you may remember the Apple ads that emphasized the computer as a “bicycle for the mind.”

(From https://folklore.org/Bicycle.html)

GenAI is not like a bicycle for the mind. Instead, it’s more like an automobile. I’m finding that comparison to be useful in thinking about how GenAI may impact our world.

A bicycle extends our abilities. It allows us to do more with our legs and bodies than we can without the bicycle. The automobile also extends our abilities, but it doesn’t use those abilities. As Paul Kirschner recently wrote, GenAI is not cognitive offloading. It’s outsourcing. We don’t think about how to do the tasks that we ask GenAI to do. As the recent Anthropic study showed, you don’t learn about the libraries that your code uses when GenAI is generating the code for you (press release version, full ArXiv paper).

Automobiles have had an enormous impact on modern society. We can go places and do things that we couldn’t previously. Most of us can’t bike across the US, but many of us drive across it. So, we drive a lot and bicycle less. But there’s a cost — our bodies and minds atrophy if we do not use them.

Ford sold the Model-T as a general tool. (“You can have any color you want as long as it’s black.”). Users made changes to it to adapt it for various conditions and tasks. Today, those changes have led to a wide range of vehicles for a wide range of purposes: sedans, minivans, pick-up trucks, SUVs, and big rigs for hauling materials over long distances. Ford could not have anticipated all those different uses and specializations. They evolved over time.

To gain the benefit of automobiles, we made enormous changes to our infrastructure. We have freeways and driveways, garages and parking structures, gas stations and tire shops. We have changed our environment in order to use the automobile more.

But over time, we have seen those costs. Automobiles (and associated infrastructure, like blacktop parking lots) have had a large, negative impact on our ecology. Neighborhoods were destroyed when freeways were built through them.

We are starting to roll back some of our society’s earlier decisions that favored the automobile. We develop hybrid and electric cars that have less negative impacts on our ecology. In my town, bike lanes are being added, explicitly to choke automobile traffic in order to encourage more biking and less driving. We want people to use their bodies more. Exercise is an antidote to many of the automobile’s ills.

Here’s what I predict based on this comparison:

  • We are going to see more specialized forms of GenAI, that we are going to have difficulty imagining today. Already, I am seeing the best learning outcomes from tools where GenAI is built into the tool (like Xu Wang’s work and Barbara Ericson’s). Chat is the Model-T of GenAI. It’ll get used for lots of purposes, but we’ll eventually figure out the specialized forms that will be much more useful.
  • We are going to change our infrastructure to enable GenAI. More power plants, more power distribution, more data centers. Eventually, we’ll figure out that we went too far, and we’ll scale those back. But right now, it’s hard to estimate what’s “too far.”
  • We will likely overuse GenAI and some of our abilities will atrophy, without a lot of self-regulation and careful consideration of how we use GenAI. Generative AI is a marshmallow test. We will have to figure out that we need to exercise our minds, even if GenAI could do it easier, faster, and in some cases, better.

February 16, 2026 at 8:00 am Leave a comment

Personally Meaningful Data to Motivate Learning in Data Science and AI

I have written several blog posts about the different ways to implement Media Computation in introductory programming courses. We built JES at Georgia Tech in 2002 and the final release was in 2020. Our introductory course in PCAS that uses Media Computation, COMPFOR 121: Computing for Creative Expression, uses Snap! and Pixel Equations (as described in this blog post). Our Python course (COMPFOR 221: Digital Media with Python) started in Python3 with the JES4Py library, but then we moved to Google Collaboratory notebooks (the libraries for that are available here).

Dave Largent at Ball State continues to teach Media Computation. The students in his course compete in an art show each term for which I’ve served as a judge. Dave let me know that he and his students have extended JES4Py and have released a new library:

I’ve had a couple of undergrad students working with me to redevelop/extend Gordon College’s JES4py package. We’ve published it at PyPI under the name mediaComp (https://pypi.org/project/mediaComp/). Our GitHub is https://github.com/dllargent/mediaComp.

Why is this interesting? Why is anybody teaching with a 20 year old method, and even making new libraries for it?

Maybe because it answers a CS education need that has only grown more important. Data science is a bigger deal now than it was 20 years ago. Ben Shapiro told us in 2018 that machine learning was going to change the CS curriculum, and we needed to think more about data. But what data are interesting to students?

The empirical studies in computing education research are pretty clear: Motivation matters.. Students get frightened off by computer science classes. They find our examples boring. If we can teach the same computing concepts using any data, why not use data that students find interesting?

I’ve heard Jens Mönig, lead architect and developer on Snap!, answer this question several times in several talks. There’s a new interview with him in the most recent ACM Inroads magazine (link) with Jens where he makes the point again. Students are interested in their data. Personal data, data about them, data that they make, data that are relevant to them. The phrase in the Constructionist community is “personally meaningful.”

Media Computation is data manipulation with personally meaningful data — your pictures and sounds, or the pictures and sounds that interest you. There are a lot of pixels and samples in those pictures and sounds. Those are data that matter to the students who care about those pictures and sounds.

Media Computation as an approach is not going to be for everyone. But every computing teacher should answer the meta question, “Why should my students care about these data?”. We often use the Corgis project data to help students find data that are personally meaningful. That’s where you can find the Titanic passenger dataset that Jens talks about in his interview. I am an advisor to API Can Code, which is a curriculum all about doing data science with live data that students might care about.

My point here isn’t that all teachers should use Media Computation. My point is that all computing teachers should engage students with personally meaningful data.

Image of ferns copied four times vertically where colors are manipulated in the copies
Student collage from COMPFOR 221 last year

February 9, 2026 at 8:00 am 3 comments

Come join us at the ITiCSE 2026 Doctoral Consortium!

I’ve reached the stage in my career where I’m attending conferences not because I’m presenting a paper but because I’ve agreed to take on a service role.. That’s not a bad progression. I won’t be at ACM SIGCSE 2026 because I have neither a paper not a service role — I’ll miss seeing everyone, and hope you enjoy St. Louis.

I will be at ACM ITiCSE 2026 and 2027, serving as co-chair for the Doctoral Consortium. Please, PhD students, come join Monica Divitini from NTNU and me at this year’s DC in Madrid. More information on the DC and how to apply is here.

I will also be at ACM ICER 2026 and 2027, serving as co-chair for lightning talks and posters. I’ll pester you with that Call for Participation when the page gets posted.

February 6, 2026 at 8:00 am 2 comments

Defining Learner-Centered Design of Computing Education: What I did on my sabbatical

My planned activity during my sabbatical was to revise my 2015 book “Learner-Centered Design of Computing Education.” One of the fixes I wanted to make was a better definition of what “learner-centered design” was. In the new edition, I wrote some formal defining stuff, and then I wrote the below — an extended metaphor to make distinctions between different kinds of “centering” in education. I’m sharing that section here (in its pre-reviewed and pre-edited state). It comes right after defining what the Zone of Proximal Development is and what student performance means.

There are many different kinds of teaching activity that can help a student reach a more sophisticated level of performance. A teacher can model successful performance. The teacher can give feedback on the student’s performance. The teacher can coach or guide a student while attempting a task. They can set expectations in the class which create a social context for success. They can use teaching methods that have a proven research record in promoting engagement and student performance.

Figure 1: A metaphor for teaching contrasting learner-centered and standards-centered

Consider teaching from the top or bottom of the ZPD. Here is a metaphor to make distinctions between two kinds of support in order to create a geography of teaching. Imagine the ZPD as a climbing wall (Figure 1). The student is at the bottom and wants to reach the top. Depicted as grayscale images in this figure, here are two ways a teacher might support the student in scaling this wall:

  • The supporter at the bottom can help the student get started, giving them a “boost” or “leg up.”
  • The supporter at the top can reach down, and get them the rest of the way to the top of the wall.

The supporter at the bottom is more flexible than the one at the top. She can move to where the student is actually standing. She can help the student scale different parts of the wall or even reach different goals along the wall. She can bend even further if the student is shorter.

But a disadvantage for the supporter at the bottom is that she cannot be absolutely sure that the learner reaches the top. She can meet the student where they are when they first face the wall. She can help them get started on whatever path they choose on the wall.

The supporter at the top can help students who are almost at the top of the wall. He can be sure that students actually reach the learning objective. When he is reaching down, he is in a fixed position. He can help the student reach the objective where he is at, the level that he has already achieved. He can also be sure when a student does not reach this standard – he can see the students who fall, or who do not make it to his level. He is in a better position to decide whether the student is going to achieve the desired objectives.

The supporter at the bottom is more learner-centered. The supporter at the top is more standards-centered. Neither supporter is particularly strong at helping the student in the middle, when the student is challenged to persist, to stay engaged, and to maintain motivation. If the student is not particularly interested in achieving the top of the wall, they are satisfied making it part-way to the objective, then the learner-centered teacher has the most to offer.

Learner-centered teaching is concerned with helping students where they are, helping them to get started, and getting them engaged and motivated to tackle the mid-part. Low enrollment and high withdrawal or failure rates (sometimes called WDF rates) are issues that learner-centered teaching addresses. Learner-centered teaching also addresses issues of diversity, with the goal that all kinds of students can succeed in the class — even those who think that they cannot succeed or do not have the prior background to succeed.

Standards-centered teaching is concerned about making sure that students have what they need to go on, in their studies or in their career. Students who fail the second class because they did not learn enough in the first class is an issue for standards-centered teaching. Talking to industry partners about the desired out- comes is standards-centered. Concern about what graduates can do and achieve is a standards-centered teaching issue.

(I’m skipping some text here about teacher-centered, classroom-centered, and other forms of structuring education.)

I am splitting hairs a bit between child-centered and learner-centered. Learner-centered also starts from the students’ interests and considers the learner’s needs, and is very much about student construction of knowledge in their own minds, since that is how learning takes place. As described in Chapter 2, the knowledge to be learned in learner-centered education is defined by the community of practice. That is external to the learner.

Within the metaphor, I am describing three kinds of teaching: Learner-centered (supporter at the bottom), standards-centered (supporter at the top), and maintaining motivation and engagement (in the middle). Of course, teachers and students have to address all these issues, but it is sometimes useful to focus on one part. Consider this metaphor: If you have heart problems, it is important to go to a cardiovascular specialist. That does not mean that you do not need to care about skeleton, digestion, and skin; you need all of those, but sometimes you can address critical issues or fix problems by specializing. I focus on the first one because it is the most important. I like the way my colleagues Amy Bruckman and Betsy diSalvo put it

Computer science is not that difficult, but wanting to learn it is.

February 3, 2026 at 8:00 am 4 comments

A New Zealand Perspective on the Challenges of Computing Education: What I did on my sabbatical

During our sabbatical, Barb and I spent a week in Auckland. We gave talks at the Auckland University of Technology and University of Auckland. Alison Clear (past Chair of the SIGCSE Board) and Tony Clear hosted us in their home, which was made even more delightful by Cary Laxer and his wife visiting. Alison organized a picnic with Paul Denny and Andrew Luxton-Reilly and their families. Tony hosted us at AUT, and Paul hosted us at the University of Auckland. It was a wonderful experience. If you ever get the chance to try Alison’s cooking, you have to take it. She’s amazing.

We got the chance to talk to Tony about some of his recent columns in Inroads magazine. I admit that when I get a new issue of Inroads or Communications of the ACM, I skim the table of contents for new feature articles. I usually skip the columns. After talking with Tony about his recent columns, I realized that I was missing out.

Tony writes from his perspective as a New Zealand scholar. It’s different than the average American perspective. The experiences and values lead to different questions and concerns.

We talked with him a good bit about his piece: “Large Language Models, the ‘Doctrine of Discovery’ and ‘Terra Nullius’ Declared Again?”. I didn’t know that the European colonists who came to Australia and New Zealand had papal permission. Australia was declared terra nullius — nobody owned the place, so go ahead and take it over. New Zealand was recognized as being run by the Māori, so colonizing there had to be negotiated. Tony asks, “So which of these models gives LLMs the right to consume the Internet?” Do we assume that nobody owns all the content on the Internet (like Australia)? Or should we be negotiating rights? The idea of LLM providers as a colonizing force was a fascinating perspective.

We also talked about his column that was published after we left: Project Carbon Budgeting. People in New Zealand were much more critical than in the US about data centers relying on nuclear power. New Zealand is a nuclear-free zone. They decided that the benefits are not worth the risks. Tony’s position is less critical about the LLMs themselves than he is about our job as educators. LLMs are having a huge impact on CS education, but we are not talking enough about the ethics of their use — from energy demands to ecological impacts. It’s our job to raise these issues in our classes. In New Zealand, the fact that GenAI providers are nuclear-powered is a critical issue. CS educators should be talking about that.

I’ve been fortunate to know Tony for a long time. We have had lots of research discussions. We have served as mentors at the same Doctoral Consortia. It wasn’t until I was talking with Tony about his columns, after I’d already been living in New Zealand for several weeks, that I became attuned to the New Zealand perspectives that he was bringing to his columns. That’s entirely on me — I wasn’t paying enough attention.

But that’s made me think about where else we make assumptions about a shared perspective when there’s actually an important difference that helps to see situations in a new light. Alan Kay famously said, “A change in perspective is worth 80 IQ points.” A quote (often attributed to McLuhan and his students, but is actually older), “I don’t know who discovered water, but it wasn’t a fish.” If you don’t see a problem from other perspectives, you may not be seeing the problem at all.

Last month, my daughter was married in Indore, India. It was beautiful — an amazing set of ceremonies over several days. This trip was the most time I have spent in India, and the most I have traveled there. It was such a radically different context than my life as an American professor in a college town. When I came back to the new term, I was immersed in the on-going discussions about GenAI in our classes, about how AI is going to take everyone’s jobs, and on how we should start planning for a “post-labor” society. I understand why the people in my daily context are worried about AI. I’m not sure that it’s the same for people I met and interacted with in India. Will GenAI be changing the real estate business all that much? Construction? Being a travel guide for foreigners? Tailoring clothes? Driving an auto-rickshaw? Or even driving at all? I’d never trust an autonomous vehicle trained in the US on the streets in the Indian cities I visited. I know that I saw only a small slice of India, but even that small slice gave me a different perspective than my daily life. GenAI is going to change a lot, but maybe we overestimate the impact because of the bubbles we live in.

ACM SIGCSE now has the ACM Global Computing Education Conference (CompEd), held this last October in Botswana. I hope that this conference will help all of us see our CS education problems and issues in new perspectives. Tony helped me see the New Zealand perspective in his columns. My time in India gave me new insight into the US-centrism of the AI discussions I’m part of. We could use those additional 80 IQ points.

January 26, 2026 at 8:00 am 2 comments

Learning to teach better by observation: What I did on my sabbatical

“You can observe a lot by just watching.” – Yogi Berra

I had a couple of amazing experiences that made me think about how little we see each other teach and how much can be gained from doing it more.

Having a teacher watch me

We’re challenged to scale PCAS when we don’t have an undergraduate major nor a graduate program. For us to hire undergrad or graduate teaching assistants means we have to recruit from other majors and departments. CS and Information majors often don’t work out, in part because it’s a foreign idea for them to learn about computing and programming for a purpose other than getting a Tech job.

Last Fall, we discovered that the Math Department had PhD students who are former K-12 math teachers. They care about teaching, they’re trained as teachers, and the Math Department can’t employ them all. They are amazingly motivated graduate students. They gave up paying gigs to become students. When we lose them as teaching assistants, we typically lose them to research positions.

Katie Waddel was the first math PhD student with whom I worked. She worked with me on “Digital Media with Python.” She was much more a co-teacher than a teaching assistant. She came to every lecture. She had great ideas for improving the course structure. Like coming up a with a classroom seating rotation sure that the quiet kids would get the chance to sit near the more talkative kids for better discussions.

And sometimes — ever so kindly — she gave me notes on my teaching. She’d point out where some group of students wasn’t getting something, and we’d talk about how to change what I was teaching. Or she’d tell me when I was getting too geeky, and we’d talk about better ways of explaining the technical content.

I’ve been teaching a long time — it’s been 45 years since I taught my first programming course. I have team-taught maybe a dozen times. have rarely had someone try to make me teach better. It was a great experience that I heartily recommend.

Watching a master teacher

From February to May of 2025, my wife, Barbara Ericson, and I taught at the University of Canterbury in Christchurch, New Zealand. We were on sabbatical (my first!). It was an amazing experience. I got to team-teach with Tim Bell. Tim is the inventor of CS Unplugged, ACM Karlstrom Award winner, and SIGCSE Outstanding Contributions award winner — and a keyboardist (we heard him perform several times while we were there).

Probably a surprise to no one, Tim is a master teacher. He’s inventive, funny, and deeply interested in the students and their learning. I co-taught with him in a course he’s taught for 30 years, an introductory course on programming and data literacy. We had about 100 students. I sat in on all his lectures during the three months we were there.

How often have you watched someone teach? Especially someone whose expertise is education and who has been honing this course for decades? It’s different than watching a TED talk, or a keynote, or a recorded one hour lecture. I saw Tim plan the course, connect the pieces across multiple weeks, and invent new things — in a course that he’d taught dozens of times. That’s hard to do. We all develop inertia in what and how we teach.

It was such a privilege to watch Tim at work. My notes on the class are filled with bits and pieces that stuck with me. Tim made the Internet real by showing pictures of where the undersea Internet cables came ashore in New Zealand. I learned a new way to explain the Nyquist Theorem. I have always kind of ignored floating point notation as being too complicated, but Tim had this terrific binary simulator that helped me to understand what “1.101” means in binary.

Why don’t we watch each other teach more?

I don’t think I’m saying anything here that anyone would disagree with. Of course, we would be better teachers if we had an experienced teacher watch us teach and give us tips. Of course, we would learn a lot about teaching if we could co-teach with a master teacher.

So why don’t we this?

One big reason is economic —- it’s more expensive to pay for two teachers to be in the classroom than to pay for just one. So, we only assign one teacher to a classroom, and that teacher teaches alone.

We could work around the cost problem. We find ways to pay for things that are important for us. At my University, there is a huge staff to promote research, to manage grants, and even to help write grants. All of that research infrastructure costs far more than adding another teacher to a classroom.

But here’s a bigger reason. When was the last time that you did something to improve how you teach? K-12 teachers can probably give concrete answers to that question. It’s part of their practice to continually improve. University teachers are less likely to engage in professional teaching development —- and that’s a shame. We can always get better at any practice. I’m at this for 45 years now, and I’m still working at getting better at it. We show value for the practice by taking our development in that practice seriously.

It’s hard to make professional teaching development happen. But in my experience, it’s worth making happen. I recommend that you find ways to get excellent teachers to watch you teach. I recommend finding ways to team-teach with excellent teachers — and actually watch one another teacher, and try to make each other better. Find ways to make your teaching better, and a great way to do that is by working with other teachers.

January 20, 2026 at 8:00 am 7 comments

Dr. Tamara Nelson-Fromm defends her dissertation: What Debugging Looks like in Alternative Endpoints

In May, Tamara Nelson-Fromm defended her dissertation “A Qualitative Exploration of Programming Instruction for Alternative Endpoints in Post-Secondary Computing Education.”

I’ve talked about Tamara’s work a few times in this blog.

  • One of her early projects was a teaspoon language to help history teachers to build history timelines (blog post).
  • At PLATEAU 2024, she presented our paper suggesting that there was transfer from the Pixel Equations teaspoon language into building Image filters in Snap! (blog post).
  • She presented our paper at SIGCSE 2025 on how we designed the PCAS courses oriented towards creative expression and social justice (blog post). Tamara worked with me on that design process, particularly on how to meet justice scholars desire for their students to learn about databases, HTML, and SQL (blog post) and on helping students to understand how a computer might generate language (blog post).

Tamara has published a lot more than that during her PhD work in part because she became an expert on reflexive thematic analysis. She worked with several other students on using RTA. At SIGCSE 2026, she and Aadarsh Padiyath will present their paper on how to use RTA for computing education research. I’ve read the paper and loved it — I have been recommending it widely.

Tamara with her committee: Valerie Barr (on Zoom), (from right) Nikola Banovic, Barry Fishman, Tamara, and me

I want to tell you about her dissertation, but I don’t want to divulge too much — only the first study has been published so-far. The big idea that drives her work is alternative endpoints. She and I have talked a lot about the paper by Mike Tissenbaum and his colleagues. The big question that she’s helping to answer is “What will CS education look like as we move beyond producing more software developers?”

Study #1: New CS Teachers learning Debugging: Her first study investigated how we develop new CS teachers. From the start of her PhD, she has been interested in how students learn to debug. Her method was novel (and hard to get past reviewers). Instead of studying new CS teachers and how they learned debugging, she interviewed expert teachers of new CS teachers. She interviewed the people who run professional training, summer workshops, and many the other ways that teachers learn CS. Rather than track individuals (who might not struggle with debugging, or who might not be representative of new teachers), she talked to people who have been doing this for years. What do they do to teach debugging?

Here was the amazing answer: Avoid it. In hindsight, it makes all the sense in the world. Imagine: You’ve got a teacher new to CS in your workshop. In the first workshops (which is often all you get with teachers), you want them to succeed.. You want them to come back for more workshops. So, you do all that you can to avoid bugs. Since bugs will happen still, you provide checklists and “Here’s what to look for if it doesn’t work” guidance.

Of course, really learning to debug comes later…or does it? Tamara raises the intriguing possibility that maybe that’s enough. Maybe for what these teachers are doing (especially in primary school), maybe it’s enough to just have checklists. Again, it’s about alternative endpoints — what does a K-12 teacher need to know about debugging? The paper on her first study will appear at SIGCSE 2026 in February.

Study #2 and #3: PCAS Students: Her second and third studies involved PCAS students. In her second study, she looked at why arts, sciences, and humanities students would want to take courses involving programming. In her third study, she returned to the theme of the first study — how do PCAS students debug?

I don’t want to say too much about these studies, but I do want to tell one story from Study #3 that connects strongly to the story about teachers in Study #1. One of the ways that Tamara saw PCAS students debugging was the way that your modern mechanic fixes your car.

Mechanics today do not need to how your car actually works. Instead, they plug it into the diagnostic machine, and they get a code. The code tells the mechanic where the problem is. The mechanic then follows a procedure or (more likely) replaces a part — whatever the manufacturer guidance is for that code. They then try it again.

That’s how some of the PCAS students debugged. Each assignment for the arts and humanities classes was open-ended, and I gave them completely working examples. The students would write their programs and try them. If they didn’t work, they’d check that they didn’t make a simple mistake. If they couldn’t figure it out, they would go back to one of the worked examples and copy-paste the part that worked and did about the same thing. Then they’d test again. If they still couldn’t get it to work, they’d explore changing what they were trying to do, so that they still met the requirements — but they could get it working.

Is this problem? Do the students need to learn better debugging skills? Let’s go back to alternative endpoints again. Not everyone needs to have a strong mental model of the working program.

Tamara wasn’t prescriptive in her dissertation. She didn’t make judgements of good or bad. Rather, she described the world as she found it, and raises the reasonable possibility that what she saw is working just fine.

Tamara’s dissertation is important. The alternative endpoints paper suggested that we should think about different audiences learning to program for different purposes than software development. Tamara showed us what that is looking like.

December 8, 2025 at 8:00 am 33 comments

Creating a measure of Critical Reflection and Agency in Computing

I stopped blogging while I was on sabbatical because I had to focus on finishing the second edition of Learner-Centered Design of Computing Education. And then we came back from sabbatical. I’d heard that it was tough getting back to normal work after sabbatical, and it was. I had it easier than most (e.g., I came back to summer time, and I had a light teaching schedule this Fall). But it was still a transition, so it’s taken me awhile to get back to blogging.

In the meantime, Aadarsh Padiyath published two papers (and a poster) about the the development and validation of an instrument to measure Critical Reflection and Agency in Computing. Aadarsh Padiyath is a PhD student (soon to graduate! Hire him!) advised by Barb Ericson and me. He last appeared here with a guest post a year ago with a pushback against technological determinism — computing education researchers assuming that the future of CS education can be predicted by the development of ChatGPT.

These new papers are about the second study from his dissertation. Aadarsh is interested in how we can better prepare computer sciences for recognizing and dealing with ethical issues. Typically, we do that with computing ethics classes. But do they work? Aadarsh recognizes that being able to measure progress is an important way to encourage progress.

In May, he published a paper at CHI 2025 “Development of the Critical Reflection and Agency in Computing Index.” The title captures the two aspects of computing and ethics that Aadarsh is most interested in — that student reflect on the ethical implications of their work and that they have a sense of agency, i.e., that they can do something that can address problems. This first paper was about defining the constructs (see Table 1 below). He created 45 items for his measure. He had a panel of experts review the items, and he interviewed five undergraduate students as they responded to the items. His paper was recognized with a Best Paper Honorable Mention.

Aadarsh presented a poster at SIGCSE 2025 in February, “The Development and Validation of the Critical Reflection and Agency in Computing Scale.”

The big finale was his ICER 2025 paper in August, “Validation of the Critical Reflection and Agency in Computing Index: Do Computing Ethics Courses Make a Difference?”. This paper summarized the CHI 2025 story of how the index came to be, then presented the results of a two-round validation study (474 participants in one, 464 in the other). Overall, he has strong support for the validity of his measure.

But in addition to taking the measure, Aadarsh ask the participants if they had taken a computing ethics course. He found “Participants who completed computing ethics courses showed higher scores in some dimensions of ethical reflection and agency, but they also exhibited stronger techno-solutionist beliefs, highlighting a challenge in current pedagogy.” Here’s my interpretation of his results: after taking a course in computing ethics, students were more reflective (yay!) and believed that they could make a change if they saw an ethical problem in their work (double yay!), but they tended to belief that more technology is the answer to addressing ethical problems with technology (uh-oh).

This is an impressive set of papers. It gives us a way of measuring the impact of our interventions in teaching computing students about ethics. It also highlights some real issues that we should be addressing in our computing ethics classes.

December 1, 2025 at 9:00 am 3 comments

Seeking K-12 Computing Teachers With Emerging Bilingual students in their classes

Emma Dodoo is a PhD student working with me. Emma works with K-12 computing teachers who have emerging bilingual (EB) students in their classes, e.g., students for whom Spanish is their first language and who might be learning English while they are taking a computer science course. I recently wrote a blog post about her SIGCSE and PLATEAU papers on her interviews with teachers, to identify the challenges faced by EB students in computing classes and strategies for addressing those challenges.

She has been designing some new tools and curriculum, based on those interviews. She is now looking for teachers to critique the work, to be co-designers on new versions, and possibly to use some of these in their classrooms. Below is her call for participants. Could you please forward this to any teachers you know who might be interested?

We’re a team of researchers at the University of Michigan looking for a few more 7th-12th grade computing teachers to collaborate on a research project focused on supporting bilingual students in transitioning from block-based to text-based programming.
Teachers can join one or both parts of the study, be a part of a publication, and earn up to $500 (USD)! Here is a brief explanation of these studies: 
Summer 2025 – Co-design a programming unit with us (tools + worksheets tailored to bilingual learners)
Fall 2025 – Try it out in your classroom and share your experience
There’s also a chance to co-author a publication. More info is in the flyer and interest form. If you have any questions, please reach out to us using: edodoo@umich.edu.

May 27, 2025 at 8:00 am Leave a comment

Three stories about how CS is overwhelming, and ideas for how we can do better

When we looked at how PCAS students thought about our classes (for our SIGCSE 2025 experience report), I was surprised at students’ use of the word “overwhelming” when talking about CS classes. I was pleased that they positively contrasted our courses with CS classes that they had taken previously, but I didn’t realize how much baggage the students brought with them — how negatively they perceived computer science. Some students told us how emphatically did not want a job in the Technology industry and didn’t want to take CS classes. When Tamara Nelson-Fromm interviewed the PCAS students from our first semester, she told me that every student she interviewed had tried to learn programming (via formal or informal means) and failed. That’s why they were trying the PCAS courses. Most weren’t looking for a sense of belonging in CS — they had their identities as artists or scientists or managers.

My guess is that students made this choice away from CS pretty early on. Some studies support the proposition that students make career decisions by late elementary school. We know that less than 10% of US high school students take a CS class each year (State of CS Ed Report). And while undergraduate CS classes and majors have grown, the majority of students at any University are not choosing CS. And as I described in an earlier post in this series, the kind of computing that students use outside of CS classes is different from what’s inside of CS classes.

I shouldn’t have been surprised about what students were telling Tamara. I had read about the #techLash. There is a lot of literature about how much CS overwhelms students. There’s also literature on how we can do better. Here are three of my favorite papers in this space.

‘I like computers. I hate coding’: a portrait of two teens’ experiences” by Paulina Haduong communicates the punchline in the title. This is a rich, qualitative study of students who love to use computers, but who hated their experiences with Hour of Code, with Scratch, and with formal and informal education around programming. In the end, though, this is a positive paper. As Paulina writes, “These learners’ experiences illuminate the ways in which identity, community and competence can play a role in supporting learner motivation in CS education experiences.”

‘I Always Feel Dumb in Those Classes’: A Narrative Analysis of Women’s Computing Confidence” by Amanda Ross and Sara Hooshangi is another paper that tells the punchline in the title. Amanda is completing an Engineering Education PhD at Virginia Tech, and has accepted a job at Rose-Hulman (congratulations both to her and Rose-Hulman!). For this paper, she interviewed women who succeeded in introductory CS and had high self-efficacy, but still dropped out of computer science.

Results show that while participants were highly successful in their course (reporting a high mark in the class) and had relatively high self-efficacy when discussing specific programming problems, they lacked computing self-concept in whether or not they were good at programming in general.

These first two papers show women who are interested in programming and who are good at it, but struggle to succeed in CS education. Why? Maybe it’s because of how we frame the field of computer science.

Being a software developer is a hard job — you translate requirements to code, and you aim for the code to be robust and secure. Most people who program (scientists, artists, end-user programmers, critical computing scholars, etc.) are programming for themselves, to achieve a goal of their own or to express themselves. It’s only the minority of programmers, the professional software developers, who code primarily for others. So, I understand why classes to prepare future software developers are about the hard task of precisely converting specifications to well-tested program code. But that’s maybe 10% of people who program.

The field of computer science has developed a narrow frame. We could have a broader one, one that includes the way that other disciplines use programming. I argued in an earlier post that we can broaden participation in computing by making computing education broader than just what CS and the Tech industry wants.

I have been telling people about this talk by Felienne Hermans from SPLASH 2024, “A Case for Feminism in Programming Language Design.” I highly recommend her paper with co-author Ari Schlesinger (which you can find here), but if you are interested in how computing became so male and so uncomfortable for female students, you must watch this talk. It’s a compelling and thought-provoking story, which I found both emotional and insightful. Watch through the Q&A if you want to get some additional evidence that Felienne is right about how she describes the field and how computer scientists push against a broader framing.

I appreciated Felienne’s point that computer science has confused “hard” with “interesting” or “valuable.” We overly value things that are hard to do, which leads us to undervalue things that are interesting, valuable, or useful but are not necessarily hard to do (e.g., studying how people build in Excel is interesting and valuable, even if it’s not as “hard” as studying programmers building million LOC systems). I have heard this sentiment voiced lots of times. “The study was really not that much. I don’t see why it’s interesting.” “The system wasn’t hard to do. Anyone could have built it. It’s not really a contribution.” “Anyone could have thought of that.” An academic contribution should be judged by what we learn, not by how hard it was to do or invent. That focus on being hard is part of what drives students away from computer science.

Felienne and Ari’s paper helps to explain tension between Computer Science departments and Computing Education Researchers. CER work doesn’t look like CS “hard” work. My students don’t typically build a big piece of code that gets used by thousands. Some of my students tested educational psychology theories in a computer science context (see blog post about Brianna Morrison’s work as an example). Some of these experiments are replication studies. There’s an obvious hypothesis — that what was seen by educational psychologists in other fields would likely be true in computer science, too. Whether the replication worked or not, the findings are novel contributions to CER because they tell us something that we didn’t know before.

Making computer science classes more welcoming and inviting isn’t about changing the nature of computer science. Paulina, Amanda, and Felienne are talking about and with people who love working with computing. The goal is not to reduce rigor. The goal is to remove unnecessary constraints. We can allow students to express themselves in computer science classes. We don’t have to make students feel dumb in computer science classes. We need to be open to broader definitions of what counts and is important in CS. We need a larger frame for the field of computer science and the goals of computing education.

I started this blog post series in February, describing how we designed the PCAS courses for arts and humanities students. The next post described how computing education was different than CS education. I offered two posts on computing education in the arts and and in the sciences. My previous post was a recommendation that CSTA (and primary and secondary school overall) focus more on computing education for everyone and less on CS education. I’m ending the series here with a post on how to make computing education work for all students, whether aimed at technology for their career or not. I’m making an argument for computing education for all and even more specifically programming for all. The way we get there is by looking at how the whole word uses computing and programming, not just what the computer scientists want.

March 30, 2025 at 3:00 pm 1 comment

School teachers don’t need to recruit students into CS: An alternative model for K-12 computing education

The Computer Science Teachers Association (CSTA) is in the process of updating their influential standards. It’s a long process, and it started last summer with a visioning document called “Reimagining CS Pathways.” Part of their new reimagining includes dispositions which are meant to cross all content and skill areas.

I am arguing here that “Sense of Belonging in CS” should not be in that set. The role of computing education in K-12 should be to introduce students to computing for whatever they are going to do in life. As I’ve been pointing out in the last few blog posts, the uses of programming in science, arts, and humanities don’t look like CS classes. Computing education is different than CS education, as I described in the blog post that started this series. K-12 computing education should not be about convincing students that they belong in CS, but should be about giving them the confidence that they can use computing in whatever career they choose.

I made a critique of this dispoition on social media, and the responses suggested that I look more carefully at the document. I was told that there is strong research supporting the need for “sense of belonging in CS.”

Here’s the text of the document introducing this disposition:

A sense of belonging, or the “personal involvement (in a social system) to the extent that the student feels that they are an indispensable and integral part of the system” (Anant, 1967, p. 391), is one of the more widely researched dispositions in CS education. Its importance is linked to its relationship to a student’s sense of their own ability in (Veilleux et al., 2013) and interest in persisting in their studies (Hansen et al., 2023). Sense of belonging is an important facet of ensuring equity in CS, since this sense often differs by student demographic group (Krause-Levy et al., 2021).

That’s a really strong definition of “sense of belonging.” I don’t think that even the most welcoming undergraduate CS classes and programs aim to make students feel that they are “an indispensable and integral part” of computer science. I looked up all three of these references (and linked each of them above). Here is the first sentence of each of those papers:

  • Veilleux et al., 2013: “Retaining students in computer science majors has been a persistent topic among computer science educators for almost two decades.”
  • Hansen et al., 2023: “The purpose of this longitudinal investigation was to examine the effectiveness of a comprehensive, integrated curricular and co-curricular program designed to build community, provide academic and social support, and promote engagement in academically purposeful activities resulting in more equitable environments for historically underrepresented, low-income science, technology, engineering, and mathematics (STEM) information technology (IT) students.”
  • Krause-Levy et al., 2021: “Students’ sense of belonging has been found to be connected to student retention in higher education.”

None of these are about K-12 education. All of them are about CS, IT or STEM majors in higher education. The goal of “sense of belonging in CS” is undergraduate retention in the higher-education major in these papers, not K-12 students persistence at learning computing that is useful for them. The goal of K-12 education is to prepare students to be CS, IT, or STEM majors — or arts, humanities, business, or anything else majors, or to be successful citizens in a technological society, even if they don’t go to college. I don’t see any literature cited in the document that tells us how important a “sense of belonging in CS” is to K-12 students and their success in learning about computing.

An Alternative: Everyday Computing

We need a model for K-12 computing education that recognizes the value of alternative endpoints, as Tissenbaum, Weintrop, Holbert, and Clegg have described it (BJET linkUIUC repository link). K-12 CS education should not be a jobs program for technology companies.

Here’s an alternative model. The University of Chicago has a mathematics curriculum called “Everyday Mathematics.” Here’s how they describe it:

Everyday Mathematics is a research-based and field-tested curriculum that focuses on developing children’s understandings and skills in ways that produce life-long mathematical power.

The Everyday Mathematics curriculum emphasizes:

Use of concrete, real-life examples that are meaningful and memorable as an introduction to key mathematical concepts.

Each grade of the Everyday Mathematics curriculum is carefully designed to build and expand a student’s mathematical proficiency and understanding. Our goal: to build powerful mathematical thinkers.

I didn’t study Everyday Mathematics when I was a kid, but the description resonates with how I remember my own math classes. I saw math problems relating to cooking, engineering, craft, orienteering, map making, and lots of other domains. The mathematics education was contextualized to support students in seeing the connections and relevance of mathematics to their lives, to what they thought was important. My mathematics teachers were preparing us to be mathematical thinkers, not necessarily mathematicians. I enjoy mathematics, and use it often, but I don’t think of myself belonging in math.

We need Everyday Computing. Our goal in K-12 education should be to build powerful computational thinkers. We need to relate computing education to the things in students’ everyday lives, and that they’re likely to see in their lives. At the second and post-secondary level, we should help students to think about the computing that they’re already using, like R and Python, with vector operations and a focus on data over algorithms. We need school teachers to show students that computing is for them, not that they belong in computing.

Recently, the CS for California organization rewrote their mission and vision statements. I like them as a model for what CS education should be nationally.

Our New Mission: Advance equitable computer science education for all California students by fostering inclusive engagement and community partnerships, strengthening support for educators, and informing policy through data.

Our Vision for the Future: California students are equipped with foundational computing competencies to become innovative thinkers and creators of a just and inclusive future.

It’s not about creating computer scientists or technology workers, though those are possible endpoints. It’s about supporting students whatever they want to become and using computing to get there.

March 23, 2025 at 3:00 pm 7 comments

How scientists learn computing and use LLMs to program: Computing education for scientists and for democracy

Gabi Marcu is a professor in the University of Michigan School of Information who studies technologies to promote health (see her website). She’s also an improv performer, and a friend. She asked me to participate in her project to combine research and improv called “Extra Credit.” She asks researchers to explain their research in 10 minutes, then a group of improv artists riff on the research for another 10 minutes.

The first speaker in the session I participated in was Joyojeet Pal, who studies social media and politics. He was hilarious — I heard one of the improv performers quip, “Wait — it’s our job to be funny!”

I talked about what everyone needs to know about computing to support democracy, with a focus on our recent course on AI. Barb recorded it and allowed me to share it.

I learned the most from hearing and meeting Elle O’Brien (see her website). Elle is a computational neuroscientist who decided to go meta. She now studies how scientists learn and use computational methods.

She had a paper in Harvard Data Science Review last year on how scientists learn computational methods, “In the Academy, Data Science Is Lonely: Barriers to Adopting Data Science Methods for Scientific Research.” In her study, it didn’t go well:

These scientists quickly identified that they lacked the expertise to confidently implement and interpret new methods. For most, independent study was unsuccessful, owing to limited time, missing foundational skills, and difficulty navigating the marketplace of educational data science resources.

I was surprised how much the scientists in her study needed more curation. There’s no lack of ways of learning data science — videos, tutorial, MOOCs, books, bootcamps, and on and on. But Elle was talking to working scientists. They were busy professionals. They struggled to find the right learning materials for their level of knowledge that matched what their field used.

Elle and I have both noticed how many different computational cultures there are across the sciences and liberal arts. These scientists use R, and these others use Python — even in the same department. They talk together about their science, but not really about code. Computational artists I’ve met at Michigan only use Processing or Unity. I’ve learned that Economists at Michigan mostly use Stata, a tool that I’d never heard of before my informants (two Economics faculty and PhD student) told me about it. While programming is common across the sciences, actually taking CS classes is rare among scientists that we’ve worked with. Most of the programming science faculty we met are self-taught, or learned through apprenticeship from the labs and groups they came up through.

Elle observed that computational scientists she works with are increasingly multi-lingual. They might use Python for some of their tasks (data processing, data cleaning, modeling, and/or simulation), then use R for statistics and visualizations. They are making choices for programming languages based on the libraries and communities that use those tools, not on the characteristics of the languages themselves. I’ve worked with some scientists who also work in multiple language ecosystems, but within the constraint that they’re trying to optimize their time. They’re not trying to transfer their knowledge of programming from Python to R — they’re just trying to get their work done. “Recipes” of how to do things in R are just fine for them.

Elle tries to convince some of her scientists to consider using version control systems, but they don’t see much benefit. Few scientists that either of us work with are inventing new abstractions. They write code (often, no more than a screenful) to get a job done, then throw the code away. They care about the data and the results, not the code. If you don’t invent new abstractions and you don’t reuse code, what does Github buy you?

Elle has a new paper appearing in CHI 2025 that is fascinating and relevant: “How Scientists Use Large Language Models to Program.“ She finds that “scientists often use code generating models as an information retrieval tool for navigating unfamiliar programming languages and libraries.” Again, they are busy professionals who are trying to get their job done, not trying to learn a programming language.

I was impressed with how much effort the scientists that she studied put into checking what the LLMs produced. One scientist ran code in a familiar system to compare to the results generated by the LLM-generated code. They all wisely distrusted the LLM code, more than I usually see computer scientists (and especially computer science students) who may not check LLM-generated code.

And yet, the LLMs still inserted bugs that the scientists missed. LLMs are absolutely nefarious in how and where they generate bugs. Elle raises the possibility that LLMs are having a negative influence on the scientific enterprise.

Elle is engaging in computing education research, though I don’t think that she thinks of herself that way. She’s not likely going to submit anything to ICER or the SIGCSE Symposium anytime soon, but computing education researchers need to know about work like hers. She’s studying scientists from the lens of being a scientist who uses computing, not a computer scientist. She knows more about what scientists need from programming and how they learn programming than most computer scientists or computing education researchers I know.

March 16, 2025 at 3:00 pm 3 comments

My Favorite ICER 2024 Paper: How Media Artists Teach Computing

I’m hesitant to state a preference for my favorite paper at the International Computing Education Research (ICER) Conference in 2024. There were so many cool papers (including some by my students!). But it’s an easy choice if I use the heuristic, “Which paper have I still been thinking and talking about the most after the conference?”

My favorite paper of ICER 2024 was Alice Chung and Philip Guo’s paper “Perpetual Teaching Across Temporary Places: Conditions, Motivations, and Practices of Media Artists Teaching Computing Workshops.” It’s a study of real media artists who teach computing in workshops. The first sentence of the paper is “Why and how do new media artists teach computing?” I love this question, and the answers are fascinating.

One of their observations is that media artists teach as part of their practice. They’re always learning new tools and practices, and also always sharing them. Let’s contrast this with software engineering. How many professional software developers also teach software development? How many consider it integral to their practice? Or swap the question — how many CS1 instructors are also professional software engineers?

Our study finds that artists strategically understand and respond to these conditions, developing what we call perpetual teaching – reframing the internalized duty or responsibility of perpetual training into pedagogical frameworks

So why? Why would media artists spend their time teaching? It’s about trying to be critical about what they’re doing.

We found that artist-educators are motivated by creating spaces to unlearn ineffective conventions and incubate new cultures rather than by technical knowledge transfer alone. Furthermore, they intended to design their workshop materials (e.g., prompts, activities, reading lists) to prepare participants to create critical interpretations of computing outside of mainstream tech career pipelines.

This is such an interesting goal and a contrast with computer science education. Artist-educators want to make new things and explicitly contrast with traditional technology paths. They want their students to be media artists who are critical of what’s happening in the rest of computing. Explicitly, media artist-educators are focused on alternative endpoints in computing education.

The paper goes into much more depth with examples and quotes from the artist-educators about their goals and motivations. I highly recommend reading the whole paper. It’s well-written and grounded in education literature.

I have had more conversations about this paper than any previous ICER paper that I am not co-author of. In most of the conversations, a computing education researcher was critiquing the paper, and I was defending it. The biggest critique I heard is that the paper does not speak to CS educators’ issues and offers them no solutions to their problems.

I mostly agree, but that’s what’s why I’m so excited about this paper.

The International Computing Education Research (ICER) conference should be about more than computer science education. Of course, it’s important to study CS1 classes, CS majors, and how to produce great software developers. We need good CS education, and we need research on what’s going on in CS education and how to make it more successful — which includes studies of teachers. But there will be far more people programming than will ever take a CS1. Studying how people learn computing beyond CS and how to make their learning successful is important for our modern society. That’s computing education, and ICER needs to have more papers like this one that explores the much larger world beyond traditional CS education.

But in the best possible world, this paper does speak to CS educators, too. Alice and Philip write:

New media artists view teaching as a means to promote greater diversity in computing cultures, emphasizing education’s role in broadening participation and challenging traditional narratives.

Wouldn’t we wish that to be true of all CS educators, too?

March 9, 2025 at 3:00 pm 2 comments

CS doesn’t have a monopoly on computing education: Programming is for everyone

I participated at the first SIGCSE Virtual Conference last December. I was on a panel “Assessments for Non-CS Major Computing Classes” (see the ACM DL paper here). The panelists were excellent. I was excited to meet Permit Chilana who came up with the idea of conversational programmer in her 2015 VL/HCC paper. Her talk was particularly relevant to me because she emphasized how she is studying business students, not computer science students — her research is about how non-CS students interact with computing and programming. Jinyoung (Jina) Hur was our organizer, and she ran the panel, which it left to her advisor, Katie Cunningham to present their fascinating work contrasting conversational programmers and end-user programmers in the CS classroom, which appeared at ICER 2024 (see paper here). Katie also shared some of her studies of conversational programmers starting from her dissertation work. Dan Garcia presented his work (with Armando Fox) on mastery learning which gives even non-CS majors the chance to get top grades in introductory CS classes (see nice piece that Berkeley Engineering wrote about their effort).

My talk was about what we’re accessing non-CS majors on. My claim is this: Computing education for non-CS majors is different than what we teach CS majors. It is important to figure out why non-CS majors are taking courses designed for CS majors (maybe they want to be conversational programmers or end-user programmers?) and to make sure that they can succeed (including getting good grades) when they are in those classes. However, it’s even more important to figure out the learning needs of the non-CS majors around computing and how to meet those — and then, how to assess the learning in meeting those needs. Education for CS majors is different from what non-CS majors need.

Here are a few examples of what I mean:

  • When I asked Social Justice scholars what they wanted their students to know about computing, the top learning objective was for their students to understand that websites can be built from databases (see blog post about that story and our recent SIGCSE 2025 paper). Most CS majors probably don’t learn this.
  • My colleague Gus Evrard led the effort to build our Python Programming for Sciences classes. He got four different departments (who were already teaching Python) to collaborate to define this new course. The course is about SciPy, cleaning data, Numpy, and building data visualizations with libraries like MatPlotLib. Most data science programs cover these topics, but most computer science programs don’t.
  • I’m pretty sure that the most popular programming language (in terms of number of people using it) on most campuses is R. All of Statistics is taught in R. It’s very common in Psychology, Anthropology, and Sociology. Natural Sciences (chemistry, biology, physics) is increasingly using R for statistics and visualizations, even if they use Python for data management, modeling and simulation. I haven’t found a computer science program yet that teaches R or computer science through R, e.g., explaining to students the computer science that is most relevant to them.
  • End-user programmers most often use systems where they do not write loops. Instead, they use vector-based operations — doing something to a whole dataset at once. (Kind of like the higher-order functions that Kathi Fisler used to beat the Rainfall Problem.) Many scientists use R and Numpy on Python. Many Engineers use MATLAB. Yet, we teach FOR and WHILE loops in every CS1, and rarely (ever?) teach vector operations first. The K-12 US state CS standards I’ve read explicitly include loops — teachers have to teach loops to meet the standard. End-user programmers likely outnumber traditional software developers (see some estimates). So why are we first teaching the stuff that fewer people use (hard-coded loops), requiring students to learn the harder forms?

Here are the points that I want to make over the next few blog posts. Many, many people are programming today. A minority of them are professional software developers. Learning to program is a form of computing education, but computer science is not typically teaching the things that non-CS majors need to program, so computing education is moving away from Computer Science (field, departments, teachers). Computer science no longer has a monopoly on computing education.

Here’s how I’m using these terms. Computer science education is teaching students about computer science. For the most part, CS education has become focused on developing professional software developers and other workers for the technology industry. Computer science (as a field or a department) has a lot of definitions, some of which I present when I give talks (below, and in this blog post). (Notice that the K-12 definition still includes “impact on society” but ACM/IEEE dropped that out in the 2021 Computing Curriculum volume.)

My favorite is the original one from Perlis, Newell, & Simon (1967): “The study of computers and the phenomena surrounding them.” But most computer scientists balk at how broad that one is. So, let’s call that “computing” and preparing students to work with computing (explicitly including programming) in whatever field they do computing education.

Computer science departments should offer computer science educationWe obviously need lots of people who know computer science, including many professional software developers. But most people who program will not be computer science majors (e.g., see this 2017 Oracle study). The needs for computing education must also be met.

(Side note: It is an interesting question: If students’ computing education needs are not being met, whose job is it to figure out a solution? Here at Michigan, individual departments were making classes to teach students the programming needed in their discipline, but now we’re combining them in PCAS. I’d wish that computer scientists would work to meet those needs, but computer science today is mostly about developing future technology workers. I am grateful that U-M’s College of Literature, Science, and the Arts started PCAS.)

The breakup of the CS monopoly is a particularly good thing for computing education researchers. There is SO much to do! So much of our research in the SIGCSE community is about CS1 for future CS majors. But computing education research doesn’t have to be about CS majors, and doesn’t have to be about CS1. There is so much more to study and explore when we think about how artists, scientists, business people, designers, architects, and humanities scholars, and everyone else learns about and uses programming.

March 5, 2025 at 2:00 pm 8 comments

Older Posts


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

Join 3,104 other subscribers

Feeds

Recent Posts

Blog Stats

  • 2,183,001 hits
March 2026
M T W T F S S
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

CS Teaching Tips