<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-18677687</id><updated>2026-04-13T07:09:28.189-04:00</updated><category term="Computer Science Education"/><category term="Education"/><category term="Programming"/><category term="projects"/><category term="CSTA"/><category term="Professional Development"/><category term="Life"/><category term="artificial intelligence"/><category term="CSforAll"/><category term="Diversity"/><category term="computing"/><category term="ethics"/><category term="ai"/><category term="Teaching"/><category term="Microsoft"/><category term="APCSP"/><category term="cybersecurity"/><category term="Visual Studio"/><category term="software engineering"/><category term="APCS"/><category term="debugging"/><category term="Careers"/><category term="Links"/><category term="Robots"/><category term="Cryptography"/><category term="Python"/><category term="MicroBit"/><category term="appinventor"/><category term="book reviews"/><category term="SIGCSE"/><category term="IoT"/><category term="hardware"/><category term="humor"/><category term="CS4All"/><category term="Mixed Reality"/><category term="Raspberry Pi"/><category term="CSk8"/><category term="GitHub"/><category term="NCWITAiC"/><category term="AI4K12"/><category term="Arduino"/><category term="HTML"/><category term="IntelliCode"/><category term="MakeCode"/><category term="NCWIT"/><category term="TouchDevelop"/><category term="hour of code"/><category term="math"/><category term="thunkable"/><category term="AWSEducate"/><category term="Big Data"/><category term="Google Meet"/><category term="Hour of AI"/><category term="Jacdac"/><category term="Java"/><category term="Minecraft"/><category term="Phidgets"/><category term="Zoom"/><category term="Zune"/><category term="sigcse2021"/><category term="Awards"/><category term="CSforEL"/><category term="Halo"/><category term="Imagine Cup"/><category term="MIEExpert"/><category term="MakerFaire"/><category term="XNA"/><category term="Xamarin"/><category term="art"/><category term="copilot"/><category term="dreamspark"/><category term="microcode"/><title type='text'>Computer Science Teacher</title><subtitle type='html'>This is Alfred Thompson&#39;s blog about computer science education and related topics. </subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='https://blog.acthompson.net/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default'/><link rel='alternate' type='text/html' href='https://blog.acthompson.net/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default?start-index=26&amp;max-results=25'/><author><name>Alfred Thompson</name><uri>http://www.blogger.com/profile/05575057876858763822</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>1649</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-18677687.post-4195292068594214858</id><published>2026-03-30T07:39:00.001-04:00</published><updated>2026-03-31T10:45:57.220-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ai"/><category scheme="http://www.blogger.com/atom/ns#" term="artificial intelligence"/><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science Education"/><title type='text'>Talking Artificial Intelligence With Richard Crane from MILL5</title><content type='html'>&lt;h3&gt;&lt;font style=&quot;font-weight: normal;&quot;&gt;Trying something new to me. I’ve been really interested in AI recently and when my friend, Rich, approached me about sharing his thoughts about AI I jumped at the chance. Richard Crane and I chatted for a while about artificial intelligence. What follows is a transcript of that conversation.&lt;/font&gt;&lt;/h3&gt;  &lt;h3&gt;Introduction&lt;/h3&gt;  &lt;p&gt;&lt;strong&gt;Alfred Thompson:&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;Welcome, everyone. Today I’m joined by Richard Crane, Founder, CTO, and Chief AI Officer of &lt;a href=&quot;https://mill5.com/&quot;&gt;MILL5&lt;/a&gt;. Richard and I go way back—we’ve known each other since 2003 when we were colleagues at Microsoft. &lt;/p&gt;  &lt;p&gt;While Richard has been deeply embedded in the AI space for over a decade, the rest of the world is just now catching up to the shift he has been helping to lead—moving AI from a simple developer tool to a complete reimagining of how we build and solve problems. &lt;/p&gt;  &lt;p&gt;I’ve invited him here to discuss the new reality for developers, the changing landscape of computer science education, and how experienced engineers are evolving into AI orchestrators. &lt;/p&gt;  &lt;p&gt;Richard, thanks for joining me.&lt;/p&gt;  &lt;h3&gt;Background and Relationship&lt;/h3&gt;  &lt;p&gt;&lt;strong&gt;Richard Crane&lt;/strong&gt;: Alfred, no problem. I’ve been looking forward to this. You and I go way back—from our time at Microsoft. And later on, you taught computer science in high school, and it just so happens you taught both my kids. So this is an amazing opportunity for us. Thank you. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Alfred Thompson:&lt;/strong&gt; You’re very welcome.&lt;/p&gt;  &lt;h3&gt;Balancing Roles: Building and Documenting AI&lt;/h3&gt;  &lt;p&gt;&lt;strong&gt;Alfred Thompson:&lt;/strong&gt; You are the Founder, CTO, and Chief AI Officer of &lt;a href=&quot;https://mill5.com&quot; target=&quot;_blank&quot;&gt;MILL5&lt;/a&gt;—and also the host of the &lt;a href=&quot;https://inventingfirewith.ai/&quot;&gt;Inventing Fire with AI&lt;/a&gt; podcast. How do these roles—building the technology and documenting its evolution—inform each other? &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Richard Crane:&lt;/strong&gt; That’s a great question. Let me start by saying we formed MILL5 about ten years ago. At the time, I actually held every title—CEO, CFO, CTO. There was no “Chief AI Officer” title back then, but we were already doing AI. &lt;/p&gt;  &lt;p&gt;My business partner, Sri Bhupathi, has been doing incredible work in AI for years. And AI encompasses far more than what people see today with tools like ChatGPT, Claude, or Grok. It includes natural language processing, computer vision, machine learning, and many other technologies—and we’ve been working across all of them for a long time. &lt;/p&gt;  &lt;p&gt;To your question—how do building and documenting inform each other? I’ve always considered myself a doer. I learn best by doing. Talking about what I’ve built helps me articulate and reinforce what I’ve learned. &lt;/p&gt;  &lt;p&gt;AI is evolving so rapidly—there’s something new every day. Right now, I’m deeply focused on knowledge distillation and trying to reach a very high level of expertise in that area. &lt;/p&gt;  &lt;p&gt;So the process goes hand in hand: &lt;/p&gt;  &lt;p&gt;- Building helps us serve our customers at MILL5 &lt;/p&gt;  &lt;p&gt;- Documenting helps share that knowledge with the broader community&lt;/p&gt;  &lt;h3&gt;Early AI Adoption and the “Light Bulb” Moment&lt;/h3&gt;  &lt;p&gt;&lt;strong&gt;Alfred Thompson:&lt;/strong&gt; You’ve been working with AI for over 10 years—long before the current hype cycle. What was the moment when you realized AI wasn’t just another tool, but a fundamental shift in how we build? &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Richard Crane&lt;/strong&gt;: A few things come to mind. First, we’ve been doing AI since day one at MILL5. One thing about our team is that we constantly push ourselves to the cutting edge. We always aim to understand what’s coming before everyone else. &lt;/p&gt;  &lt;p&gt;If you go back 10 years, people might say, “You weren’t doing AI back then.” But we absolutely were. In fact, one of our AI solutions for Olympus was featured in a Microsoft Build keynote in 2019. &lt;/p&gt;  &lt;p&gt;I remember sitting in the audience while it was being presented, and suddenly my phone started blowing up—friends and colleagues asking, “Is that you guys?” And I said, “Yes, that’s us.” &lt;/p&gt;  &lt;p&gt;As for the “light bulb” moment—it wasn’t a single instant. It was a series of realizations. &lt;/p&gt;  &lt;p&gt;One key moment was in January 2019 during our global company meeting. At that time, we had grown from two people in a room to a company operating in seven countries. &lt;/p&gt;  &lt;p&gt;I pulled up our company-wide slide deck and made a very clear statement: &lt;/p&gt;  &lt;p&gt;“Everyone in the company needs to know AI. Period.” &lt;/p&gt;  &lt;p&gt;Since then, AI has been a core part of every company discussion, multiple times a year. &lt;/p&gt;  &lt;p&gt;So in 2019 I knew it, but there are many more light bulb moments, right? And I&#39;ll just give you one more and three years ago or 2 1/2 almost three years ago when people were like, I can use ChatGPT or I could do this and they were they&#39;re like maybe I could use it for coding. And there were some aspects of coding where it could generate code, I can honestly say the light bulb moment, a major light bulb moment for me, was in January of this year where I&#39;m a seasoned software engineer, one that I would consider. Yeah, I try to be humble, but I&#39;m I feel like I&#39;m top 1% on the planet. That&#39;s what people keep telling me. And in January of this year, I&#39;m able to build full-fledged systems by myself. &lt;/p&gt;  &lt;p&gt;And I want to enable that for every single developer I have on my team. And so that&#39;s a light bulb moment as well where things have shifted big time and they keep shifting. I expect another shift sometime over the summer and another shift sometime in October, November time frame. So we&#39;re going to see a lot more light bulb moments.&lt;/p&gt;  &lt;h3&gt;AI Creativity and Human Advantage&lt;/h3&gt;  &lt;p&gt;&lt;strong&gt;Richard Crane&lt;/strong&gt;: One interesting observation from my current work: I’m building different applications—like a financial operations cost analyzer for the cloud—and while they are very different, they often end up looking surprisingly similar in style and structure. &lt;/p&gt;  &lt;p&gt;When I want creativity, I’ll tell the AI: “Go wild. Be creative.” But often, it doesn’t vary much. &lt;/p&gt;  &lt;p&gt;So how do I get variation? I switch models. I might move from Claude to ChatGPT, or to Gemini, or another tool entirely. &lt;/p&gt;  &lt;p&gt;That’s how I introduce diversity into the output. &lt;/p&gt;  &lt;p&gt;At the end of the day, though, I still believe humans have the edge in creativity—by a wide margin.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Alfred Thompson&lt;/strong&gt; So you are incredibly productive using AI. How much of that is due to your prior experience in software development? Can someone without a solid technical foundation ever truly close the gap, or does technical debt? Eventually catch up with them.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;Rich Crane&lt;/strong&gt; - This one is so hard for me to even talk about. I get parents call me up who whose kids are in computer science in school now or just graduated and they said Is my child not going to have a job?     &lt;br /&gt;And about two years ago, I would say as long as they learn AI, they&#39;re going to be fine.&lt;/p&gt;  &lt;p&gt;These days I don&#39;t know if that&#39;s the case. In fact, I don&#39;t think it is. I hired 2 interns last, not this past January, but the January before, and I set them loose. I had a laundry list of my projects that I always wanted to do and never got done.    &lt;br /&gt;And I set them loose on&amp;#160; one of them. And I remember I asked them to do something. I mentored them. I told them certain things. I educated them and I said, hey, your programmers, they were from a local university. I won&#39;t say which one.     &lt;br /&gt;But they I set them loose to develop it as well as gave them access to every AI I had and I have access to all of them and three weeks later.     &lt;br /&gt;They sort of got something done. It was good, but not great, and it didn&#39;t work exactly the way I wanted. I would probably use the word janky. That&#39;s a fun term that I hear sometimes in software development.     &lt;br /&gt;And I was like, I couldn&#39;t ship it, right? In fact, I in fact, I don&#39;t think I can really fully use it. And I let them do their thing.     &lt;br /&gt;But then I took those same requirements and then I went out AI with it.     &lt;br /&gt;I got it done in two hours.     &lt;br /&gt;So 2 interns, 3 weeks.     &lt;br /&gt;It didn&#39;t meet the need, didn&#39;t get exactly what I wanted. But in two hours, because I am somebody that knows what they&#39;re doing, I have 30 plus years of software experience in startups, Microsoft, my own companies because I have that experience.     &lt;br /&gt;I can direct AI the way I want. And I get it done, right? I&#39;m working on OS right now that would have taken two years and I&#39;m getting them done in seven days or less.     &lt;br /&gt;Right, so the answer is it&#39;s really important to have prior experience, right? The the senior principal architects and developers. In fact, Scott Hanselman was. I just saw an episode with him. You remember Scott, right? &lt;/p&gt;  &lt;p&gt;&lt;strong&gt; Alfred Thompson&lt;/strong&gt; Oh, yeah. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt; Rich Crane&lt;/strong&gt; So Scott just said that he&#39;s tired. Why? Because he has that young energy to go develop and do things, but he&#39;s not the same young guy he was trying to take on the world with software development. He&#39;s, but he has this fuel to do more because of AI. But his physical ability and his age and his, he&#39;s a fit guy, don&#39;t get me wrong. But still he&#39;s not the same young guy. &lt;/p&gt;  &lt;p&gt;It&#39;s a weird time, and I do agree that prior experience is a big thing. It&#39;s a it&#39;s an important thing, so.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Alfred Thompson&lt;/strong&gt; - So if the if the traditional entry-level programming job is drying up, as it seems to be, how would a student today prove their value? Should they still be doing like leet code? Should they be focused on building autonomous AI agents?&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;Rich Crane&lt;/strong&gt; - You got to put yourself out there, right? You got to put yourself out there, right?&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;Alfred Thompson&lt;/strong&gt; - What should they be doing?&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;Rich Crane&lt;/strong&gt; - I think there&#39;s value in learning everything and anything with software development. Imagine if you had a Agentex system. Like right now I have Openclaw and I have 7 agents running on the thing. I have a scout that&#39;s looking for ideas. I have an assistant that&#39;s helping me coordinate those ideas. I have a developer and an architect agent, and those two are responsible for building the plan, building the spec, and then implementing it, right? There&#39;s a couple others, but those things are not going to be any good if you, the person, are able to express things.     &lt;br /&gt; In fact, I had this conversation last night at a local restaurant with a guy and he was like, oh, you don&#39;t need to know anything anymore. And I&#39;m like, that&#39;s not true.     &lt;br /&gt; I said you can express something and yes, you will get something out of it will be exactly what you want. Will it perform? Will it scale? Will it function correctly?     &lt;br /&gt; Will there be little things here and there? Anybody I know can vibe code an app these days and get it the look and feel down. But when I look at it, I&#39;m like, oh, what did AI just do? There&#39;s something wrong right there. And then I ask AI, I said, what&#39;s going on there? There&#39;s some problem there. And it&#39;s like, oh, I&#39;m doing this. And usually my response is, why the heck are you doing that, right?     &lt;br /&gt; And I said, but then here&#39;s the follow on. Why are you not doing this?     &lt;br /&gt; And the thing I love about it, AI says you&#39;re absolutely right. I should be doing that. And I sit back and I just like, yeah, I know I&#39;m right. But that&#39;s the problem. People don&#39;t know what they don&#39;t know. And that&#39;s a that&#39;s a big gap.&lt;/p&gt;  &lt;h3&gt;AI and CS Education&lt;/h3&gt;  &lt;p&gt;&lt;strong&gt;Alfred Thompson&lt;/strong&gt; - OK, so my focus has been on CS education. What&#39;s the new math of computer science? Do we still need to teach manual memory management and data structures if an A I can handle them in seconds?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Rich Crane&lt;/strong&gt; - I think it&#39;s needed. It&#39;s not that they can&#39;t handle them in seconds, it&#39;s that. And this, right? There&#39;s one data structure and another data structure. Like let&#39;s take an array versus a linked list, right? Every time you have to allocate a new slot in array, you have to destroy the array, recreate another one&amp;#160; copy from the original array into the new one. it&#39;s from a memory management perspective and a performance perspective. It&#39;s a nightmare. What you don&#39;t want is a I just to say, hey, I think I should use an array for everything. Versus, say, some other data structure like a hash table or a link list or dictionary or something, right? And AI knows about all those things. But quite frankly, I feel like AI sometimes is the junior engineer, very capable junior engineer, meaning it knows everything, but it doesn&#39;t know exactly what it should do.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Alfred Thompson&lt;/strong&gt; - At this point, are we teaching students how to be pilots of these AIs, or can we still be teaching them how to build the engine? Which skill is more valuable in 2026?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Rich Crane&lt;/strong&gt; - Well, in 2026, if how to build the engine, you&#39;re gonna, you&#39;re gonna do extremely well, right? The challenge is I think. If how to pilot AI systems in the future, that&#39;s where it&#39;s going to go. We&#39;re not going to get there this year or next year as the like the main focus.     &lt;br /&gt;Unfortunately, the problem is building the engine is going to be a lost knowledge, right? People are not going to know how to do those things, and unfortunately this happens with a lot of different industries. I&#39;m trying to think of one where it&#39;s like, hey, in this modern age there are things we did 100 years ago that we don&#39;t do today, and writing code is one of them, right? In 100 years we will absolutely not be writing code, but with AI being so fast.&lt;/p&gt;  &lt;p&gt;And the evolution and innovation around it, it&#39;s just a matter of time. The question is how long.&lt;/p&gt;  &lt;p&gt;Yeah, well, I know your your passion for education. you&#39;ve been doing technology and education for so long, right?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Alfred Thompson&lt;/strong&gt; - Yeah, I have. And that&#39;s&amp;#160; kind of where my passion is right now. And one of the things I&#39;ve always pushed is I&#39;ve always told students that I want them to be creative. A teacher that I really respect once said that if you get 23 student projects that all look alike, you gave them a recipe. you didn&#39;t give them a project. You didn&#39;t. You&amp;#160; didn&#39;t get what you really wanted to get out of it. You really want to see 23 projects that all look different.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;Rich Crane&lt;/strong&gt; - That&#39;s true. In fact, I always say that when you give people a task in software engineering, they in fact, what? This is a great thing,.     &lt;br /&gt; If you think about it with AI, you give a task to a bunch of your employees, they say go build this. You&#39;re going to get all different answers. Why? Because there&#39;s hundreds of ways to do that same task in software engineering. Will the AI come up with 500 ways? &lt;/p&gt;  &lt;h3&gt; A Look Into The Future&lt;/h3&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;Alfred Thompson&lt;/strong&gt; - All right, so let&#39;s look a little bit into the future. We are moving past the chatting with the box. In five years, will the title software engineer even exist or will we all be product architects? &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;Rich Crane&lt;/strong&gt; - I think the software engineer will exist. I think it will be there for those engineers that take learning as an art, as a craftsmanship, right? That likes to learn everything there is. But they&#39;ll be doing so much more. we used to see like developers and engineers, they&#39;ll focus on one thing. In fact, we were talking about this on a team I&#39;m working on right now. We&#39;re doing all Agentex development just across the board. In a production product, no less like like a crazy production product. It&#39;s like, hey, one of the guys has a specialty in UI. Guess what? When I when I brought it on the project, I was like, you&#39;re no longer just the UI guy, you&#39;re also the DevOps guy and the database guy and the mobile app development guy, right? And the front end web guy, right? And the API guy, right?&lt;/p&gt;  &lt;p&gt;Of course you&#39;re probably going to specialize in certain areas, but you&#39;re doing everything. So I think what&#39;s going to be interesting is yes, the word software engineer is&amp;#160; going to stay around, but those software engineers that remain.&amp;#160; Are going to be doing everything now product architects? Absolutely. In fact, the same restaurant I was at last night, I was sitting at the bar with one of my employees and he&#39;s one of my top guys. And I had my laptop with me and I opened up the laptop and we were talking about an accelerator that we were building for some of our customers and we were of course Vibe coding it and everything else.    &lt;br /&gt;And we were looking at it and. It&#39;s a pretty extensive accelerator tool, right? It&#39;s not going to be a product of ours, it&#39;s&amp;#160; more to help our customers. And my developer looked or my, engineer developer employee looked at me and said how much line, how many lines of code did you write on this? I said zero, right? And we were talking about a feature that my business partner wanted in in this accelerator. And I said, hey, here&#39;s this product spec that I created for this feature. I just pasted the spec in. I pasted an image right? I said I want it to look like this and I just drew it right? So I pasted this image, pasted this spec. It got it done in like 8 minutes.&lt;/p&gt;  &lt;p&gt;And then my engineer was like, whoa. I was like, yeah, he goes, well, I don&#39;t like this, right? And he goes, what if we had this? And there was a graph. It was a dynamic graph. And you probably know this, right? Developing graphs. It&#39;s not easy and it&#39;s sometimes suck and but AI just did it and generated it. It was very cool from&amp;#160; the first moment we saw it, but we made it cooler. We didn&#39;t write a line of code. All we expressed was Can you do this? We would like this, right? We think this would be cool. And it, what it says? It&#39;s very, I forget the term. What was it? Sycophantic, right? It&#39;s very agreeable. It says, well, that&#39;s a great idea. I&#39;ll get right on it.&lt;/p&gt;  &lt;p&gt;And literally 2 minutes later, not even not even 2 minutes. In fact, I think it was like 30 seconds, but I we were at the bar talking, so I don&#39;t know if it was like 30 seconds or two minutes, but it was definitely 2 minutes or less. It did it. And we&#39;re like, take it back because it wasn&#39;t a simple ask, right? And I was just like, wow. So there is going to be a lot of product architects, a lot fewer software engineers, but a lot more capable software engineers, meaning they&#39;re going to the knowledge that a software Engineer is gonna have in this next wave is gonna be so much. even with my AI and agentic coding and vibe coding and things like that, there are topics that I know now that I didn&#39;t know&amp;#160; five years ago.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Alfred Thompson&lt;/strong&gt; - OK, so one last wrap it up. As models become more capable, what is the one human skill that you believe will remain AI proof? &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160; &lt;br /&gt;&lt;strong&gt;Rich Crane&lt;/strong&gt; - Well, we&#39;ll have to preface this, so&amp;#160; anybody that&#39;s creative. Art centric. Anybody that&#39;s trade oriented, right? Like the same developer that&#39;s sitting next to me who&#39;s one of the best developers know he get he will get to the point where he does assembly code and looks at ones and zeros to figure out bugs. And he had to do it because of the one of the projects he&#39;s on and he&#39;s like, should I just become a plumber?     &lt;br /&gt; And I&#39;m like, I don&#39;t know. Do you want? I&#39;m thinking he does a lot of really great home, home repairs and do-it-yourself projects and things like that. I&#39;m like, the plumbers are making a lot of money right now. So are the electricians and the construction people and things like that. They&#39;re all building AI data centers.&lt;/p&gt;  &lt;p&gt;But at the same time, the people that are developing art, painting, music, right? Google released something recently to generate music with AI, and it&#39;s good. It&#39;s OK.    &lt;br /&gt; I don&#39;t think it&#39;s great, but you can see the clear difference between AI developing that and an actual human being. So I think it&#39;s going to allow us to do. Be more creative, more, focus on our art and those type of capabilities. In fact, somebody said a long time ago, I don&#39;t want AI to generate an image for me. I wanted to do my dishes, right?&lt;/p&gt;  &lt;p&gt;I still think to this day there is a distinct difference between AI doing those type of work, right?&lt;/p&gt;  &lt;p&gt;So yeah, no, I&#39;ll tell you, it&#39;s there&#39;s a lot of things to come in and software engineering isn&#39;t going away, that&#39;s for sure. It&#39;s definitely changing though and one of the things I think is kind of interesting is how do you not lose?    &lt;br /&gt; I think there&#39;s going to be scenarios where others aren&#39;t teaching those things anymore and because they don&#39;t get taught, we&#39;ll eventually lose. So how do you get that?     &lt;br /&gt; And I&#39;m going to preface this with one other thing is People worry about like, am I, am I going to lose my job? In fact, I just had that conversation not even an hour ago, right? And it was, it was a role that wasn&#39;t technical and that person was like, hey, I might lose my job and I&#39;m like, why? &lt;/p&gt;  &lt;p&gt;Right. Somebody, I think it was Matthew Berman, right. He&#39;s one of the AI podcast influencers out there. He automated one of his employees tasks. He didn&#39;t intend to. He was just trying to automate his business and in doing that he took like 90% of the work that that person was doing away. But what it did is freed that person up to do so many more things. And because that work that he was doing was trivial, menial, minutiae and just tedious. AI could do it faster and better than the human, and now the human could go work on creative stuff and big things and all that stuff. And in the process he&#39;s doing 10 times more work than he did before because of AI.    &lt;br /&gt; So we&#39;re going to see a productivity revolution that is just happening. And it&#39;s funny, I was thinking about my employees and I was thinking about me.&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160; &lt;br /&gt;I have a company that isn&#39;t a bunch of software engineers and things like that.&amp;#160; Every person is their own software development team. So I have a company of hundreds of software development teams where one person stood before as a software engineer, their entire team unto themselves, right? And that&#39;s the way I look at it..&lt;/p&gt;  &lt;h3&gt;Closing Remarks&lt;/h3&gt;  &lt;p&gt;&lt;strong&gt;Alfred Thompson&lt;/strong&gt; - Thank you. Appreciate your time. A lot to digest.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Richard Crane:&lt;/strong&gt;&amp;#160; Alfred, thank you so much. This has been a pleasure.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://blog.acthompson.net/feeds/4195292068594214858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/18677687/4195292068594214858' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/4195292068594214858'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/4195292068594214858'/><link rel='alternate' type='text/html' href='https://blog.acthompson.net/2026/03/talking-artificial-intelligence-with.html' title='Talking Artificial Intelligence With Richard Crane from MILL5'/><author><name>Alfred C Thompson II</name><uri>http://www.blogger.com/profile/06011086242006020298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18677687.post-4886343133988420343</id><published>2026-03-03T14:54:25.677-05:00</published><updated>2026-03-03T14:54:25.677-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ai"/><category scheme="http://www.blogger.com/atom/ns#" term="artificial intelligence"/><category scheme="http://www.blogger.com/atom/ns#" term="Careers"/><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science Education"/><category scheme="http://www.blogger.com/atom/ns#" term="computing"/><category scheme="http://www.blogger.com/atom/ns#" term="Education"/><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><category scheme="http://www.blogger.com/atom/ns#" term="software engineering"/><title type='text'>Computer Programming or Software Development</title><content type='html'>&lt;p&gt;My friend &lt;a href=&quot;https://www.linkedin.com/posts/patyongpradit_linkedin-activity-7432103281989988353-MSJt/&quot;&gt;Pat Yongpradit has a post on LinkedIn&lt;/a&gt; that got me thinking. It starts with a key statement “Computer programming (coding) is not equal to software development.” Now I tend to think of those as similar if not identical but Pat points out that “Computer programmers and software developers are codified differently in the BLS data” BLS is the US Bureau of Labor Statistics BTW.&lt;/p&gt;  &lt;p&gt;Interesting. So what is the difference? Computer programmers write code. The &lt;a href=&quot;https://www.bls.gov/ooh/computer-and-information-technology/computer-programmers.htm&quot;&gt;BLS describes computer programmers&lt;/a&gt;:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Computer programmers write, modify, and test code and scripts that allow computer software and applications to function properly.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Software Developers do more. The &lt;a href=&quot;https://www.bls.gov/oes/2023/may/oes151252.htm&quot;&gt;BLS describes software developers&lt;/a&gt; as follows:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Research, design, and develop computer and network software or specialized utility programs. Analyze user needs and develop software solutions, applying principles and techniques of computer science, engineering, and mathematical analysis. Update software or enhance existing software capabilities. May work with computer hardware engineers to integrate hardware and software systems, and develop specifications and performance requirements. May maintain databases within an application area, working individually or coordinating database development as part of a team.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;‘A lot more words in that second job description. The BLS projects growth in the need for software developers and a decline in the need for computer programmers. I’m not so optimistic. My read on many of the layoffs in tech companies appear to me to be more about declining numbers of software developers. I could be wrong and maybe there are/were a lot more people just doing computer programming than I think. The industry keeps changing.&lt;/p&gt;  &lt;p&gt;In my very first software jobs, back in the late 1970s, I would characterize my work under the software development description. While I did do some programming from specifications and design documents written by others (computer programming) I rapidly moved into meeting with users, analyzing needs, and designing and developing software and utility programs. Job titles may have been different but that was the work.&lt;/p&gt;  &lt;p&gt;What may happen is that software development involves less coding than it has in the past because of AI. At least coding by humans. So BLS is probably right about a decline in the need for computer programmers. At the same time, if software developers spend less time doing actual coding they may have more time for higher level (if that is the right term) thinking and involvement in design. Unless AI starts doing more of that. So maybe we will not need more of them. Or perhaps AI will make it possible for more people to be software developers who wouldn’t be that now. We’ll see I guess.&lt;/p&gt;  &lt;p&gt;My undergraduate degree is in Systems. One of the goals of the program was to train people to interface between most people and computer systems. In other words, to understand the needs that people/businesses have and translate it into what computer programmers need to know to write software. For a long time, that sort of work involved two sides and sometimes three. That is to say, sometimes there was a user/client, and analyst, and a programmers. Sometimes the latter two roles were one person. &lt;/p&gt;  &lt;p&gt;Knowing how to write code was always essential because code is the language of computer science. Not knowing how to code was seriously limiting for someone trying to design software. I think that is always going to be the case at some level. So I think software developers, even those who prompt AIs, will always need to know some coding. More than just coding though, I think that students, anyone who is going to interact with computers and that incudes, of course, software developers, needs to have a background in computer science. &lt;/p&gt;  &lt;p&gt;Computer science is not just coding but having an understanding of how computers work. What is computer logic? What is computational anyway? AIs have a lot to learn and people with a computer science understanding are who AI is going to learn from. We need to think of K-12 computer science as computer science – foundational ideas and concepts – and not just a class in how to write code. We need to prepare people to be software developers not computer programmers.&lt;/p&gt;  &lt;p&gt;Mike Zamansky has a couple of recent posts on why CS still matters in schools that I think are worth a read:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;https://cestlaz.zamansky.net/posts/why-cs-still-matters/&quot;&gt;Why CS Still Matters&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;https://cestlaz.zamansky.net/posts/more-why-cs-matters/&quot;&gt;More on why teaching CS matters&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Interested in seeing what the BLS thinks of employment changes because of AI? Check out &lt;a href=&quot;https://www.bls.gov/opub/mlr/2025/article/incorporating-ai-impacts-in-bls-employment-projections.htm&quot;&gt;Incorporating AI impacts in BLS employment projections: occupational case studies&lt;/a&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://blog.acthompson.net/feeds/4886343133988420343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/18677687/4886343133988420343' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/4886343133988420343'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/4886343133988420343'/><link rel='alternate' type='text/html' href='https://blog.acthompson.net/2026/03/computer-programming-or-software.html' title='Computer Programming or Software Development'/><author><name>Alfred C Thompson II</name><uri>http://www.blogger.com/profile/06011086242006020298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18677687.post-1124572751841359650</id><published>2026-03-01T18:05:13.780-05:00</published><updated>2026-03-01T18:05:13.780-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ai"/><category scheme="http://www.blogger.com/atom/ns#" term="artificial intelligence"/><category scheme="http://www.blogger.com/atom/ns#" term="ethics"/><title type='text'>Selling AI Before It’s Time</title><content type='html'>&lt;p&gt;Artificial Intelligence has been big in the news the last few days. A lot of the talk has been about the Trump administration designating Anthropic a supply chain risk. The US&amp;#160; Department of Defense (its official legal name) was unable to agree to contract terms with Anthropic. You can read Anthropic’s statement here. &lt;a href=&quot;https://www.anthropic.com/news/statement-comments-secretary-war&quot;&gt;Statement on the comments from Secretary of War Pete Hegseth&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;There are apparently two sticking points.&amp;#160; &lt;/p&gt;  &lt;p&gt;The use of Anthropic’s AI model, Claude:for:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt; the mass domestic surveillance of Americans &lt;/li&gt;    &lt;li&gt;fully autonomous weapons.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The first on general principal. The second because Anthropic does not believe that AI is ready for handling fully autonomous weapons. I’m surprised (OK not really) that the first is an issue because the DoD says that using it for mass domestic surveillance would be illegal (probably true) and that they would not do it. Well, some of us remember the CIA snarfing up data on Americans by getting data from overseas so I can see why Anthropic might want more assurances than “trust me.”&lt;/p&gt;  &lt;p&gt;The fully autonomous weapon control is potentially even more concerning. Anthropic doesn’t believe their AI is ready for that. I wonder if it ever will be ready. There are reports that OpenAI’s tools took part in mission planning for the recent strikes against Iran. There are also credible reports that those attacks hit a school and killed over 80 school children.&amp;#160; Did AI pick the targets alone? Was there human oversite? I have no idea but clearly things were missed. At least I hope they were missed. I’d hate to think that event was intentional. Dare we let AI make these decisions?&lt;/p&gt;  &lt;p&gt;There have been some studies of AI used in war games. These studies have resulted in headlines like “&lt;a href=&quot;https://www.msn.com/en-gb/news/world/ai-simulations-constantly-opting-for-nuclear-strikes-terrifying-study-shows/ar-AA1Xf7jO&quot;&gt;AI simulations constantly opting for nuclear strikes, terrifying study shows&lt;/a&gt;” AI models do not have human sensibilities or share human ideas of going too far. Apparently, these AI tools have not been trained to follow &lt;a href=&quot;https://en.wikipedia.org/wiki/Three_Laws_of_Robotics&quot;&gt;Asimov&#39;s Three&amp;#160; Rules of Robotics&lt;/a&gt;. I wonder if the people developing AI today are aware of them. I doubt that many government officials are. Nor do they really understand the risks of AI controlling weapons.. No one really does but if the developers behind a tool say it isn’t ready perhaps we should believe them!&lt;/p&gt;  &lt;p&gt;I was reminded of the old Paul Masson advertisements where Orson Wells would dramatically declare “We will sell no wine before its time.” The point was not to rush things and to let the process complete until the wine was completely ready. It appears that some people are pushing AI in places where AI is not ready to perform adequately. That is very unlikely to give a good result. &lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://blog.acthompson.net/feeds/1124572751841359650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/18677687/1124572751841359650' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/1124572751841359650'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/1124572751841359650'/><link rel='alternate' type='text/html' href='https://blog.acthompson.net/2026/03/selling-ai-before-its-time.html' title='Selling AI Before It’s Time'/><author><name>Alfred C Thompson II</name><uri>http://www.blogger.com/profile/06011086242006020298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18677687.post-6334883705762185945</id><published>2026-02-23T15:13:02.008-05:00</published><updated>2026-02-23T15:13:02.008-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ai"/><category scheme="http://www.blogger.com/atom/ns#" term="artificial intelligence"/><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science Education"/><category scheme="http://www.blogger.com/atom/ns#" term="computing"/><category scheme="http://www.blogger.com/atom/ns#" term="CSforAll"/><category scheme="http://www.blogger.com/atom/ns#" term="CSTA"/><category scheme="http://www.blogger.com/atom/ns#" term="Education"/><category scheme="http://www.blogger.com/atom/ns#" term="ethics"/><category scheme="http://www.blogger.com/atom/ns#" term="Hour of AI"/><category scheme="http://www.blogger.com/atom/ns#" term="hour of code"/><category scheme="http://www.blogger.com/atom/ns#" term="Life"/><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><category scheme="http://www.blogger.com/atom/ns#" term="SIGCSE"/><category scheme="http://www.blogger.com/atom/ns#" term="Teaching"/><title type='text'>Who Is Driving Changes to Computer Science Education</title><content type='html'>&lt;p&gt;There are a lot of &lt;a href=&quot;https://news.slashdot.org/story/26/02/21/1932253/codeorg-president-steps-down-citing-upending-of-cs-by-ai&quot;&gt;Changes happening at code dot org&lt;/a&gt; The Slashdot article linked there lists several of them. While the changes include a number of people changes including President &lt;a href=&quot;https://www.linkedin.com/posts/cameronpwilson_free-k12-curriculum-for-computer-science-activity-7430702671965364224-VELQ/?utm_source=share&amp;amp;utm_medium=member_desktop&amp;amp;rcm=ACoAAAGwTkoBuTtZDbOMlfA66NPuU0-i_GXhd2s&quot;&gt;Cameron Wilson stepping aside&lt;/a&gt;, Chief Academic Officer &lt;a href=&quot;https://www.linkedin.com/posts/patyongpradit_today-i-begin-a-new-chapter-as-general-manager-activity-7416519758784925697-MTro/?utm_source=share&amp;amp;utm_medium=member_desktop&amp;amp;rcm=ACoAAAGwTkoBuTtZDbOMlfA66NPuU0-i_GXhd2s&quot;&gt;Pat Yongpradit leaving to join Microsoft&lt;/a&gt;, 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. &lt;/p&gt;  &lt;p&gt;The questions top of my mind are &amp;quot;who is driving the direction of CS education&amp;quot; and &amp;quot;is CS education moving in the right direction?&amp;quot; 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.&lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;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. &lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;We’ve come a long way.&lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;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. &lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;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? &lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;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&amp;#160; 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.&amp;#160; 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.&lt;/p&gt;  &lt;p&gt;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.&amp;#160; &lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://blog.acthompson.net/feeds/6334883705762185945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/18677687/6334883705762185945' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/6334883705762185945'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/6334883705762185945'/><link rel='alternate' type='text/html' href='https://blog.acthompson.net/2026/02/who-is-driving-changes-to-computer.html' title='Who Is Driving Changes to Computer Science Education'/><author><name>Alfred C Thompson II</name><uri>http://www.blogger.com/profile/06011086242006020298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18677687.post-7866762491069072928</id><published>2026-02-07T12:25:50.110-05:00</published><updated>2026-02-08T08:35:49.753-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ai"/><category scheme="http://www.blogger.com/atom/ns#" term="artificial intelligence"/><category scheme="http://www.blogger.com/atom/ns#" term="Education"/><title type='text'>AI Tutors and the Human Connection</title><content type='html'>&lt;p&gt;I&amp;#160; recently shared at quote on Facebook:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Unless our students know that we care, they will not learn from us.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;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?&lt;/p&gt;  &lt;p&gt;Thinking about this, I recalled variations of the saying:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;The secret of success is sincerity. Once you can fake that you’ve got it made.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Can Artificial Intelligence tutors fake caring about students? I wonder. &lt;/p&gt;  &lt;p&gt;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.”&lt;/p&gt;  &lt;p&gt;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. &lt;/p&gt;  &lt;p&gt;Also, a friend of mine (&lt;a href=&quot;https://seltzerbooks.com/&quot;&gt;Richard Seltzer&lt;/a&gt;) recently shared a book he was working on titled “How to Partner with AI: A New Kind of Relationship” (&lt;a href=&quot;http://www.seltzerbooks.com/partnerprepub.pdf&quot;&gt;&lt;b&gt;A pre-publication pdf of the entire book is available here for free&lt;/b&gt;&lt;/a&gt;.) 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.&lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;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?&lt;/p&gt;  &lt;p&gt;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. &lt;/p&gt;  &lt;p&gt;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! &lt;/p&gt;  &lt;p&gt;Perhaps that will work out. Perhaps an AI tutor will work mathematics into the football lesson. It could happen but will it? &lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;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. &lt;/p&gt;  &lt;p&gt;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&amp;#160; 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. &lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://blog.acthompson.net/feeds/7866762491069072928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/18677687/7866762491069072928' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/7866762491069072928'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/7866762491069072928'/><link rel='alternate' type='text/html' href='https://blog.acthompson.net/2026/02/ai-tutors-and-human-connection.html' title='AI Tutors and the Human Connection'/><author><name>Alfred C Thompson II</name><uri>http://www.blogger.com/profile/06011086242006020298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18677687.post-2214935928824330954</id><published>2026-02-01T09:15:39.274-05:00</published><updated>2026-02-01T09:15:39.274-05:00</updated><title type='text'>Reminiscing - When Computers Had Lights</title><content type='html'>&lt;p&gt;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. &lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;Today, those sorts of lights are an unwanted, and generally unneeded, expense. I do sometimes miss those simpler days though.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://blog.acthompson.net/feeds/2214935928824330954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/18677687/2214935928824330954' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/2214935928824330954'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/2214935928824330954'/><link rel='alternate' type='text/html' href='https://blog.acthompson.net/2026/02/reminiscing-when-computers-had-lights.html' title='Reminiscing - When Computers Had Lights'/><author><name>Alfred C Thompson II</name><uri>http://www.blogger.com/profile/06011086242006020298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18677687.post-6784957713526617364</id><published>2026-01-30T07:10:00.000-05:00</published><updated>2026-01-30T10:01:21.232-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science Education"/><category scheme="http://www.blogger.com/atom/ns#" term="CSTA"/><category scheme="http://www.blogger.com/atom/ns#" term="Education"/><category scheme="http://www.blogger.com/atom/ns#" term="Professional Development"/><title type='text'>CS Teacher Improvement Through Observation</title><content type='html'>&lt;p&gt;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&#39;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.&lt;/p&gt;  &lt;p&gt;I believe that teaching CS is different from teaching most subjects. But each subject probably has its own nuances. That&#39;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&lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;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! &lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;Anyway, please read the posts linked below. Smarter people than me.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;h4&gt;&lt;a href=&quot;https://computinged.wordpress.com/2026/01/20/learning-to-teach-better-by-observation-what-i-did-on-my-sabbatical/&quot;&gt;Learning to teach better by observation: What I did on my sabbatical – Mark Guzdial&lt;/a&gt;&lt;/h4&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;h4&gt;&lt;a href=&quot;https://cestlaz.zamansky.net/posts/improving-instruction/&quot;&gt;Improving Instruction - College and K12 – Mike Zamansky&lt;/a&gt;&lt;/h4&gt;   &lt;/li&gt; &lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='https://blog.acthompson.net/feeds/6784957713526617364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/18677687/6784957713526617364' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/6784957713526617364'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/6784957713526617364'/><link rel='alternate' type='text/html' href='https://blog.acthompson.net/2026/01/cs-teacher-improvement-through.html' title='CS Teacher Improvement Through Observation'/><author><name>Alfred C Thompson II</name><uri>http://www.blogger.com/profile/06011086242006020298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18677687.post-592083594255578431</id><published>2026-01-28T07:29:00.000-05:00</published><updated>2026-01-28T07:29:00.113-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ai"/><category scheme="http://www.blogger.com/atom/ns#" term="artificial intelligence"/><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><title type='text'>Are AI Code Assistants Getting Better or Worse</title><content type='html'>&lt;p&gt;A friend of mine sent me a link to an opinion piece in the IEEE Spectrum - &lt;a href=&quot;https://spectrum.ieee.org/ai-coding-degrades&quot;&gt;AI Coding Assistants Are Getting Worse –&amp;gt; Newer models are more prone to silent but deadly failure modes&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Are AI code generators getting worse? The tl;dr&amp;#160; in this article is “Yes” because companies are letting poor programmers train the AI. You should read the article though. &lt;/p&gt;  &lt;p&gt;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?&lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://blog.acthompson.net/feeds/592083594255578431/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/18677687/592083594255578431' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/592083594255578431'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/592083594255578431'/><link rel='alternate' type='text/html' href='https://blog.acthompson.net/2026/01/are-ai-code-assistants-getting-better.html' title='Are AI Code Assistants Getting Better or Worse'/><author><name>Alfred C Thompson II</name><uri>http://www.blogger.com/profile/06011086242006020298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18677687.post-5868446352910077782</id><published>2026-01-26T08:14:00.000-05:00</published><updated>2026-01-26T08:14:00.114-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Big Data"/><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science Education"/><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><title type='text'>RotWords–String Manipulation Project</title><content type='html'>&lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://bsky.app/profile/shriram.bsky.social/post/3mdb4wbqsmk26&quot;&gt;&lt;img src=&quot;http://www.acthompson.net/images/blog/rotwords.png&quot; width=&quot;434&quot; height=&quot;565&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;It’s an obvious possible coding project in my eyes. &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Read a word from a wordlist&lt;/li&gt;    &lt;li&gt;Remove the last letter and place in in the front of the word&lt;/li&gt;    &lt;li&gt;Determine if the new string matches an actual word.&lt;/li&gt;    &lt;li&gt;Display both old and new word, if found&lt;/li&gt;    &lt;li&gt;Repeat&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;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.)&lt;/p&gt;  &lt;p&gt;And what is the usefulness of word lists if they have words that are not really words? Or that are not in common use?&lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://blog.acthompson.net/feeds/5868446352910077782/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/18677687/5868446352910077782' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/5868446352910077782'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/5868446352910077782'/><link rel='alternate' type='text/html' href='https://blog.acthompson.net/2026/01/rotwordsstring-manipulation-project.html' title='RotWords–String Manipulation Project'/><author><name>Alfred C Thompson II</name><uri>http://www.blogger.com/profile/06011086242006020298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18677687.post-453478124229032855</id><published>2026-01-24T19:21:35.941-05:00</published><updated>2026-01-24T19:21:35.941-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ai"/><category scheme="http://www.blogger.com/atom/ns#" term="artificial intelligence"/><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science Education"/><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><category scheme="http://www.blogger.com/atom/ns#" term="projects"/><title type='text'>Dice As a Design Problem</title><content type='html'>&lt;p&gt;The other day I ran into an interesting programming exercise on BlueSky.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://bsky.app/profile/advanced-ict.info/post/3mczkmeo7mc2k&quot;&gt;&lt;img src=&quot;http://www.acthompson.net/images/blog/bsLink.png&quot; width=&quot;331&quot; height=&quot;345&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The project description is at &lt;a href=&quot;https://www.101computing.net/2d-dice-grid-scoring-algorithm/&quot;&gt;2D Dice Grid Scoring Algorithm - 101 Computing&lt;/a&gt; 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.&lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;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.&amp;#160; I am not a fan of parentheses.&lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;What would/do you add to die objects to make them more interesting or useful?&lt;/p&gt;  &lt;p&gt;My project looks like this BTW.&lt;/p&gt;  &lt;p&gt;&lt;img src=&quot;http://www.acthompson.net/images/blog/DiceGrid.png&quot; /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://blog.acthompson.net/feeds/453478124229032855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/18677687/453478124229032855' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/453478124229032855'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/453478124229032855'/><link rel='alternate' type='text/html' href='https://blog.acthompson.net/2026/01/dice-as-design-problem.html' title='Dice As a Design Problem'/><author><name>Alfred C Thompson II</name><uri>http://www.blogger.com/profile/06011086242006020298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18677687.post-1399816790426069154</id><published>2026-01-19T19:10:13.005-05:00</published><updated>2026-01-20T14:03:10.455-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ai"/><category scheme="http://www.blogger.com/atom/ns#" term="appinventor"/><category scheme="http://www.blogger.com/atom/ns#" term="artificial intelligence"/><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science Education"/><category scheme="http://www.blogger.com/atom/ns#" term="computing"/><category scheme="http://www.blogger.com/atom/ns#" term="Education"/><category scheme="http://www.blogger.com/atom/ns#" term="MakeCode"/><category scheme="http://www.blogger.com/atom/ns#" term="MicroBit"/><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft"/><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio"/><title type='text'>Funding for CS Educational Tools</title><content type='html'>&lt;p&gt;Mark Guzdial posted a link to an &lt;a href=&quot;https://dl.acm.org/doi/abs/10.1145/3773090&quot;&gt;interview with Jens Mönig&lt;/a&gt;. Jens is the main person behind &lt;a href=&quot;https://snap.berkeley.edu/&quot;&gt;Snap!&lt;/a&gt; which developed out of Scratch (which Jens worked on). It’s a great interview and I recommend it. The story of Snap! is an interesting one. I think it is great that &lt;a href=&quot;https://www.sap.com/index.html&quot;&gt;SAP&lt;/a&gt; is funding the team behind it. This blog post, which sort of rambles a bit (sorry) was inspired by that interview.&lt;/p&gt;  &lt;p&gt;There are basically two and a half ways that software for teaching programming and computer science are funded. One is research funding. Usually by universities but sometimes by research groups that are part of major companies. The later is the half I refer to. The other is commercial products. I.e.. products that actually make money for companies.&lt;/p&gt;  &lt;p&gt;The problem with commercial products is that they are really designed for professional software developers. That means a number of things that are great for professionals but harder for beginners. Complexity is one of those issues. Visual Studio, which I use for my own development and used for years in the classroom, using a number of different files for every project for example. That’s just the beginning. Development on professional tools adds features for professionals but often subtracts features that are helpful for beginners. I first ran into this when Visual Basic became Visual Basic .NET and arrays of controls when from intuitive to complex with extra code necessary.&lt;/p&gt;  &lt;p&gt;Commercial software often has free versions which is the only way schools can generally afford to use them. Simple versions that work on a school’s limited resources tend to go away over time though. They don’t pay for themselves. &lt;/p&gt;  &lt;p&gt;I have seen other cool tools from commercial tools, or tools commercial companies provided for free, disappear over the years. Corporate research projects generally last while the principle investigator remains interested and can keep getting funding. If the research doesn’t wind up in a commercial product that doesn’t help with funding.&lt;/p&gt;  &lt;p&gt;&lt;img src=&quot;https://appinventor.mit.edu/images/logo.png&quot; width=&quot;143&quot; height=&quot;55&quot; /&gt;&lt;a href=&quot;https://appinventor.mit.edu/&quot;&gt;App Inventor&lt;/a&gt; is an exception. Originally developed at Google, App Inventor had an academic sponsor (It resides at MIT these day) and Google provided some seed money to get the open source version started. It phased easily from corporate research to university research.&lt;/p&gt;  &lt;p&gt;MakeCode (largely a Microsoft Research project)&amp;#160; is still going strong. It appears that industry/ academic cooperation is helping keep that going. That combination seems to be key in keeping some projects going.&lt;/p&gt;  &lt;p&gt;University research projects tend to last longer than corporate research projects. As long as someone can get grants, usually tied to graduate students coming up with good research topics involving the tool, they keep going. I wonder how well some these will continue when the principle academics lose interest, retire, or pass away. Some projects have depth of involvement which is helpful.&lt;/p&gt;  &lt;p&gt;&lt;img style=&quot;margin: 0px 12px 0px 0px; float: left; display: inline;&quot; src=&quot;https://www.alice.org/wp-content/uploads/2018/12/AliceLogoDarkBackground.jpg&quot; width=&quot;59&quot; align=&quot;left&quot; height=&quot;59&quot; /&gt;&amp;#160;&lt;a href=&quot;https://www.alice.org/&quot;&gt;Alice out of Carnegie Mellon&lt;/a&gt; has been going strong for 30 years even though it’s originator, the great &lt;a href=&quot;https://en.wikipedia.org/wiki/Randy_Pausch&quot;&gt;Randy Pausch&lt;/a&gt; passed away in 2008.&amp;#160; External funding, required for most academic tools has stayed strong for Alice. That takes a lot of work to maintain of course.&lt;/p&gt;  &lt;p&gt;Most of the long lasting tools have some level of corporate sponsorship. Oracle helping with Greenfoot and BlueJ are other examples.&amp;#160; There used to be a lot of NSF (US National Science Foundation) money around. Somehow I suspect there is a lot less of it these days. It’s risky to depend on it as well given the rapidly shifting state of US Federal funding.&lt;/p&gt;  &lt;p&gt;And then there is Artificial Intelligence to think about. That’s sort of the elephant in the living room these days. If funding agencies (government, non-profit, industry) decide that coding is dead because of AI what happens to funding for the tools educators are using today? &lt;/p&gt;  &lt;p&gt;I don’t believe that coding is dead but I know that some people have decided that&amp;#160; it either is or soon will be. Computer science education is going through a change caused by the winds of AI. Industry seems to think that they don’t need inexperienced software developers. Development of developers has to start somewhere though. One can’t go from zero to experiences expert without starting somewhere. &lt;/p&gt;  &lt;p&gt;I believe we need good teaching software. I hope we can keep seeing good things supported and developed in the future. We live in interesting times.&lt;/p&gt;  &lt;p&gt;Note that Mike Zamansky wrote a riff on this post. Recommended at &lt;a href=&quot;https://cestlaz.zamansky.net/posts/csed-tools/&quot;&gt;Funding for CS Educational tools - C’est la Z&lt;/a&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://blog.acthompson.net/feeds/1399816790426069154/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/18677687/1399816790426069154' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/1399816790426069154'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/1399816790426069154'/><link rel='alternate' type='text/html' href='https://blog.acthompson.net/2026/01/funding-for-cs-educational-tools.html' title='Funding for CS Educational Tools'/><author><name>Alfred C Thompson II</name><uri>http://www.blogger.com/profile/06011086242006020298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18677687.post-25506826448095298</id><published>2026-01-09T10:55:45.944-05:00</published><updated>2026-01-09T20:48:07.488-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ai"/><category scheme="http://www.blogger.com/atom/ns#" term="APCS"/><category scheme="http://www.blogger.com/atom/ns#" term="artificial intelligence"/><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science Education"/><category scheme="http://www.blogger.com/atom/ns#" term="computing"/><category scheme="http://www.blogger.com/atom/ns#" term="math"/><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><title type='text'>Binary Math–Subtracting by Adding</title><content type='html'>&lt;p&gt;Some of my readers who have been teaching Advanced Placement Computer Science (APCS) will remember the BigInt case study. It was a case study involving mathematics using large (very large) integers. As released by the College Board it supported adding, subtracting, and multiplying large integers. You will notice that division was not included. In fact, asking students to implement division was part of the exam. &lt;/p&gt;  &lt;p&gt;BigInt introduced the idea that multiplication was actually multiple addition. By extension, students were to figure out that division is multiple subtraction. &lt;/p&gt;  &lt;p&gt;Computer science really requires understanding how mathematics works at a deep level. It becomes obvious (one would hope) when trying to understand how Binary, Octal, and Hexadecimal work. We don’t often spend much if any time trying to understand subtraction though.&lt;/p&gt;  &lt;p&gt;Recently, on BlueSky I can across a message by &lt;a href=&quot;https://www.linkedin.com/in/virnuls/overlay/about-this-profile/&quot;&gt;Andrew Virnuls&lt;/a&gt; linking to a blog post titled &lt;a href=&quot;https://www.advanced-ict.info/mathematics/negative.html&quot;&gt;Two&#39;s Complement and Negative Binary Numbers&lt;/a&gt; that explains subtracting by adding negative numbers. &lt;/p&gt;  &lt;p&gt;Let me draw the two previous notes in this post together with some history of mine. Back in my university days I worked on a course connecting some test hardware to a computer. The computer was a Digital Equipment PDP-8. Now the 8 was an interesting machine. It didn’t have a hard drive and it was programmed in assembly language entered in Binary. Where as most computers we use today use hexadecimal representation (base 16) the PDP-8 used Octal (base 8). The word size was 12 bits. Not 64, 32, or even 16 – 12.&lt;/p&gt;  &lt;p&gt;This word size places some limits and one of those limits was the number of machine language/ Assembly language instructions. There was no multiply, divide or even subtraction instruction. We had to write code to do those things similar to how code was written in BigInt for those operations. We also had to write code to do subtraction. There was an instruction to create the two’s compliment of a number though. That was handy. So we wrote code to find and use the two’s compliment of a number in order to do subtraction.&lt;/p&gt;  &lt;p&gt;We used the subtraction routine to implement division. Though to be honest, we tried to avoid having to do multiplication or division in our project to keep performance reasonable.&lt;/p&gt;  &lt;p&gt;I think we’re all glad that today’s computers have a lot more layers of abstraction than the PDP-8 had! Of course, and a lot of students do not realize this, most powerful assembly language instructions are actually the result of what is called &lt;a href=&quot;https://en.wikipedia.org/wiki/Microcode&quot;&gt;microcode&lt;/a&gt; that works transparently behind the scenes. &lt;/p&gt;  &lt;p&gt;We keep moving up the path of abstraction. Hal Berenson addressed this recently in a post called &lt;a href=&quot;https://hal2020.com/2026/01/01/98-of-developers-cant-program-a-computer/&quot;&gt;98% of Developers can’t program a computer&lt;/a&gt; which is actually a bit of a success story including how artificial intelligence is helping with higher levels of abstraction.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://blog.acthompson.net/feeds/25506826448095298/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/18677687/25506826448095298' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/25506826448095298'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/25506826448095298'/><link rel='alternate' type='text/html' href='https://blog.acthompson.net/2026/01/binary-mathsubtracting-by-adding.html' title='Binary Math–Subtracting by Adding'/><author><name>Alfred C Thompson II</name><uri>http://www.blogger.com/profile/06011086242006020298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18677687.post-5980544500145802790</id><published>2025-12-27T15:38:10.430-05:00</published><updated>2025-12-27T15:38:10.430-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ai"/><category scheme="http://www.blogger.com/atom/ns#" term="artificial intelligence"/><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science Education"/><category scheme="http://www.blogger.com/atom/ns#" term="computing"/><category scheme="http://www.blogger.com/atom/ns#" term="copilot"/><category scheme="http://www.blogger.com/atom/ns#" term="debugging"/><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio"/><title type='text'>AI Written Code and Making Assumptions</title><content type='html'>&lt;p&gt;I’ve been writing some code for my own amusement the last few days. I have happily using Microsoft CoPilot to help me out. One really has to be careful with prompts though. CoPilot loves to make assumptions about what the developer desires. Often, it assumes correctly. Often enough, it assumes incorrectly.&lt;/p&gt;  &lt;p&gt;I spent a good bit of time trying to figure how where it was doing some things I didn’t want done at all and other places where it got my intentions backwards. For example, we both had different ideas about what a variable called &lt;font face=&quot;Courier New&quot;&gt;_defaultColor&lt;/font&gt; should refer to. That took me a bit.&lt;/p&gt;  &lt;p&gt;I could have tried to ask CoPilot to fix the problem for me but if I had a better idea of how to express what I wanted it would probably have gotten things right, for my definition of right, the first time. So I fixed it myself.&lt;/p&gt;  &lt;p&gt;I also made some assumptions about what certain methods were doing. I mostly assumed correctly but mostly is not really good enough when dealing with code. I really should have spent more time reading the code and making sure I understood it before trying to modify it. Yes, I said it before &lt;a href=&quot;https://blog.acthompson.net/2025/11/teaching-reading-codemore-important.html&quot;&gt;knowing how to read code is more important than ever&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Reading code on a screen can be painful though. One tends to get a sort of tunnel vision looking at little bits of code at a time. Many years ago I worked with a developer who had a terminal that was originally developed to typesetting at newspapers. It was tall and could hold a lot of lines of code. It was great for reading code. I don’t have anything like that. For me, the answer is printing listings out on paper. Maybe its just me but that is what has worked well for me for over 50 years of writing code. &lt;/p&gt;  &lt;p&gt;I have more modifications I want to make to my program. I’ll spend some serious time reviewing the generated code before I try to make those modifications.&lt;/p&gt;  &lt;p&gt;Related read: &amp;quot;Source code is the literature of computer scientists.&amp;quot; &lt;a href=&quot;https://www.cs.uni.edu/~wallingf/blog/archives/monthly/2025-12.html#e2025-12-26T18_28_37.htm&quot;&gt;https://www.cs.uni.edu/~wallingf/blog/archives/monthly/2025-12.html#e2025-12-26T18_28_37.htm&lt;/a&gt; A post by Eugene Wallingford &lt;/p&gt;  &lt;p&gt;One other note, CoPilot added a lot of helpful error handling code to what I asked. That’s awesome in a lot of ways. I think that spotting a lot of error handling code may be something that tips off an educator that a student used artificial intelligence to write their code. Keep a look out and be sure to ask the student to explain it all.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://blog.acthompson.net/feeds/5980544500145802790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/18677687/5980544500145802790' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/5980544500145802790'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/5980544500145802790'/><link rel='alternate' type='text/html' href='https://blog.acthompson.net/2025/12/ai-written-code-and-making-assumptions.html' title='AI Written Code and Making Assumptions'/><author><name>Alfred C Thompson II</name><uri>http://www.blogger.com/profile/06011086242006020298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18677687.post-6152128741420177521</id><published>2025-12-11T10:52:23.623-05:00</published><updated>2025-12-11T10:52:23.623-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science Education"/><title type='text'>Computer Science Education Week Greeting Cards</title><content type='html'>&lt;p&gt;Seems like several years now I have joked or perhaps half joked that there are no Computer Science Education Week greeting cards. Have any of my readers seen any? It turns out that someone on &lt;a href=&quot;https://www.etsy.com/listing/1832244331/computer-science-education-week?msockid=009dcd0ff53e6275280ed8f5f4c36339&quot;&gt;Etsy offers some&lt;/a&gt;. I wasn’t impressed but at least someone else was thinking about it. Having students create cards might be a fun project. &lt;/p&gt;  &lt;p&gt;What would they look like? What sort of message might they have? The most obvious might be some sort of thankyou to CS educators. That’s what the Etsy ones look like. It’s not a bad idea really.&lt;/p&gt;  &lt;p&gt;Perhaps some sort of message encouraging students to try An Hour of Code (or An Hour of AI) might be a good idea.&lt;/p&gt;  &lt;p&gt;Perhaps something related to Grace Hopper as the week her birthday falls in is the week selected for CS Education Week.&lt;/p&gt;  &lt;p&gt; I have to give this some more though. I am looking for suggestions. I will have to remember to bring this idea up earlier next year.&lt;/p&gt;  &lt;p&gt;&lt;img src=&quot;https://static.wixstatic.com/media/cf2fc2_4151e7375e9845aeb109d9ea19b8d7e6~mv2.png/v1/fill/w_945,h_495,al_c,q_90,usm_0.66_1.00_0.01,enc_avif,quality_auto/cf2fc2_4151e7375e9845aeb109d9ea19b8d7e6~mv2.png&quot; width=&quot;539&quot; height=&quot;283&quot; /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://blog.acthompson.net/feeds/6152128741420177521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/18677687/6152128741420177521' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/6152128741420177521'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/6152128741420177521'/><link rel='alternate' type='text/html' href='https://blog.acthompson.net/2025/12/computer-science-education-week.html' title='Computer Science Education Week Greeting Cards'/><author><name>Alfred C Thompson II</name><uri>http://www.blogger.com/profile/06011086242006020298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18677687.post-3185171915696530235</id><published>2025-12-08T22:25:01.514-05:00</published><updated>2025-12-08T22:25:01.514-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science Education"/><category scheme="http://www.blogger.com/atom/ns#" term="debugging"/><category scheme="http://www.blogger.com/atom/ns#" term="Education"/><category scheme="http://www.blogger.com/atom/ns#" term="Professional Development"/><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><category scheme="http://www.blogger.com/atom/ns#" term="Teaching"/><title type='text'>How Much Debugging Knowledge Do CS Teachers Need</title><content type='html'>&lt;p&gt;&lt;a href=&quot;https://computinged.wordpress.com/&quot;&gt;Mark Guzdial&#39;s blog&lt;/a&gt; is number one on my “must read” blog list. If you are a computer science educator it should be on your list as well. Mark had another particularly interesting post recently. &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://computinged.wordpress.com/2025/12/08/dr-tamara-nelson-fromm-defends-her-dissertation-what-debugging-looks-like-in-alternative-endpoints/&quot;&gt;Dr. Tamara Nelson-Fromm defends her dissertation: What Debugging Looks like in Alternative Endpoints | Computing Ed Research - Guzdial&#39;s Take&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In it, Mark talks about some of the work by his student, Tamara Nelson-Fromm. interesting stuff and I hope to read her papers when they come out next year. One question from Mark’s post really hit me:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;“[W]hat does a K-12 teacher need to know about debugging?”&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;A partial answer given is “maybe it’s enough to just have checklists.” of things to check. Now “maybe” is a big word. I wonder how far it goes? That is to say, how often is a checklist enough? What happens when it isn’t enough? &lt;/p&gt;  &lt;p&gt;I’m reminded of Kernighan&#39;s Law:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Everyone knows that debugging is twice as hard as writing a program in the first place. So if you’re as clever as you can be when you write it, how will you ever debug it?&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Students write code that is as clever as they know how. If a teacher is more experienced and more knowledgeable than their students they maybe able to handle any problems the students have. The word “maybe” comes to play again. Over the years I have had a number of teachers approach me with a student program they could not debug. I’ve had to get help myself from time to time. Debugging is hard. &lt;/p&gt;  &lt;p&gt;[As an aside, I love debugging code. It may be more fun for me than writing original code. I may also be weird.]&lt;/p&gt;  &lt;p&gt;Experience helps of course. I have debugged student code without looking at the code. Lots of teachers have done the same. We do see a lot of students making the same errors year after year. Students are good at coming up with unique bugs though. They’re clever that way. (See Kernighan&#39;s Law) That’s where checklists are likely to come up short.&lt;/p&gt;  &lt;p&gt;Why is this a problem? After all, students do, generally, fix the problem. Sometimes on their own and sometimes with help. For different definitions of “fix the problem” of course. There are always workarounds. That is especially true of the type of projects assigned to beginners.&lt;/p&gt;  &lt;p&gt;My concerns start frustration levels. The cognitive load of learning to program is high already. Spending a lot of time on a bug can be very frustrating and that can be a turnoff for students. A demotivator. Worse, if the teacher can’t solve the problem what chance does the student have? Maybe programming is too hard!&lt;/p&gt;  &lt;p&gt;Circling back to the teacher, if they don’t have a good plan for debugging than they are not likely to be able to teach students how to debug. Sure they can share checklists and that’s not a bad thing. Like most things, students will learn more by watching a teacher model debugging than from reading about it.&lt;/p&gt;  &lt;p&gt;Now when we are teaching, most of us try to avoid making mistakes or creating code with bugs. Generally, we practice demos multiple times to make sure we can demo the code error free. Yay us, looking like we are amazing. The occasional error, planned or otherwise, is a teaching opportunity that should be welcomed however!&lt;/p&gt;  &lt;p&gt;Circling back to the question asked earlier, how much should a k-12 CS teacher know about debugging? It’s hard to come up with a definitive answer. Probably more than is covered in most professional development though. Arguably, it should start with technical knowledge a good bit beyond staying a chapter ahead of the students. So more than a lot of teachers who have been voluntold to teach computer science have. &lt;/p&gt;  &lt;p&gt;They should also have some solid experience reading code. Now a few years of teaching will give you some good experience reading code. It will give one a lot of experience seeing errors as well. That’s not much help for a beginner teacher though. &lt;/p&gt;  &lt;p&gt;I’m not sure what the answer is and finding time in the already far to limited time for training that new teachers have now is a struggle as well. I am uncomfortable with the idea that “it’s enough to just have checklists.” though.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://blog.acthompson.net/feeds/3185171915696530235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/18677687/3185171915696530235' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/3185171915696530235'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/3185171915696530235'/><link rel='alternate' type='text/html' href='https://blog.acthompson.net/2025/12/how-much-debugging-knowledge-do-cs.html' title='How Much Debugging Knowledge Do CS Teachers Need'/><author><name>Alfred C Thompson II</name><uri>http://www.blogger.com/profile/06011086242006020298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18677687.post-5604305642889472290</id><published>2025-12-03T18:08:50.848-05:00</published><updated>2025-12-03T18:08:50.848-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ai"/><category scheme="http://www.blogger.com/atom/ns#" term="artificial intelligence"/><category scheme="http://www.blogger.com/atom/ns#" term="CS4All"/><category scheme="http://www.blogger.com/atom/ns#" term="Hour of AI"/><category scheme="http://www.blogger.com/atom/ns#" term="hour of code"/><title type='text'>Are We Really Teaching Artificial Intelligence</title><content type='html'>&lt;p&gt;According to &lt;a href=&quot;https://code.org/en-US/hour-of-code&quot;&gt;Code.ORG&lt;/a&gt; &lt;/p&gt;  &lt;blockquote&gt;   &lt;h4&gt;The Hour of Code is now the Hour of AI&lt;/h4&gt;    &lt;p&gt;The Hour of AI makes teaching AI literacy easy, engaging, and fun. Empower your students to become the next generation of innovators with AI.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Of course the web site has a lot of activities that are still labeled “Hour of Code” but it raises the question: What does it mean to teach artificial intelligence?&lt;/p&gt;  &lt;p&gt;In a conversation, a very smart friend talked about how there was a time when we taught Office applications (Word processing, spreadsheets, and the like) and called those classes computer science classes. That’s not real computer science and the CS education community has fought that characterization for years. With some success!&lt;/p&gt;  &lt;p&gt;My friend made the comment that much of what is called teaching AI today is the AI equivalent of teaching the Office application of AI and not the science of AI. For example, is teaching AI teaching how to use an existing AI tool and having students train it to recognize some type of object. Is that the same as teaching how the AI works or what sorts of algorithms are behind the training? Of course not. &lt;/p&gt;  &lt;p&gt;Likewise, teaching students how to write good prompts to a LLM is not the same as teaching how a LLM works. In fact, I would argue, its not any different from teaching students to write good instructions to another person.&lt;/p&gt;  &lt;p&gt;Now I am not saying that learning how to write a prompt or train a machine learning tool is not valuable. Clearly it is. Arguably it is even necessary. But is that really teaching Artificial Intelligence in the same way that a course like AP CS is teaching computer science? Or is it more like teaching applications without teaching how it works?&lt;/p&gt;  &lt;p&gt;I have heard the argument that students are not ready to learn how AI works or that the algorithms are too complicated. I would agree that students may not be ready to create an AI at the level of ChatGPT but that doesn’t mean they cannot handle the concepts behind that sort of software. &lt;/p&gt;  &lt;p&gt;The truth is that a lot of what AI, especially machine learning and Large Language Models are doing is not really that new. What is new is that we have lots more data for AI to work with and we have processing speed that is a lot faster than what we used to have. Machine learning is heuristics on steroids. LLMs are data analysis with lots more data and faster CPUs. &lt;/p&gt;  &lt;p&gt;We had software learning by asking questions and trying different options 50 years ago. Now we have the software asking itself the questions and finding new paths based on data. We had rule based software for decades but now we have better algorithms to evaluate data against rules. We’ve been studying text looking for hidden meanings throughout history. Now we have more text for algorithms to analyze and the ability to analyze in more ways in less time. We can start with simple data sets and basic concepts that teach the roots of AI. Students can deal with it. They do that sort of thing with human intelligence all the time.&lt;/p&gt;  &lt;p&gt;If we are serious about preparing students for the future of AI we really need to get serious about teaching some depth of concepts. Let’s not stick with the Office applications equivalent and lets move on to the real science.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://blog.acthompson.net/feeds/5604305642889472290/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/18677687/5604305642889472290' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/5604305642889472290'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/5604305642889472290'/><link rel='alternate' type='text/html' href='https://blog.acthompson.net/2025/12/are-we-really-teaching-artificial.html' title='Are We Really Teaching Artificial Intelligence'/><author><name>Alfred C Thompson II</name><uri>http://www.blogger.com/profile/06011086242006020298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18677687.post-7712093647836494252</id><published>2025-11-29T16:17:54.957-05:00</published><updated>2025-11-29T16:17:54.957-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ai"/><category scheme="http://www.blogger.com/atom/ns#" term="artificial intelligence"/><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science Education"/><category scheme="http://www.blogger.com/atom/ns#" term="debugging"/><category scheme="http://www.blogger.com/atom/ns#" term="Education"/><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><title type='text'>Teaching Reading Code–More Important Than Ever</title><content type='html'>&lt;p&gt;Thanks to Facebook memories and a link that was almost a dead link I reread a post on my old blog – &lt;a href=&quot;https://learn.microsoft.com/en-us/archive/blogs/alfredth/how-to-read-code&quot;&gt;How To Read Code&lt;/a&gt;. It got me thinking about Artificial intelligence writing code. What? Let me explain.&lt;/p&gt;  &lt;p&gt;If students are going to use AI to write code they are going to have to know how to read and understand it. There are several reasons for this. One is that AI almost never write 100% of the code necessary for a project. Without being able to read and understand the generated code students will be unlikely to be able to take the project to the finish. &lt;/p&gt;  &lt;p&gt;Reading code for understanding can also be helpful to learning more about computer science. Not just coding but computer science. Code is the language of CS but there is a lot more to understanding computer science than just writing code. &lt;/p&gt;  &lt;p&gt;AI systems have been trained on a wide variety of code samples from a wide variety of developers with a wide variety of coding styles. That means that students reading AI generated code, potentially, have exposure to more styles and techniques than their instructors are likely to show them.&lt;/p&gt;  &lt;p&gt;Having students read explain the code they read can be a powerful tool for their learning and for teachers to use for evaluation. Keeping students from asking the AI to write the explanation is probably a good idea though. &lt;/p&gt;  &lt;p&gt;All of this makes me think about code reviews (Archived blog post on that - &lt;a href=&quot;https://learn.microsoft.com/en-us/archive/blogs/alfredth/the-art-of-the-code-review&quot;&gt;The Art of the Code Review&lt;/a&gt;)&amp;#160; Organizing code reviews may also be a good teaching tool. Reviewing student code, AI generated code, or perhaps publicly available code examples on the internet. If AI can train on other people’s code why not students?&lt;/p&gt;  &lt;p&gt;I am wondering what having an AI explain student code would look like. Would it help students understand their own code better? It might. I have seen a lot of students tossing different code snippets into a project hoping it would work but not really understanding what the code was doing. Would it also help them understand the process of reading code? Interesting idea I think.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://blog.acthompson.net/feeds/7712093647836494252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/18677687/7712093647836494252' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/7712093647836494252'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/7712093647836494252'/><link rel='alternate' type='text/html' href='https://blog.acthompson.net/2025/11/teaching-reading-codemore-important.html' title='Teaching Reading Code–More Important Than Ever'/><author><name>Alfred C Thompson II</name><uri>http://www.blogger.com/profile/06011086242006020298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18677687.post-9191683579320743319</id><published>2025-11-26T19:51:13.655-05:00</published><updated>2025-11-26T21:23:00.654-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ai"/><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science Education"/><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><category scheme="http://www.blogger.com/atom/ns#" term="projects"/><category scheme="http://www.blogger.com/atom/ns#" term="Teaching"/><title type='text'>Monty Hall Problem and the Problem of Artificial Intelligence</title><content type='html'>&lt;p&gt;I’m always looking for interesting projects. The other day I ran into the story of the &lt;a href=&quot;https://en.wikipedia.org/wiki/Monty_Hall_problem&quot;&gt;Monty Hall Problem&lt;/a&gt;. The brief version of this logic/probability problem is based on a famous game show. In the hypothetical, a player is trying to win a car. Behind two doors are goats with a car behind the third. The player picks one of the doors. Before opening the door the show host opens a door, a different door, and shows that there is a goat behind it.&lt;/p&gt;  &lt;p&gt;The player is then given a choice – stay with their first guess or switch to the different door. What’s the best option? The answer from &lt;a href=&quot;https://en.wikipedia.org/wiki/Marilyn_vos_Savant&quot;&gt;Marilyn vos Savant&lt;/a&gt; who has the highest recorded IQ was that the player should change their guess. &lt;/p&gt;  &lt;p&gt;This answer was highly controversial with many experts in probability and math saying she was wrong. Computer simulations showed that she was right though. There is an explanation for this in the Wikipedia article linked to at the top of this post.&lt;/p&gt;  &lt;p&gt;If you know me at all, you can probably guess that I had to write a simulation myself. Trust but verify! I think it makes a good project to assign students as well.&lt;/p&gt;  &lt;p&gt;&lt;img src=&quot;http://www.acthompson.net/images/blog/MontyHall.png&quot; /&gt;&lt;/p&gt;  &lt;p&gt;There is a little fly in the ointment for me though. I crated a project with the name “Monty Hall” and with almost no other hint than that and Copilot in Visual Studio started writing code for the simulation!&amp;#160; Well, that was a surprise.&amp;#160; I have mixed feelings about the help. It made writing the simulation easier for me but it kind of took some of the fun away from it as well.&lt;/p&gt;  &lt;p&gt;Copilot’s code assumed form objects that I had not created as well. It didn’t create those objects automatically. Fortunately for me, I know enough about Visual Studio and Windows Forms that I could add them easily enough. I am also experienced enough that I added other code and objects to make the project more me. &lt;/p&gt;  &lt;p&gt;Also, as an experienced programmer, I was able to easily understand the generated code. The code generated is a little different than what I would have generated. Better? Worse? Really, just different. No big deal for an experienced programmer. &lt;/p&gt;  &lt;p&gt;What about students? As teachers, we probably don’t want students having AI write 90% of their code for them. Copilot can be turned off and doing so is a very good idea in classroom and school lab situations. &lt;/p&gt;  &lt;p&gt;Will students understand the generated code? In many cases, probably not. In this case, the generated code used the the &lt;a href=&quot;https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/operators/conditional-operator&quot;&gt;ternary conditional operator&lt;/a&gt;. This is a perfectly valid operator in C#, Java, C++, and several other languages. It’s not often taught to beginners however. It also used a break statement which a lot of software purists do not approve of and strongly teach against.&lt;/p&gt;  &lt;p&gt;So determining if a student used AI to write their code may, in some cases, be easy to determine. Not something you want to bet on though.&lt;/p&gt;  &lt;p&gt;Circling back to the assumptions that Copilot makes – like objects and variables not defined automatically – students may struggle with adding the missing pieces. I would expect that in some cases trying to add what AI leaves out may be more problematic than writing code on ones own. Frustration is a common problem for students already. Artificial Intelligence may, in some cases, exacerbate the problem.&lt;/p&gt;  &lt;p&gt;As I have noted in several blog posts, AI often creates solutions different from how I would code them. That has been a learning experience for me. I love seeing different solutions, different language features, or features used differently. &lt;/p&gt;  &lt;p&gt;It is potentially a learning experience for students as well. My concern is that without a solid knowledge base will students be able to really understand and learn from AI generated code? Some will. Many will not.&lt;/p&gt;  &lt;p&gt;We’re all trying to figure out what artificial intelligence means for software development and especially for teaching software development. It’s going to be a wild ride for a while.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://blog.acthompson.net/feeds/9191683579320743319/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/18677687/9191683579320743319' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/9191683579320743319'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/9191683579320743319'/><link rel='alternate' type='text/html' href='https://blog.acthompson.net/2025/11/monty-hall-problem-and-problem-of.html' title='Monty Hall Problem and the Problem of Artificial Intelligence'/><author><name>Alfred C Thompson II</name><uri>http://www.blogger.com/profile/06011086242006020298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18677687.post-6850178061541419870</id><published>2025-11-18T20:24:38.406-05:00</published><updated>2025-11-18T20:24:38.406-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science Education"/><category scheme="http://www.blogger.com/atom/ns#" term="Education"/><category scheme="http://www.blogger.com/atom/ns#" term="Professional Development"/><category scheme="http://www.blogger.com/atom/ns#" term="Teaching"/><title type='text'>CS Education Researchers On Regrets</title><content type='html'>&lt;p&gt;Pay Yongpradit recently posted (&lt;a href=&quot;https://www.linkedin.com/posts/patyongpradit_csforall-ailiteracy-activity-7395128880833142784-qG4n/&quot;&gt;LinkedIn post&lt;/a&gt;) about asking a number of computer science education leaders and researchers “about their biggest regret in their respective research areas.” The answers were interesting to say the least. I think they are important as well.&lt;/p&gt; &lt;strong&gt;Natalie Rusk&lt;/strong&gt; -&amp;#160; Research Scientist and OctoStudio Team Lead at MIT Media Lab   &lt;blockquote&gt;   &lt;p&gt;That education has focused on Scratch as a tool, where students “learn Scratch” rather than the ideas/mindsets it was designed to develop, and for only a short time (e.g., a 3-week module), rather than as an experience that can be revisited constantly and grow with students. &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;It does seem like Scratch is often used as a sort of quick introduction to programming. It&#39;s big with An Hour of Code and that is fine as far as it goes but Scratch, and similar block based programming tools, can be so much more. It could be incorporated into other subjects, used as way to help students think and explore. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Sue Sentance&lt;/strong&gt; - Research Professor, University of Cambridge&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;That the UK didn&#39;t fund scaled, organized teacher PD when they rolled out their national computing program in 2014. They had a bottom-up approach with their network of master teachers, but it wasn&#39;t enough to train teachers at the scale and quality they needed. Also that the UK hasn&#39;t emphasized the importance of CS Ed research when introducing CS in schools, especially for the youngest kids.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Professional Development for computer science educators and for educators who use computer science but don&#39;t always see themselves as CS educators is woefully inadequate. A week or three is not enough time. Worse still is that most PD is skill based rather than pedagogic. Most PD is &amp;quot;here is a neat tool and now we are going to teach you how to use it.&amp;quot; That&#39;s different from &amp;quot;here is how to teach using this tool.&amp;quot; It&#39;s even more different, and less than, &amp;quot;here is how we use this tool to teach this concept.&amp;quot; That later is what teachers really need. We are also not seeing enough research in how to teach computer science. Teachers are often reluctant to incorporate the learning from that research as well. A lot of what is sold as research based has had a short shelf live over the years. &lt;/p&gt;  &lt;p&gt;That doesn&#39;t encourage teachers as they have seen too many &amp;quot;research based&amp;quot; ideas last a year or two and then be replaced with something new. I think that sometimes these new ideas come from people with something to sell rather than from people who have done reproducible research. That&#39;s a problem and a reason that we need rigorous research with reproducible results. That requires funding.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Tim Bell&lt;/strong&gt; - Professor at University of Canterbury &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;That CS Unplugged has been viewed as a replacement for programming, not as an entree, to the extent that in some places, CS Unplugged has been used as an excuse for not investing in devices and comprehensive programming education.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I love CS Unplugged activities and when I use them I use them to lead into programming. I think that a lot of people use them as a filler for times when they don’t have equipment to use with students. That’s a shame. I think some of this is because there isn’t any real PD in how to use these tools as integrated into introducing programming concepts. PD and education research play into all of this.&lt;/p&gt;  &lt;p&gt;I think the messages from all three of these wonderful people tie together and show the need for research into pedagogy and education for teachers. Education into how to teach concepts! &lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://blog.acthompson.net/feeds/6850178061541419870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/18677687/6850178061541419870' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/6850178061541419870'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/6850178061541419870'/><link rel='alternate' type='text/html' href='https://blog.acthompson.net/2025/11/cs-education-researchers-on-regrets.html' title='CS Education Researchers On Regrets'/><author><name>Alfred C Thompson II</name><uri>http://www.blogger.com/profile/06011086242006020298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18677687.post-1868558834271940226</id><published>2025-11-03T19:52:40.159-05:00</published><updated>2025-11-03T19:52:40.159-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ai"/><category scheme="http://www.blogger.com/atom/ns#" term="artificial intelligence"/><category scheme="http://www.blogger.com/atom/ns#" term="Education"/><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><category scheme="http://www.blogger.com/atom/ns#" term="projects"/><title type='text'>Flag on the Play AI Let Me Down</title><content type='html'>&lt;p&gt;My latest coding involves an attempt to memorize nautical signal flags. I’ve played with this idea in the past but never had the time to really dig into it. I’ve had images of the flags for years. I’d even started created a class to hold the data.&lt;/p&gt; Image _flag;   &lt;br /&gt;String _mnemonic;   &lt;br /&gt;String _shortName;   &lt;br /&gt;String _morseCode;   &lt;p&gt;Yes, at some point I want to learn Morse Code as well. Always plan for additions. Semaphore is in my thinking as well.&lt;/p&gt;  &lt;p&gt;&lt;img src=&quot;http://www.acthompson.net/images/blog/FlagApp.png&quot; width=&quot;541&quot; height=&quot;231&quot; /&gt; Once again, Copilot, the AI in Visual Studio, has jumped in to help. Or to try to help. It was pretty helpful with some tedious coding. Specifically, with a couple of lines entered it figured out how I wanted to add images and what not to the individual flag objects I wanted to create. Hitting tab and return was pretty easy compared to typing whole lines in.&lt;/p&gt;  &lt;p&gt; A = new Flag(Flag_Host.Resource1.alpha, &amp;quot;Alpha&amp;quot;, &amp;quot;A&amp;quot;, &amp;quot;.-&amp;quot;); &lt;/p&gt;  &lt;p&gt;I had already added the image files to the project of course. Copilot was not always so helpful though. I created a couple of additional forms for the project and wanted to pass the array for flags objects to the new forms. Copilot struggled to code that properly and there were several false starts.&amp;#160; I used to do that sort of thing regularly but it’s been a few years. I guess my memory isn’t what it used to be. I finally figured it out. Honestly, this should have been easy for Copilot and for me.&lt;/p&gt;  &lt;p&gt;I have heard from a number of teachers about how Copilot is showing up in their classes. One teacher uses &lt;a href=&quot;https://monogame.net/&quot;&gt;MonoGame&lt;/a&gt; and tells me that Copilot is so unreliable with MonoGame that his students turn it off. My suspicion is that there is not enough good MonoGame code loose on the internet to properly train Copilot.&lt;/p&gt;  &lt;p&gt;That leads to a major concern I have about using AI for coding. It’s usability and reliability depends on the quality and quantity of the code used to train it. Programmers love to reinvent the wheel so there is a lot of code available for doing common things in coding. I would expect AI to handle most common data structures pretty well. Some things that are not as common may not have as much code to study. I wonder how well AI will handle new programming languages?&lt;/p&gt;  &lt;p&gt;I also wonder how well AI will handle new and unique problems. Will the AI be dependent on very detailed prompts from user developers? I think that is likely. I also think that some person is going to have to do a lot of verification of said code. We are still going to need people who can read and write code.&lt;/p&gt;  &lt;p&gt;In a related note, several times while writing this post, I have dipped into raw HTML because I didn’t like how the program I use, Windows Live Writer, was formatting the text. &lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://blog.acthompson.net/feeds/1868558834271940226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/18677687/1868558834271940226' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/1868558834271940226'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/1868558834271940226'/><link rel='alternate' type='text/html' href='https://blog.acthompson.net/2025/11/flag-on-play-ai-let-me-down.html' title='Flag on the Play AI Let Me Down'/><author><name>Alfred C Thompson II</name><uri>http://www.blogger.com/profile/06011086242006020298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18677687.post-8210670812696847670</id><published>2025-10-31T19:55:10.691-04:00</published><updated>2025-10-31T19:55:10.691-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ai"/><category scheme="http://www.blogger.com/atom/ns#" term="artificial intelligence"/><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science Education"/><category scheme="http://www.blogger.com/atom/ns#" term="IntelliCode"/><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><category scheme="http://www.blogger.com/atom/ns#" term="projects"/><category scheme="http://www.blogger.com/atom/ns#" term="Teaching"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio"/><title type='text'>Unexpected Help With Coding Projects</title><content type='html'>&lt;p&gt;Fair warning, this is a post in two parts. First a project idea and second musings on the tools I used to create it.&lt;/p&gt;  &lt;p&gt;I really do like to write code for fun. &lt;img style=&quot;float: right; display: inline;&quot; src=&quot;http://www.acthompson.net/images/blog/stats.png&quot; width=&quot;197&quot; align=&quot;right&quot; height=&quot;277&quot; /&gt;Nothing complicated (been there, done that, got the T-shirt - literally) but just little things to &amp;quot;scratch an itch&amp;quot; as they say.&lt;/p&gt;  &lt;p&gt;Lately as I played Wordle I was wondering which letters appeared most in each place in the five letter words in my word list. A couple of nights ago, I wrote some code to find out. I had my code output a comma delimited file so I could use Excel to look at the results. That’s what the image to the side shows.&lt;/p&gt;  &lt;p&gt;Now this sort of thing is highly dependent on the word list of course. But for my list, &lt;strong&gt;S&lt;/strong&gt; is the most common letter in the first and fifth location. Not surprising as &lt;strong&gt;S&lt;/strong&gt; is used to make plurals. Wordle doesn’t use plurals so I note that the second most common fifth letter is &lt;strong&gt;E&lt;/strong&gt; with &lt;strong&gt;Y&lt;/strong&gt; a close second. &lt;/p&gt;  &lt;p&gt;The letter &lt;strong&gt;A&lt;/strong&gt; is the most common second and third letter. The letter &lt;strong&gt;E&lt;/strong&gt; is the most common fourth letter. &lt;/p&gt;  &lt;p&gt;If I were ambitious, I could probably use this information to make a smarter Wordle solver. I’m not quite that ambitious though. I am toying with gathering some other statistics though.&lt;/p&gt;  &lt;p&gt;I develop using Visual Studio – the full blown version. That means that Copilot jumps in to help. That’s not something I anticipated when I started but I confess that I found it surprisingly helpful. I did specifically ask Copilot to write one specific method – generate a string array of two character combinations – but it jumped in on its own with a couple of small bits of code. I was surprised at how well it anticipated what I wanted.&lt;/p&gt;  &lt;p&gt;The implications for teaching programming are something to think about. On one hand it’s scary that AI tools can so easily write coding solutions to simple programming assignments. That turns our process of evaluating learning on its head a bit. At the same time, I am not ready to blindly trust AI generated code. I do not want students to blindly trust it either. So asking students to test generated code seems like a reasonable thing to assign. Yes, I suppose some students will ask AI to generate test cases but if we can’t trust AI to write the code in the first place we can’t trust the generated test cases.&lt;/p&gt;  &lt;p&gt;We could ask students to explain the test and related tests. Could be quite a recursive rat hole.&lt;/p&gt;  &lt;p&gt;We can also ask students to explain the generated code. We should probably ask them to do that either verbally or by writing manual in class so they can’t ask AI to do it for them. &lt;/p&gt;  &lt;p&gt;What I keep coming back to in my own thinking is a focus on abstraction and top down design. Can we ask students to break the problem down to component parts and have them prompt the AI to implement various methods and code pieces. A focus on design rather than writing code. We could have students submit the design document and the various prompts that they use. Add to that some serious examination of testing and verification.&lt;/p&gt;  &lt;p&gt;Students are going to have to work with artificial intelligence. They can’t let it do all the work for them because AI is not I enough yet. I don’t think it ever will be either.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://blog.acthompson.net/feeds/8210670812696847670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/18677687/8210670812696847670' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/8210670812696847670'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/8210670812696847670'/><link rel='alternate' type='text/html' href='https://blog.acthompson.net/2025/10/unexpected-help-with-coding-projects.html' title='Unexpected Help With Coding Projects'/><author><name>Alfred C Thompson II</name><uri>http://www.blogger.com/profile/06011086242006020298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18677687.post-7062559855795641935</id><published>2025-10-26T12:12:00.001-04:00</published><updated>2025-10-26T12:12:15.835-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ai"/><category scheme="http://www.blogger.com/atom/ns#" term="artificial intelligence"/><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science Education"/><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><category scheme="http://www.blogger.com/atom/ns#" term="projects"/><title type='text'>User Interfaces and Microwaves and Artificial Intelligence</title><content type='html'>&lt;p&gt;It seems like just about everything has a user interface these days. It is sometimes hard for me to question them. What sort of decisions go into their design? Microwaves are one such thing that I keep thinking about. My current microwave defaults to pushing a number button running that many minutes. That’s great when you want it to run in whole numbers of minutes. What about fractions of minutes?&lt;/p&gt;  &lt;p&gt;For fractions of minutes there is a button that is pressed first to let the microwave know you want to enter the number of seconds. So far so good. It can get complicated though if you don’t have the default whole minutes option. &lt;/p&gt;  &lt;p&gt;My previous microwave did not default to whole minutes. If you enter 100 is that one hundred seconds or 100% of a minute? i.e 60 seconds? How is the decision made on something like that? What is intuitive to the user? Actually, I don’t know what my current microwave would do if I asked to seconds and entered 100. I think it would do 100 seconds as 90 does run for a minute and a half. I should try it I suppose. &lt;/p&gt;  &lt;p&gt;It’s a computer related question of course because there is a little microprocessor in there somewhere and someone has had to program answers to these questions. I wonder how artificial intelligence would make UI decisions about things like this. It largely depends on the instructions or prompts given to the AI. People are going to have to have some input there. Right?&lt;/p&gt;  &lt;p&gt;Will AIs have access to research on things like that? Will they be able to design and run human factors research? Will they think research is necessary or even desirable or just assume they know what is best for us?&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://blog.acthompson.net/feeds/7062559855795641935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/18677687/7062559855795641935' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/7062559855795641935'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/7062559855795641935'/><link rel='alternate' type='text/html' href='https://blog.acthompson.net/2025/10/user-interfaces-and-microwaves-and.html' title='User Interfaces and Microwaves and Artificial Intelligence'/><author><name>Alfred C Thompson II</name><uri>http://www.blogger.com/profile/06011086242006020298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18677687.post-3287126231403078299</id><published>2025-09-04T18:08:00.002-04:00</published><updated>2025-09-04T20:42:33.167-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ai"/><category scheme="http://www.blogger.com/atom/ns#" term="appinventor"/><category scheme="http://www.blogger.com/atom/ns#" term="artificial intelligence"/><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science Education"/><category scheme="http://www.blogger.com/atom/ns#" term="Education"/><category scheme="http://www.blogger.com/atom/ns#" term="HTML"/><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><category scheme="http://www.blogger.com/atom/ns#" term="Teaching"/><title type='text'>An Interesting School Year in Computer Science Education</title><content type='html'>&lt;p&gt;Mike Zamansky is &lt;a href=&quot;https://cestlaz.zamansky.net/posts/school-start-fall-2025/&quot;&gt;Looking at the start of school for 2025 on his blog C’est la Z&lt;/a&gt; He’s thinking about phone bans and AI in schools. I have been thinking about both of those as well. I spent some time recently with the teacher who is now teaching in my old computer lab. He’s also a former student of mine. We had a great conversation.&lt;/p&gt;  &lt;p&gt;We talked a little about the cell phone ban in schools that was passed into law in New Hampshire among other places over the summer. It is not clear how it will be enforced and what sorts of consequences will be in place for violations.&amp;#160; For a while, I taught with &lt;a href=&quot;https://appinventor.mit.edu/&quot;&gt;AppInventor&lt;/a&gt; which meant that phones were an active and essential part of the class. I wonder what these bans will mean for all the many teachers and students using AppInventor and similar tools. &lt;/p&gt;  &lt;p&gt;Phones were a distraction but teaching in a computer lab with computers in front of every students means the Internet is still going to be a distraction. Classroom management is hard enough without computers and cell phones. &lt;/p&gt;  &lt;p&gt;Artificial Intelligence is going to be even more interesting this year. How much to allow? How to check for its use? What to teach about it? All interesting questions that teachers and schools will struggle with this year.&lt;/p&gt;  &lt;p&gt;My son, a school administrator, find AI tools very useful. So do many others both in and out of education. Clearly, students need to be taught about AI. That debate is, I hope, over, What and how to teach it are still largely to be determined. &lt;/p&gt;  &lt;p&gt;Students are going to use AI to write code for them. It would be foolish to deny that. They still need to understand the code that AI is writing for them. Talking to my teacher friend I used the example of HTML. I write these blog posts using Open Live Writer which builds the HTML that gets posted. It does a great job but I still find myself jumping into the HTML to do some fine toning. In this post, for example. I went into HTML to edit the text for the link to Mike’s blog. A small example but knowing what to do saved me a small amount of time.&lt;/p&gt;  &lt;p&gt;To be honest though, students using AI to write their code is not my most serious concern. Ethical concerns around AI use is my biggest concern. There are all sorts of issues around copyright for example. The use of books and art to train AIs to create without giving credit to original creators is an important discussion topic. Taking credit for AI output is another. I want students to think about these sorts of things. There is a lot more and more issues will be showing up.The old question is not so much what &lt;strong&gt;can&lt;/strong&gt; we do but what &lt;strong&gt;should&lt;/strong&gt; be do.&lt;/p&gt;  &lt;p&gt;So, yes, we want to teach students how to prompt AI. We want them to be able to evaluate to AI product as well. There is a real risk of AI having a negative effect on people actually thinking. Teachers need to find ways to encourage students to think about what AI is, how it can be used, and most importantly how it should be used. &lt;/p&gt;  &lt;p&gt;This year is going to be an important one in the future of AI in education. &lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://blog.acthompson.net/feeds/3287126231403078299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/18677687/3287126231403078299' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/3287126231403078299'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/3287126231403078299'/><link rel='alternate' type='text/html' href='https://blog.acthompson.net/2025/09/an-interesting-school-year-in-computer.html' title='An Interesting School Year in Computer Science Education'/><author><name>Alfred C Thompson II</name><uri>http://www.blogger.com/profile/06011086242006020298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18677687.post-749254620360024247</id><published>2025-08-24T10:05:00.001-04:00</published><updated>2025-08-24T10:06:11.801-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Cryptography"/><category scheme="http://www.blogger.com/atom/ns#" term="cybersecurity"/><category scheme="http://www.blogger.com/atom/ns#" term="projects"/><title type='text'>Tiny Book of Simple Cryptography</title><content type='html'>&lt;p&gt;For the last several years, I have been playing around with simple cryptography. I have made some of results of this available as a free PDF download as a book I call &lt;a href=&quot;http://www.acthompson.net/TinyCrypto.pdf&quot;&gt;Tiny Book of Simple Cryptography&lt;/a&gt;. (&lt;a href=&quot;http://www.acthompson.net/TinyCrypto.pdf&quot;&gt;TinyCrypto.pdf&lt;/a&gt;) I recently put some additional work into it and the latest version is available at the link above. &lt;/p&gt;  &lt;p&gt;There are currently a baker’s dozen cryptographic methods described in the book. (List at the bottom of this post) Each write up includes a section on:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Introduction&lt;/li&gt;    &lt;li&gt;Encrypting&lt;/li&gt;    &lt;li&gt;Decrypting&lt;/li&gt;    &lt;li&gt;Cryptography Issues&lt;/li&gt;    &lt;li&gt;Project Suggestions &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;If a PDF is not to your liking and you would like an actual book, I have created a book you can order through Amazon.com. Maybe for a classroom or school library? Or maybe because you find books easier to browse through. It’s &lt;a href=&quot;https://www.amazon.com/dp/B0FNLKWJPM?ref_=pe_93986420_774957520&quot;&gt;&lt;strong&gt;there&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt; There is also a Kindle version available &lt;a href=&quot;https://www.amazon.com/dp/B0FNKWSV96/&quot;&gt;&lt;strong&gt;here&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://www.amazon.com/dp/B0FNLKWJPM?ref_=pe_93986420_774957520&quot;&gt;&lt;img style=&quot;margin-right: auto; margin-left: auto; float: none; display: block;&quot; src=&quot;http://www.acthompson.net/images/blog/TinyCoverImage.JPG&quot; width=&quot;231&quot; height=&quot;347&quot; /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Methods covered&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Caesar Cipher&lt;/li&gt;    &lt;li&gt;Vigenère cipher&lt;/li&gt;    &lt;li&gt;Wheel Cipher&lt;/li&gt;    &lt;li&gt;One Time Pad&lt;/li&gt;    &lt;li&gt;Polybius Square&lt;/li&gt;    &lt;li&gt;PigPen Cipher&lt;/li&gt;    &lt;li&gt;Columnar Transposition Cipher&lt;/li&gt;    &lt;li&gt;Keyword Columnar Transposition Cipher&lt;/li&gt;    &lt;li&gt;Random Block Transposition Cipher&lt;/li&gt;    &lt;li&gt;Steganography&lt;/li&gt;    &lt;li&gt;Bacon’s Cipher&lt;/li&gt;    &lt;li&gt;Book Ciphers&lt;/li&gt;    &lt;li&gt;Playfair cipher&lt;/li&gt; &lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='https://blog.acthompson.net/feeds/749254620360024247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/18677687/749254620360024247' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/749254620360024247'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/749254620360024247'/><link rel='alternate' type='text/html' href='https://blog.acthompson.net/2025/08/tiny-book-of-simple-cryptography.html' title='Tiny Book of Simple Cryptography'/><author><name>Alfred C Thompson II</name><uri>http://www.blogger.com/profile/06011086242006020298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18677687.post-5424089394143171560</id><published>2025-08-15T19:09:00.002-04:00</published><updated>2025-08-15T20:14:42.150-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science Education"/><category scheme="http://www.blogger.com/atom/ns#" term="Education"/><title type='text'>Has Computer Science Education Become Too Vocational?</title><content type='html'>&lt;p&gt;That’s the question Mark Guzdial asked in a recent &lt;a href=&quot;https://www.facebook.com/groups/185523698519113/?multi_permalinks=1960185247719607&amp;amp;hoisted_section_header_type=recently_seen&amp;amp;__cft__[0]=AZWUKaKTWiobhSAzYLc7k9VDtKDcBwYEROilpkQeznzTzjgh09Al4fglLFEh8E67RQnp8FdCiQRTtvIHWhwXxbv8Z-3-SALzSI88_GLLEFMykC27mmNIRW0wI2DUsXHoLCKegSfnvI7RwkIKDp8zS8V5&amp;amp;__tn__=%2CO%2CP-R&quot;&gt;post on the CS Education Facebook group&lt;/a&gt;. He references an article (&lt;a href=&quot;https://www.newyorkfed.org/research/college-labor-market?fbclid=IwY2xjawMMlj9leHRuA2FlbQIxMQBicmlkETFPYVlSZEZLeEZFdms0ajhiAR4OVHaJXaCwVeKDExVXkzAd1P7OpguGV6ld3DHBw67_Mk9hPdgBPeVUs9Amvw_aem_-ASn7yBJvY-6lrWAy-S-pQ#--:explore:outcomes-by-major&quot;&gt;Labor Market Outcomes of College Graduates by Major&lt;/a&gt;) that shows the unemployment rate for computer science graduates is twice that of philosophy majors. Now there is a lot to unpack in those numbers. The employment market for CS majors is complicated to say the least.&lt;/p&gt;  &lt;p&gt;There is the perceived higher cost of American employees, H1B Visas, the hype over artificial intelligence, and more. It may be that the vocational focus in CS education is a big part of the problem though. It may be that CS education has become so narrow that the only job path for to many CS majors is software development..&lt;/p&gt;  &lt;p&gt;As my friend Neil Plotnick points out in a recent YouTube short “&lt;a href=&quot;https://youtu.be/5bNLO8yhigc?si=T_kYSZ8UD7Z3B3tg&quot;&gt;Computer work is not just programming or web design&lt;/a&gt;” but that is a lot of the focus in much of CS education. &lt;strong&gt;Especially in K-12&lt;/strong&gt;!&amp;#160; &lt;/p&gt;  &lt;p&gt;So what do CS educators need to work on teaching their majors? I think that Ed Lazowska had some good ideas in a recent interview. (&lt;a href=&quot;https://www.geekwire.com/2025/after-48-years-at-uw-ed-lazowska-reflects-on-computer-science-education-ai-and-whats-next/&quot;&gt;After 48 years at UW, Ed Lazowska reflects on computer science, education, AI, and what’s next&lt;/a&gt;) Key quote:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;“Design is not dead, working in teams is not dead, figuring out what problems need to be solved — and what the right approach is to tackling those problems — is not dead, and understanding how humans are going to use and be influenced by digital technology is not dead.”&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I will be attending my 50th university reunion in October. Back then there were few computer science majors. We did not have a CS major where I went to school. We did have a major in Systems. Yes, there was a lot of computer science as part of the program but there was a lot more. We learned about the people part of systems including how organizations work, how they use math and computer science, and what sort of impact computers were already having. Frankly, it was those other courses that helped me have as eclectic a career as I wound up having.&lt;/p&gt;  &lt;p&gt;I was prepared for a lot of jobs in a lot of different types of companies. Yes, I spent a lot of time developing software, especially in my early career, but it was understanding systems of which software was only a part that make me a good hire. It was knowing how to work as part of a team, to figure out what the problems were, and how to design solutions with the system in mind.&lt;/p&gt;  &lt;p&gt;Those are not necessarily easy things to teach and they may be easier to teach at the university level than in the K-12 level. That being said, if we are serious about the idea that CS education is not just vocational and that CS is not just programming we have to made an effort. &lt;/p&gt;  &lt;p&gt;We can start with more group projects. [I can hear some of your groaning] Not the easiest projects to create or grade but necessary. We can start by requiring design before coding begins. We can start by having students actually think, talk, and even write about the impacts of technology in society.&lt;/p&gt;  &lt;p&gt;We also have to support the liberal arts. We require a lot of subjects that are not CS in K-12 and that is great. We also need to help students see the value in those courses at the college and university level. Well rounded people have more job opportunities than narrow focused people. They are also better problem solvers, better designers, and more interesting to be around. We need good people not just good computer scientists. &lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://blog.acthompson.net/feeds/5424089394143171560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/18677687/5424089394143171560' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/5424089394143171560'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/18677687/posts/default/5424089394143171560'/><link rel='alternate' type='text/html' href='https://blog.acthompson.net/2025/08/has-computer-science-education-become.html' title='Has Computer Science Education Become Too Vocational?'/><author><name>Alfred C Thompson II</name><uri>http://www.blogger.com/profile/06011086242006020298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>