Monday, February 23, 2026

Who Is Driving Changes to Computer Science Education

There are a lot of Changes happening at code dot org The Slashdot article linked there lists several of them. While the changes include a number of people changes including President Cameron Wilson stepping aside, Chief Academic Officer Pat Yongpradit leaving to join Microsoft, and some staff layoffs the change in direction, to AI, may be the most concerning. From Hour of Code to Hour of AI? Some interesting comments follow that post.

The questions top of my mind are "who is driving the direction of CS education" and "is CS education moving in the right direction?" A lot of people believe that industry is pushing CS education in the direction of being vocational. The new focus on Artificial Intelligence often feels like a vocational direction.

My involvement with computer science education predates code.org and even CSTA so I have seen a lot of changes. In my first teaching days computer science teachers were pretty isolated. There was SIGCSE which accepted K12 teachers though welcomed sometimes felt like aspirational rather than actual. ACM, of which SIGCSE was and is still a part, was doing some support for CS education. Cameron Wilson was a huge part of that and worked policy.

CSTA was developed by some wonderful people in and around ACM. This started the real movement towards expanding K12 CS education. CSTA helped train and organize teachers to push for more more CS education. Code,org came a bit later and brought something new to the effort.

Code.org brought money and industrial production values. From the first set of videos that went viral to some very good curriculum resources as well as connections to industry and political leaders. Getting policymakers to push for CS education stepped up.

We’ve come a long way.

Coming back to my earlier questions. Is industry driving the directions that CS education is moving? A lot of people think they are. Industry has money and it has funded a lot of the work by code.org and CSTA. The modern Golden Rule is that the people with the gold make the rules after all.

Industry has some motivation here. I spent a few years working at Microsoft myself where my job was to promote the use of Microsoft tools for teaching. I didn’t get much in the direction of what to teach. I always felt that teachers should decide what to teach and I just wanted to help teachers find ways to use tools to teach those concepts. Teaching computer science as vocation was always there though. Senior mangers often told me that industry needed more people to know CS because there were jobs that needed to be filled.

CS as vocation has always been a selling point for CS education of course. It’s what helped sell school boards and other elected officials. Among teachers that was usually a secondary motivation. For a lot of teachers, including me over time, CS education became more about understanding how the world works. We don;t teach physics because we want to make more physicist. We teach it so that students understand the world around them.

People who are not working for tech companies often have to use computers and make decisions about computing. From spreadsheets to databases to internet searches. And now AI. People in all walks of life use computers. Understanding computer science can make those people more efficient. Computers are an important part of our world.

It seems like all the big tech companies are betting huge sums of money on AI. There is a lot of pressure to move the direction of CS education into AI. Is the industry push vocational in intent? Is is all about helping these companies to make money? CSTA and code.org are both pushing AI these days. Is this because of industry (gold making the rules?) or would it be happening independently?

That leads to the second question – are we moving in the right direction? I think that question may be different for K12 and for university. Personally, I still think CS education in K12 should be about understanding and not vocational. Someone else can address higher education but K12 should be about preparation for life and not for vocation at least in comprehensive schools.

So is AI the right direction? I think it is indisputable that AI is important to learn. Students should learn prompting and they should learn what AI can and cannot do, They should also learn how to think about what AI should not do. They need to know something about how AI works and that is core computer science.

I think that computer science, in the old analogy, is the dog and AI is the tail. The tail should not wag the dog. Making AI the focus at the expense of basic  computer science would be a huge mistake. We do have to teach the basics that make AI possible. Students need to understand where AI comes from and where it might go. Understanding code is an essential part of that understanding.  There is always going to be more to CS than just AI. We didn’t stop teaching arithmetic when calculators were invented. We should not assume that AI code writers mean we don’t have to stop teaching basic computer science.

CS in K12 should not be just vocational. Is industry driving CS education? I fear they may be. Are we moving in the wrong direction? Maybe. If so, it will be up to educators to provide some course correction. 

Saturday, February 07, 2026

AI Tutors and the Human Connection

I  recently shared at quote on Facebook:

Unless our students know that we care, they will not learn from us.

I made the comment that I wondeedr if an AI teacher will get students to think it cares about them. I really believe that a connection between student and educator is important for a good educational experience. Several people on Facebook indicated that they think that an AI tutor will be able to convince students that they (the AI tutor) cares. Is a major concern I have about AI tutors misplaced?

Thinking about this, I recalled variations of the saying:

The secret of success is sincerity. Once you can fake that you’ve got it made.

Can Artificial Intelligence tutors fake caring about students? I wonder.

Initially, I thought, no, not going to happen. Now I am not so sure. I have been thinking of my own interactions with Alexa from Amazon via their smart devices. Attempts to be personal with the AI, for example, saying “thank you.” elicit what feel a lot like personal responses. Alexa wishing me a “good night” or a suggestion to “keep warm out there.”

I recently had a conversation of sorts with Copilot about books I am interested in reading. The conversation felt a lot like taking to a real person.

Also, a friend of mine (Richard Seltzer) recently shared a book he was working on titled “How to Partner with AI: A New Kind of Relationship” (A pre-publication pdf of the entire book is available here for free.) The book reads a lot like a conversation between two real people rather than a person and a computer program. In fact it feels a lot like a conversation among friends.

So maybe AI tutors will get students thinking they care. Whether the program is faking that it cares or really cares is more of a philosophical question than a practical one. It’s a question well worth talking about of course. Just as asking if computers really think or if they can be truly creative. Practically speaking though does it mean that AI tutors can replace human teachers? I think it is more complicated than that.

There is also the matter of what to teach. I read someone recently saying that human teachers teach what they want but that students are not interested in learning and that AI tutors will teach things that students are actually interested in learning. That may be true but is that what we really want? Would that meet the needs of a real education?

What I see often is autodidacts attempting to promote learning that works for them as being the way that everyone should learn. That is decidedly not the case. Many, perhaps most, students need some external motivation and some direction.

I love the idea of students learning more about the things they are interested in knowing. There are things that student need to know though and students are not always interested in learning them all. We have required courses for a reason! Learning all about football at the cost of not learning any mathematics is probably not a good thing. Students are masters of distraction – both of becoming distracted and distracting others. Others includes instructors!

Perhaps that will work out. Perhaps an AI tutor will work mathematics into the football lesson. It could happen but will it?

There is also the question of who is teaching the AI. Will the AI tutors have a good bias or a bad one? Will it be trained to better society or to make it more compliant? Will the students wind up retraining the AI in unhealthy directions? We have seen AI chatbots turn very ugly with help from the internet. Who will monitor these AI tutors? Parents? Not likely.

We’ve also seen AIs get a lot of things wrong. They are not very good at validating sources of information. Human educators are a lot better at that.

I can imagine AI tutors working out very well. I can also imagine them turning out very badly. What I am strongly concerned about is AI tutors for the poor with human educators for the rich. Perhaps the human teacher supplemented with an AI tutor or an AI tutor supplemented with a human supervising instructor. But  it is clear to me that many of the rich are more interested in using AI to save money by replacing people and not as much of making things work better.

Relegating the masses to AI tutors is a high risk proposition with potential of holding the masses back. Autodidacts with high self motivation and a good AI tutor may go far. I am not sure that is the way to bet for most students though.

Sunday, February 01, 2026

Reminiscing - When Computers Had Lights

Back before the personal computer age, computers had lights and toggle switches. One could use the switches to program computers and read answers in the lights. All in binary of course. We also used these tools for debugging. One could enter a memory address using the switches and see what was in the location, data or instruction, in the lights.

If a computer program was hung in a loop one could halt the computer and see what address and instruction was part of the loop. It was a useful debugging tool. Similarly if the computer halted for some reason an error code might be displayed in lights.

It wasn’t all seriousness though. Many operating systems would display something in the lights when the computer was idle – not doing real work. Usually this was some sort of animation – lights racing though the strip and rows of lights. Digital Equipment Corporation had a computer type called the PDP-11 that supported a number of different operating systems. Each OS had it’s own idle loop light display. One could walk into a computer lab, typically at night when no one was using the computers, and tell which OS was running on which computer just by watching the lights.

Some manifaxine computers had a lit of lights. A company called Burroughs had one large computer that would display the company logo in the lights when it was idle. Now you never really want to see that display if you owned that computer. It was frightfully expensive to buy and operate so you really wanted it to be doing real work 24/7. One potential buyer wanted their company logo to display when the computer was idle. Vanity perhaps? Anyway, silly as it was, as I recall, the program change was made and the sale went though.

Today, those sorts of lights are an unwanted, and generally unneeded, expense. I do sometimes miss those simpler days though.

Friday, January 30, 2026

CS Teacher Improvement Through Observation

I remember the first time I was observed by a principal. Brilliant man with two masters degrees and ABD PhD. He told me that he didn't understand much of what I was teaching but the students seemed to be getting it and the class ran smoothly. Not much in there to help me improve.

I believe that teaching CS is different from teaching most subjects. But each subject probably has its own nuances. That's why I think that teachers need specific training in teaching their particular subject. I know that there are MS degree programs in teaching reading and, I think, math. Probably more than those as well

There is limited training in how to teach CS though. There are some degree and certificate programs in teaching CS. As states increasingly require certification to teach computer science there will be more I am sure. Most CS teachers have to figure it out on their own though.

I think we have a lot to learn about how to teach CS well. There are a few people doing research in CS education. A lot of it gets disseminated at SIGCSE which can be hard for K-12 CS teachers to attend. That is both because of cost and because it happens during the school year. A lot of teachers have very limited options for missing school days. If nothing else it is a lot of work to create good sub plans!

Many teachers are resistant to sessions that are research based. That is often because they have had too many professional development sessions that year after year replace the previous research based methods without giving any one method a fair chance. Or worse, having failed.

It would be nice is teachers had more opportunity to observe experience CS teachers teach. (Both Mark Guzdial and Mike Zamansky have blogged about that recently – blog post links below) BTW if you ever get a chance to hear Mark Guzdial present I recommend that you do. Especially if the topic is how to teach.

In an ideal world, CS teachers would get to observe teachers in the building where they teach. For a variety of reasons, not the least of which is that many K-12 CS teachers are the only CS teacher in the building, that is often not possible.

CS conferences are a mixed bag. Yes, there are some great presenters. Many of them do try to model good teaching practice. There are not a lot of talks on how to teach though. I gave one at CSTA Online six years ago. (How is it that long ago?) It was well received but we could use a lot more that talk about and modeled how to teach CS.

I think we could use more talk sessions on the conference “hallway track” that informal, unscheduled time when teachers find themselves sharing ideas with like minded people.

At the heart of the issue is that teachers have to be about constant improvement. There is a difference between five years of experience and one year of experience five times.

Anyway, please read the posts linked below. Smarter people than me.

Wednesday, January 28, 2026

Are AI Code Assistants Getting Better or Worse

A friend of mine sent me a link to an opinion piece in the IEEE Spectrum - AI Coding Assistants Are Getting Worse –> Newer models are more prone to silent but deadly failure modes

Are AI code generators getting worse? The tl;dr  in this article is “Yes” because companies are letting poor programmers train the AI. You should read the article though.

It’s not deliberate of course. It’s just the way the internet works. AI software is not checking to see if the information it is getting is good in absolute terms. It is just checking to see if the user is happy. In the user is happy because they don’t realize that what they have is bad how is the AI to know?

The term GIGO - Garbage In, Garbage Out may not be repeated as often as it used to be but it is still true! We have to be careful about who and how artificial intelligence is trained. Do an internet search for “Chatbot goes bad” sometime and you’ll find a large number of cases where AI chatbots have been trained badly. Sometimes trained maliciously. Sometimes just trained on poor data sets.

TO me this trend points out a couple of things that we need to teach beginners. In the words of Ronald Regan, “Trust but verify.” Students need to test their code. Students need to be able to read and understand code. Programmers have to be able to determine if AI it taking shortcuts like leaving out error handling, data validation, and other errors of omission.

We also need to prepare students to think about how AIs are being trained so that they learn how to train AIs well themselves. Even if coding is dead, as one of my former students claims, people will still have to train AI, ask AI good questions, and be able to understand if they are getting the value from AI that they want, need, and think they are getting.

Monday, January 26, 2026

RotWords–String Manipulation Project

BlueSky is the microblogging site for me these days. That is where I am getting ideas and information about teaching computer science among other things. I recently saw the following message.

It’s an obvious possible coding project in my eyes.

  1. Read a word from a wordlist
  2. Remove the last letter and place in in the front of the word
  3. Determine if the new string matches an actual word.
  4. Display both old and new word, if found
  5. Repeat

It’s probably easy coded by an AI of course though I suspect students might come up with interesting implementations on their own as well.

As was pointed out in replies on BlueSky things get more interesting if they lead to a discussion about the nature of words. For example, a lot of words that end in “S” and plurals of words. Is there a way to strip plurals from a data set programmatically? (I’ve been thinking about that for my Wordle solver program as Wordle doesn’t use plurals.)

And what is the usefulness of word lists if they have words that are not really words? Or that are not in common use?

We don’t tend to talk about data integrity, data validity/validation, normalization of data, or any kind of data checking all in K-12 CS classes. We probably should discuss it though. A project like this might be useful in getting that conversation going. Just a thought.

Saturday, January 24, 2026

Dice As a Design Problem

The other day I ran into an interesting programming exercise on BlueSky.

The project description is at 2D Dice Grid Scoring Algorithm - 101 Computing It’s a cool project. I decided to code up a solution myself. Now there is sample starter code at that link in Python. I do my fun programming in C# so I started from scratch.

The first thing I had to do was to think about a Die class. I’ve written classes for dice projects many times before. It was a favorite item for me to use when teaching students about designing classes. Just about everyone is familiar with dice. I also brought in some samples to use as visual aids. I had some binary dice with only ones and zeros and some role playing dice in a variety of shapes and numbers of sides.

Students generally come up with the idea that they need to have a face value for the die. They generally also easily come up with the need to display that value and methods to change it to a random value. What they don’t always remember right away is that no all dice have six sides. Some dice have many more than six sides. Eventually they come up with two sided dice which we sometimes call coins.

I had a couple of example Die classes from other projects but I decided I wanted to be a bit more visual. So I created an object with the ability to display images. For this particular project I also added an extra method. I added a method to return if the face value was even – a Boolean value – true for even, false for odd. You know, just to make things interesting. Right now it is a method but I want to change it to a property to avoid unneeded parentheses.  I am not a fan of parentheses.

I did cheat a little. I had Copilot create some of the initial work on the code. Copilot, like my students, assumed a six sided die with values from one to six. I didn’t specify much so that’s understandable. It’s not really satisfying for me though so I will be putting some extra work into things to make the class more flexible. I will add constructors that let a program use different images and numbers of images. After all, just as not all die have six sides not all die have numbers or pips on them.

What would/do you add to die objects to make them more interesting or useful?

My project looks like this BTW.