Thursday, November 21, 2024

Interested in Industry Visitors to Your CS Class?

I get interesting messages from all sorts of places. Recently, I received this message on LinkedIn. I love the idea of bringing industry professionals in to talk to students. If you’re interested, check out their web  page and use their contact form.

  • I’m a software engineer at Microsoft and a volunteer computer science teacher at Kansas State School for the Blind

  • Outside of work, I’m starting a free initiative to bring guest speakers from the tech industry into high school, community college, or university classrooms or clubs to share their experience and do a q&a.

  • It’s called Insight Crew:https://insightcrew.org/

Tuesday, November 19, 2024

Online Programming Environments are Poor Preparation

Got your attention didn’t I? More and more teachers are using online coding environments to teach computer science. I used one myself to teach Advanced Placement Computer Scie3nce Principles. I’m not sure I did the right thing. Let me explain.

Recently I attended a panel talk at the CSTA New England conference on what high school teachers could do to better prepare students for university level computer science. Yes, I know that not all of our students will take CS in university but a great many of them will. So what did university people suggest?

As with most things, it’s complicated. Apparently, university professors are finding that students do not know how to do some simple things like deal with file directories or install software or use installed IDEs. Phones and apps are responsible for a lot of this. Students do not know where there work is stored or how to move files to a download location.  Some universities have actually added class modules to help here. Yes, remedial computer usage! Do your students need that?

They are also struggling with the tools that university professors expect them to use. Like installed IDEs. In university, students are expected to use IDEs like Eclipse, Visual Studio, Visual Studio Code or others. They are also expected to know where the files are being placed. They do not learn any of that with online IDEs.

Now I understand that for teachers working with incompetent IT departments, of which there seem to be far to many, are limited to online IDEs. It seems like IT departments are often the biggest obstacle to teaching computer science. But teachers need to fight back more. Teachers who can use installed IDEs should do so.

Online IDEs really do to much. Or perhaps I should say that they hide to much from students.  I am not advocating going back to the punch card days, fun as that might be, but we need students to get closer to what universities and industry are doing if preparation for later CS is our goal. And it should be a goal.

Installed IDEs do a lot for students. That’s true. They also force students to do a lot for themselves. That’s good. It helps them later on.

Monday, November 18, 2024

Does AI Mean The End Of Teaching Programming

The tl;dr of it is no. At least not yet. As more and more people use artificial intelligent agents to help write code we’re learning that AI is not quite all there yet. Take this article from CIO magazine Devs gaining little (if anything) from AI coding assistants

It appears that there is still a lot of need for people who know how to code to do debugging and tuning or AI generated code.

My former students who are developers tell me that they are using AI quite a bit. And they say it helps them. No one has said they have been replaced by AI yet. Frankly, I don’t see that coming anytime soon.

A professor from a major university told me about a study where students were asked to write secure code. Half were told to do it on their own while half were told they could use AI. The students without AI wrote more secure and less buggy code.

More research needs to be done and we can argue over research methods as well. But I think that the jury is still out on AI. Will it get better? Probably. Will AI reduce the need for human programmers? I don’t think we have that answer yet. For the time being though we’re going to need actual people involved in the software development arena.

Sunday, November 17, 2024

Changes in Social Media Where to Find Me

It appears that a lot of people are leaving X (formerly Twitter) I confess to being one of them. Frankly, X isn’t the same for me. A lot of people seem to be moving to BlueSky and I have created an account there. You can find me at @alfredtwo.bsky.social I am trying to get the #CSed hashtag as a popular way to connect with other computer science educators. If you are on BlueSky, I hope you will join me.

I am on Threads and Instagram as well.

Saturday, November 02, 2024

CSTA New England Conference 2024–Exhibit Hall

Today I was able to attend the 2024 CSTA New England conference. There were 14 exhibits at the conference and I spent some time with several of them. One of the images below shows the list of conference sponsors. It was great to see so much support for CS education.

GradeThan was one of the firsts booths I visited. They have an online development environment that incorporates Visual Studio Code. I was impressed with the demo I saw. It's worth a look if you are looking for an online IDE. Especially if you are limited to Chrome books. It's not free BTW.

imagi was another interesting exhibit. Also not free but they have these cute imagi charms (pictured below) that I think a lot of younger students will like. They have curriculum of course.

Lego Education was there showing their curriculum and device options. I have to say that LEGO Education seems to be very interested in supporting CS education. And selling product as well of course but they show up!

Pickcode is another online IDE based product. PickCode was originally developed by a CS teacher.  There is a limited free version for individuals but for full teacher/class support there is a cost. Also web based BTW.

Sphero was there with two booths. They have some very cool robots. One or two I have thought about buying for my own use or for teaching my grandson.

KinderLabs was there showing of Kibo which is screen-free coding for PK through grade 5. Programming is done with actual physical blocks.

The Lifelong Kindergarten from MIT was also there with a display. They were highlighting octostudio Something for FREE! It is a coding app that runs on phones. It lets one

“Create interactive animations and games on your phone. Shake, jump, and tilt to interact with your projects. Share with family and friends.”


I didn't get a picture but Kira Learning was there showing their “AI-powered” teaching solutions.

Well, that’s a snapshot of what I saw. I hope it gives you some things to look into. And maybe an incentive to attend next year’s conference. Rhode Island next year.

Saturday, October 19, 2024

NCWIT Aspirations in Computing High School Award

The NCWIT Aspirations in Computing High School Award is an amazing program for young women THe students I have had who earned these awards have found it very useful. And yes, it looks great on a college application. Encourage your students to apply.

From the web site:

The NCWIT Aspirations in Computing (AiC) High School Award honors 9th - 12th grade women, genderqueer, and non-binary students for their computing-related achievements and interests, and encourages them to pursue their passions. Award recipients are selected based on their aptitude and aspirations in technology and computing, as demonstrated by their computing experience, computing-related activities, leadership experience, tenacity in the face of barriers to access, and future plans. Since 2007, more than 25,000 students have received an AiC Award.

The multi-tiered award structure includes Winner, Honorable Mention, and Rising Star designations at National and Regional Affiliate levels, serving all 50 states, the District of Columbia, Puerto Rico, the U.S. Virgin Islands, Guam, all U.S. overseas military bases, and Canada. Regional Affiliate Award programs are hosted in 79 locations nationwide by NCWIT Alliance member organizations—a powerful, national network of universities, companies, non-profits, and government organizations working to increase the influence and meaningful participation of girls and women from every community.

Wednesday, August 21, 2024

Questions Keeping Me Awake Tonight

It’s about 2:45 AM as I start this post. Why am I writing at this hour? Well, it’s because some things are keeping my mind from shutting down and maybe by writing them out I can get back to sleep. Basically there are a bunch of questions about teaching computer science that have no good answers. Certainly none that everyone can agree on.

Let’s start with “what should CS teachers know (in CS concepts)?” The answer really depends on a second question – what should students know about CS when they finish K-12?

The answers to that second question range from more than we could possibly teach in the time available to eh, not much. How one looks at that question depends on what is the goal of teaching CS in K-12?

I think most agree that we're not trying to make everyone a CS professional or even a CS major. Can we? What then in the goal?

We, as a community, have some projects going on to provide some guidance but I wonder if we’re going about it correctly. Now the CS Standards from CSTA, ISTE, and others are being revised again. We have the CS Framework that came out several years ago.  Attempts are being made to bring input in from wide swaths of the CS teacher community. I wonder if we’re ready for it.

Now, Alfred, the Framework came out in 2016, we’ve been doing this standards stuff for close to ten years. And discussing it for far longer. What do you mean are we ready for it? Just that. We don’t have answers to the important questions. Yes, the Framework and standards are an attempt to answer the question of what should K-12 students know and when. I’m just not convinced that they are the right answers.

They are popular answers. And they may be close to the right answers. Maybe the best we can do right now. I’m just not convinced that they are the end all and be all that many want them to be.

We’re just not talking enough.They want be 150 or even 200 people involved (in theory) but most of the conversations are happening in private meetings with reports being presented and put open to comments. That’s probably all that is practical but that doesn’t mean it is enough.

There are too many teachers still who don’t even know these documents and their writing processes even exist. There  are too many teachers who are not members of CSTA or who are but who don’t pay much attention because they are to busy being to hard at work trying the teach and have some work/life balance. We’re getting standards written by the activists – the people who know a lot and who often know more than the average CS teacher. Many of them have specific goals in mind before starting the process of writing standards. Oh, really we all have goals in mind before starting. That’s why we volunteer.

So we get highly motivated people. Great. We start with an end goal in mind. Maybe great. And who ever is in charge of selecting the prime movers selects people with their shared vision. What? Tell me  it isn’t so! Can’t do that. It’s human nature. It’s even done with the best intentions.

Yes, I know there are “public feedback periods, several in-person feedback sessions, virtual focus groups, and strategic interviews” going on. Not impressed. Public feedback is easily ignored and the rest involve hand selected individuals. How many of those selected were known or expected to be dissidents? Without strong push back and resistance weak ideas can prevail.

I don’t have good answers to any of this. If I did I would be writing them up and not laying awake in bed stressing over stuff like this. What I would like to see is a lot more conversation in a lot more places. I see some on Facebook but not nearly enough. Blogging is just about dead. Many of my favorite bloggers are retired and not blogging. Or blogging a lot less (like me). Comments just don’t happen like they used to. Maybe CSTA chapters could have discussion sessions although disseminating the various points widely is difficult, if even possible.

As I said earlier, maybe we’re doing the best we can. I just wonder if it is enough.

Sunday, July 21, 2024

Post CSTA 2024 Thoughts

The 2024 CSTA conference was the best one ever for me. It was wonderful to catchup with old friends and to talk to many people I had never met before. CSTA is about community for me so an in-person conference is the dream for me. The sessions were also good and I learned a lot. The Thursday keynote was outstanding and I hope it was recorded. It was that good.

Thursday I would have said that this year’s conference would be remembered as the first big Artificial Intelligence conference. For many of us, we will remember it as the conference we had trouble getting home from. CrowdStrike is now a “dirty word” for us. I am writing this from a hotel room in Las Vegas two days after the conference ended. Hopefully I will get home tomorrow.

I guess  we all have another story to tell about bad software and the need for testing.

But back to the conference. The venue was great. We had lots of sessions but getting from onto the next was easy. The exhibit hall was large and roomy. The exhibitors were friendly and seemed happy to be there with us.

Las Vegas had plusses and minuses. Hotel rates were pretty good for the most part. Food was expensive though and options without going in the heat were limited. Did I mention the heat? For a New Englander like myself who looks forward to winter 110 degrees is hot. I would have preferred an airport with more direct flights.

The conference committee  did  a  good job selecting session (if I do say so as a member of the committee) and there were many good options every day. As expected, AI was a focus of many of they. I wonder how many of them will be as valuable in two years. What I mean is that we still don't really understand the impact of the uses of AI. Not just in CS education but in the wide wide world.

There are still more questions about AI without good answers.

Friday, July 19, 2024

CSTA Day Four

Last day of the conference and I woke up to news of a global network outage that was causing delays in thousands of flights. Including my trip home. Oh well. I wonder if I will need this fan that was in the conference bag at the airport. I hear it is crowded.

I still jumped into the conference though.

My first session was AP Computer Science A: Using Data Files for Authentic Problem Solving. I've been using files in class for a while but not in Java or an AP course. This session was really APCS A teachers who haven't been using data files in class before. So not what I was looking for but I think it was probably super valuable for the target audience. The room was pretty full so I suspect that the addition to the exam requiring file usage is going to make some work for a lot of teachers.

Nest up was Visual Programming Graphics and GUI for Beginning Students. I was surprised by the light attendance. The talk was about an open source package called GUI4Sher. The system was designed based on Visual Basic but for Python. It was also designed to make things easier for students to create graphic, which can be hard in Visual Basic. I don’t think it is really Visual Basic like but it is interesting. I have downloaded it and I do intend to play with it some when I get home. If you are teaching Python it may be worth a look. But it is pretty simplistic.

Last up for the conference is, After the Classroom: Reflecting on the K-12 CS Experience. The reflections of a pair of students was interesting. I think we all appreciated the credit they gave to their teachers.

Honestly, with all the travel mess, I largely stayed to the end to find out where the next two conferences will be located.

2025 – Cleveland OH

2026 – Atlanta, GA

Thursday, July 18, 2024

CSTA Day Three

Before I start on my day three report, I want to suggest people look at Mike Zamansky’s Day Two report on his blog. We attended mostly different sessions and he takes really good notes.

My first session of the day - Keep Calm and AI On. I’m proctoring this session. There are a bunch of other good sessions at the same time. Heavy FOMO sigh. This one is by classroom teachers.Another packed session on AI. This one started with a discussion of ethical concerns. Privacy being high among them.Next up was about how teachers were using AI. Image generation being one. Canva has some AI functionality now. Evaluation writing was used with mixed results. A lot depends on how people think about evaluation writing. Advice from participants included the need to teach about AI to prepare people for the good and the bad that AI can do. So much of what I am hearing at the conference is the need to ethical training as important when talking about AI.

Change of pace with my next session being Get Hands-on with CS and Content: Support Integration with a Physical Computing Toolkit Integration and physical computing are two of my favorite topics. The Physical Computing toolkit is available here. There is a lot there too!The session slide deck is available here There were a number of references to The Big Book of Computing Pedagogy.which I highly recommend BTW. A particularly good took for integrating ideas is their Instructional Resource Library This can help you find resources to meet your goal and potential physical objects.

After lunch, Teaching (With) GIT  Surprise! Most of the related resources for this talk at on GitHub - bit.ly/twg-2024 As the idea of Markdown was being presented I was thinking I need a Markdown tutorial. And one was chard at Markdown Tutorial At this point I feel like I have some good resources to dig deeper into Git and GitHub.

I confess that I skipped a session. Maybe my brain was full. I was tired. I did spend some of that time working on my snapshot post about the exhibit hall which I will probably post later tonight.

I did not skip CS Education in the Age of AI though. with people like Mehran Sahami from Stanford and Maggie Johnson from Google I would not miss it. It lived up to my expectations. I hope it was recorded. I would love to listen to it again.

There was a lot to take in. A couple of takeaways for me. One is that AI has the potential to allow our students to do more. More complicated projects. More innovative projects. Also, there was a reminder that these AIs, including the ones that generate code,are not perfect. In fact, one study at Stanford showed that students using AI generated code with more security holes than students who didn't use AI. Worse still, the students who did  use AI were more confident that their code was good.

We’re going to need people who can read, test, and debug code so some time to come. It's much to soon to stop teaching coding.

I’ll sign off on this post with something I said a couple of years ago:

Teaching computer science is no more about creating more software developers than teaching English is about creating more novelists.

CSTA 2024 Exhibit Hall

The exhibit hall was impressive this year. I believe three are something like 80 exhibitors. Below is a snapshot of s few of them that caught my eye. The usual suspects are here of course. Google, Amazon, and Microsoft. You'd think Apple would be here if you'd never been to an educational technology conference. They are not here. I am surprised that Code.Org doesn't have a booth. Though of course you will see their team showing up in many sessions.

Items for physical computing are everywhere. I highlight a few here. One textbook company has a small booth. I wonder that that means. Thoughts?

I think I counted four universities promoting graduate programs for CS teachers. That gets a post of its own soon.

I'm not so impressed with the Microsoft booth. One expects more from one of the most valuable companies in the world. They have some good programs like MakeCode, Makecode Arcade (see the cool arcade machine they have to demo it?).

New is VS Code for Education which is a web based IDE and learning platform for Python and also web development. The TEALS program is sharing the booth as well.

  • BirdBrain is here again. I think they have been at the conference for ever. Their Finch and other robots show up everywhere.
  • Carnegie Mellon University is here taking about CMU CS Academy. One of the few university exhibits not promoting graduate courses for CS teachers.
  • The Hidden Genius Project is trying to get young Black men into computing. This booth doesn’t seem to be getting enough attention but I feel like it should not be ignored. We can’t ignore young Black men.
  • Koi’s Clan is one of two projects for very young students that I found interesting. I liked the little Kai Bot that is programmed with little graphic cards. Looks like fun and educational.
  • Robotical has Marty the Robot who can be programmed with a graphical (without words) language for very young programmers. Why wait for kids to learn to read? My grandson loved robots long before he was reading.
  • Lego Education had a large booth. A long time exhibitor they have some interesting stuff.

Wednesday, July 17, 2024

CSTA Day Two

Day two starts with sessions for ALL attendees. I started proctoring a session called Classroom To Career – CS Curriculum With a Purpose. This was a session presented by Oracle Academy.  Oracle presents these teaching resources and training for free. Always a popular price point for teachers. The curriculum is built for teachers and teachers can pick and choose which parts of it they want to use. It can lead to professional certifications. I can see this as a help for career/technical schools.

A word about proctoring. Proctors have two main jobs. Job one is to make sure that people scan their badge’s QR code on an iPad. This is to make sure CSTA can give them professional development credit for attending the session. Job two is to give speakers a five minute warning so the session doesn’t run late.

Getting people to check in is harder than you may think. Some rooms have more than one door and people come in through all of them. And the iPad is at only one of them.

Hallway track between sessions. One of the wonderful things about in-person conferences is the opportunity to have face to face conversations with people you interact with online all year. I can’t count the number of friends I have made through CSTA.

After the break, Guidance on Education in An Age of AI. Everyone is talking about it. No one really knows what it means but some people have looked into it and thought more about it than I have. So learn from the best available. Slides available at bit.ly/cstafuturecs

“When it comes to AI education, we do not have the luxury of burying our heads in the sand. CS teachers have the opportunity and responsibility to lead students in understanding the societal and ethical implications of AI:

the good and the bad,  the benefits and harms, the possibilities and realities.” Charity Freeman CSTA Board Chair

This could have been a workshop. I recommend getting the slide deck. There area lot of good links in it. Overall, I have a lot to think about.

After lunch, another session on AI for me, Empowering Students with AI Literacy: Integration Artificial Intelligence into Computing Education. This session is PACKED. This session was presented by the Raspberry Pi Foundation. One take away - It is important to teach about AI so that they can critically evaluate the tools they use. We also need to have diversity to protect us from bias based results. The website for Experience AI is at Experience AI (experience-ai.org). There is also a course for teachers to learn about teaching AI at  Raspberry Pi Foundation: Teach Teens Computing: Understanding AI for Educators 

OK, I am AIed out for now. So much to look at and think about later.

I decided to take a break  from sessions and take a serious trip through the exhibit hall. Lots of booth pictures to come but not until I can organize them. Among the booths were I spent some real time was with Robolink. Inside the cage to the left are a couple of small quadcopter drones. The drones can be programmed in either Blockly or Python.

I’ve looked at their booth several times over the years but never sat down to program a drone myself until today. It went far better than I expected. It really felt like an educational experience as I tried my program and iterated my code. Honestly, I’d like one myself. I can see classroom use though. They have classroom sets, curriculum, and professional development.

Next up, today’s keynote with Dr. Gholdy Muhammad “Cultivating Genius and Joy in Education through Culturally and Historically Responsive Pedagogies” A good talk. Very high energy which I appreciate at the end of the day. My big takeaway was the need for joy in school. There seems to be so little joy most of the time in schools. I may have to pick up her latest book Unearthing Joy: A Guide to Culturally and Historically Responsive Curriculum and Instruction

Tuesday, July 16, 2024

CSTA Day One

Day one for me was the chapter leadership summit. I got talked into the New Hampshire chapter treasurer role. The first thing I did was to connect with the other NH chapter leaders and catch up a bit. I also got to talk to some leaders from other chapters. A great opportunity to met new people and see what other chapters are doing. The Maine chapter has some nice polo shirts that I hope we can do in NH. I am not a t-shirt person.

One of the interesting talks during the leadership general session was about the Computer Science for English Learners (CSforEL) program. English learners face some obvious challenges. It’s greet that there is a program to help teachers deal with those obstacles. There are a number of sessions on the topic at the conference.  This is a federally funded project that is working with several states but is hoping to expand to more state..

Next up for me was a session on chapter financials. Boring but important.

After lunch, thank you Project Lead the Way (PLTW), a change of plans for me. I was asked to proctor a workshop because someone was not available who was signed up. Free workshop for Alfred!

The workshop was called “CS Teaching That “Makes Sense”: Instructional Routines for the Classroom” Better yet, a pedagogy session. I wish I could do justice to it in a blog post. I hope I can find resources to share. Sorry. For now, there is a website being developed at Sensemaking CS Nothing really there yet but it is coming. Update: Slides posted at https://bit.ly/MakesSenseCS

The opening keynote was by Conor Peterson from Meow Wolf. Now I am always skeptical of keynotes by industry people but this one was inspiring. Meow Wolf is a company that mixes art and technology to create immersive experiences. One of the key messages he left us with is that computing is a creative endeavor . We need to teach it that way. I totally agree. Computing can be about “Personal Agency, Joy, and Fulfillment.” I feel like an opening  keynote should inspire and energize – this one did. At least it did for me.

Welcome reception now. I guess I’ll see if I can get some food.

Oh, I started taking pictures in the exhibit hall today. I’ll have a post just about that in the near future. Something like 80 exhibitors. A far cry for the 10 we were expecting 11 years ago.

Sunday, July 14, 2024

CSTA At 20 Looking Back #CSTA2024

CTSA turns twenty and as I write this I am about ready to fly out to Las Vegas for the annual CSTA conference. I’m in the mood to look back a bit. After the conference I think I’ll try looking forward.

The creation of CSTA was a pretty exciting event. The community of CS teachers was pretty small but we knew there were a lot more of us around. And that we’d need still more. CSTA was a means of building a community of CS educators who would support each other and who would work to expand our numbers.

It seemed like we knew everyone in those early  days. That is to say that those of us active on social medio, largely the AP CS email list but a few blogs, knew each other.  CSTA started growing pretty quickly thought. Conferences went from under 100 people to over 300. And it kept on growing.

CSTA went through some growing pains along the way.Our founding executive director who had done so much for the organization left. Well, left CSTA but not advocating for CS education and supporting teachers. Our first attempt at a new executive director had some mixed results. ACM jumped in and helped get the organization in better financial shape. Our current executive director has taken fund raising and organization to a level that supports a huge conference and a lot of year round activities. We’re lucky to have him.

The growth of chapters has been, in my opinion, one of the truly important factors in the growth and effectiveness of the organization. In the beginning, CSTA was, in effect, a single national chapter. This was great for staging a national conference but we as an organization needed more. Local chapters provide local professional development through meetings and through local/regional conferences. The CSTA New England conference is larger than the national conferences were in the early day. That’s just one example.

Chapters have also been active in advocating for more CS education at the state and local level. National leaders can’t be everywhere and in many cases having a local person lobby or speak at hearings can be even more effective. Chapter leadership training has given many people the tools to be effective spokespeople.

As I look back, the growth of CSTA has exceeded my early expectations. But not my hopes. Today, CSTA is a major organization with great leadership, a professional staff, and a world wide membership. It’s an organization all of its members can be proud to belong to.

Friday, June 21, 2024

Advice To First Timers at #ISTE24 or #CSTA2024

Summer conference season is coming up. ISTE starts this weekend (without me) and CSTA (with me) is in July. Over the years I have been to scores of conferences and I have learned a few things. I thought I might share some of them.

Comfortable shoes. If you are a teacher this should be a no brainer. You'll be on your feet a lot.

Plan your day in advance but leave sessions early if they don't match your needs or expectations. I like to select a prime session for each time slot and have one or more backups.

Do the exhibit hall in stages. I like to make a fast pass and make note of exhibits I want to spend more time at. I then go back to them. At ISTE making it all the way through the exhibit hall at one go is usually too much. Don’t stress it. You have a couple of days.

Don't carry more than you actually need. (I'm bad at this.) Bags can get very heavy with swag and literature.

Take pictures! Take pictures of web addresses for future reference. Take pictures of cool gadgets as well. It may save you space and weight in your bag if you photograph enough information to look a company up on the web later.

Meet new people! It is tempting to hang with people you know and that’s great. But sit at tables with people you don’t know and talk to them. Talk to to people attending sessions you are attending. Sharing ideas and questions is learning.

If you get into a great conversation between sessions it may be worth skipping the next session if you are learning and making a new friend.

Make notes every day. I tend to take notes in rough form in my blogging app and neaten it up every night. Use a note taking method that works for you but take notes every day. Conferences like these (ISTE, SIGCSE, TCEA, FETC, CSTA) are like taking learning in from a fire hose. Notes will help you later.

What am I missing?

Oh, and I hope to see some of you at CSTA!

Wednesday, March 27, 2024

Pangrams Anyone?

Regular readers of this blog know that I have been doing the New York Times Spelling bee (Computer Science Teacher: Spelling Bee Solver Project). Actually, I do it with my wife who gets most of the words. Anyway, one of the special types of words in the puzzle is called a pangram. Now officially, a pangram is a sentence that includes all of the letters in the alphabet. Anyone who has taken a typing class is probably familiar with this famous pangram.

The quick brown fox jumps over the lazy dog

In the Spelling bee, a pangram is a single word that includes all of the letters in the puzzle for that day. This all suggested a couple of possible programming assignments.

The most obvious (to me) is a program that determines if a sentence is a pangram. The program would have to ignore things like spaces, punctuation, and other special characters.  A step up would be to determine if a sentence is a perfect pangram. A perfect pangram uses each letter only once. Also called a Heterogram

Another idea, which I actually coded myself, is to determine if a word is a pangram of a certain number of letters.That is to say, find words  that have a specific number of unique letters. I haven’t tried to find perfect word pangrams but I might do that next.

I had a program search a large data set of words looking for pangrams. Mostly I looked for seven letter ones as that is what the NY Times Spelling bee uses.There are a lot of them!

One could also determine if all the letters are in alphabetical order. There is probably a name for that as well. Anyone know?

Tuesday, February 27, 2024

Alphabet? What alphabet?

I used to start a talk on internationalization of code with the question “How many letters are in the alphabet?”  Once I had several people say “26” I would ask “Shouldn’t you ask ‘what alphabet’ first?” I would then discuss some different alphabets and how many more or fewer letters they had. Then briefly mention that not all alphabets look the same. That’s is why ASCII is not good enough.

Today I ran across the following graphic. I wish I’d had it back in the classroom.

Who knew there were so many diffe3rent scripts? I suspect that are many more not on this list of course. Let’s not forget that some them are read left to right and not right to left.

Are you discussing multiple scripts and alphabets with students? It can bring up some interesting questions. And widen ones experience. If you are lucky enough to have students who are familiar with these non-Roman script languages ask them to explain how sorting of words happens. I had Chinese exchange students who were happy to explain how Chinese words are sorted. Short answer is by the strokes that make up the words.

Sunday, February 18, 2024

AI Debuggers?

A meme was posted (by Doug Peterson I believe) asking why if the computer knows there is a semi colon missing that the computer doesn’t add it? It’s a good question and I think it gets asked pretty often. The answer is that the computer doesn’t always know where exactly the semi colon belongs. Or if there are other possible answers to the error.

Compiler parsers aren’t always helpful as we’d like. There are several parts to most compilers or interpreters. Parsing is the most visible of these parts. Typically, compiler developers seems to spend the most time and effort on the backend part that generates the actual executable code.  There has been amazing progress in backend code generators. It is unlikely that even the best assembly language programmer can do better than compilers except in rare cases.

The front end, the code parsing that shows syntax errors has not been as big a focus. That seems to be changing and I expect that the inclusion of artificial intelligence may help improve things.

I experimented a bit this morning using Visual Studio. I entered some erroneous code and looked at the results. The code I used was a missing semi colon and a loop with no executable code.

for (int i = 0; i < 10; i++)

I was given the expected “; expected” but I also received a message that “
Error    CS1525    Invalid expression term '}'  “

This is a case of one mistake creating two different errors. This can be pretty confusing.And is less than helpful. Visual Studio did give me a couple of options to deal with this error. Or two. Some of the options didn’t make the errors go away. The one that did was not to add a semi colon but rather to add braces. Of course, either adding a semi colon or adding curly braces leaves one with a a for loop that doesn’t do anything. A warning about that would be nice and I have seen that warning from other parsers.

I would think that a good AI that understands compiler errors would be a lot more helpful. Microsoft is talking a lot about adding artificial intelligence to more products. Will that include compiler/parsers? I think that is likely at some point.

So far the attention has been focused on using AI to generate code. People seem to think that will mean no need for human programmers. People also think that AI will generate perfect code. Or at least code without syntax errors. I think those are somewhat mistaken assumptions. We have lots of great tools for generating websites for example. There are still many cases where human editing of HTML files is needed to get all the desired results.

I expect that human coding for fine tuning of AI generated program code will be necessary for many years to come. As long as AI generated code is “taught” from Internet available code I expect syntax errors to still show up. Some of those errors may not even be caught by parsers. Different versions of compilers can have different rules about what code is acceptable. We will have to see how things progress.

Syntax debugging will be the easy part relatively speaking. Logic errors will be harder still. We live in interesting times.