June 30, 2026 8:43 PM

Teaching Algorithms in 2026

It seems I am fated to teach our undergraduate algorithms course every decade or so.

I taught it for the first two times in 2004-2005, when I'd been on the faculty for a little over a decade. I taught it again in 2014, to the largest section of students we've had in my department in the last twenty-five years. Now it is 2026, and I'm on tap to teach it again this fall.

Algorithms has always been one of my favorite subjects, both as a student and as a professor, but I don't get to teach it very often. Being department head means that I don't get to teach as many courses, and thus as many different courses, as I would if I had a three-course load each semester.

When I last taught the course, I wrote a blog post in which I thought out loud about my approach to the course, in particular the choice of a textbook. I also asked readers what changes, if any, I should consider making in the course content in order to reflect the evolution of CS and the software world.

I'm back.

A lot has happened in the twelve years since I last taught this course, not least of which is the statistical machine learning revolution that is modern AI. It changes how many students study, program, and learn, which means it will affect my course even if I don't adjust the course content because of it.

If AI has permanently changed how people in industry write code — and especially if it has replaced writing code with generating code — then the algorithms course becomes an even more important part of an undergraduate CS education. Now more than ever, students need to learn how to read code, to identify and comprehend the algorithms implemented in code, and to analyze the correctness and performance of generated code.

Whether to assign a textbook to students (and, if so, which one) remains a big decision. That 2013 post wandered around the options a bit. This time around, I am essentially deciding between a traditional text or none at all.

Traditional textbooks are so expensive that I'll only adopt one if the value it offers students is enormous. The book I've used in the past, Anany Levitin's Introduction to the Design and Analysis of Algorithms, is expensive and hasn't been updated in fifteen years. Even so, I like it.

Several of my colleagues recommend the zyBooks platform for its built-in reading quizzes and analytics, but I wonder if these features, too, offer enough value. Besides, the platform now promotes its "AI tools" as selling point, which makes me leery.

I've long been inclined to write my own notes for students, and that's where I'm leaning for this course as well. I like the organization of Levitin's book, but my courses usually follow my own idiosyncratic path. I like the idea of engaging students with interactive content in a zyBook or other online text, but I'm not sure that they will map well enough onto my approach to the courses to really help my students. In the end, I will probably expand my own notes for the course and supplement them with a few well-chosen resources on the open web. That approach has served me pretty well over the years.

All that said, the big question in my mind as I prepare the course is content. Which algorithms should we teach in an undergraduate algorithms course, circa 2026? Do changes in theory and industry require a fresh look at the topics we teach undergrads? Is the standard collection of algorithms still what students need as a base when moving out into the world?

In 2014, readers generously sent me many ideas. A significant majority of the recommendations boiled down to this: teach the traditional algorithms and concepts, perhaps with a tweak or an addition at the fringe.

That's what I did then, and it worked well. Former students occasionally email or message me to say that something they learned in that class made a difference in their current project. There aren't many better feelings for a professor than receiving a message like that.

What do you think for 2026? Should we adjust the balance of topics that we currently teach? Should we add a new algorithm or data structure to the undergraduate canon? If we teach a new algorithm, or a new class of algorithms, which standard material should be de-emphasized, or displaced altogether? (Alas, the semester is still only fifteen weeks long.)

Please send me your suggestions! I would be happy to write up a summary of the ideas you share, and I will certainly use your suggestions to design a better algorithms course for my students.

I really do enjoy this course. It gives both the students and me multiple opportunities to do a little theory, a little design, and a little programming. I also like to have some fun, using what we learn to play games and solve puzzles.

Whatever else I do in the course, I hope to communicate my joy in learning and implementing algorithms, and spread that joy to my students.


Posted by Eugene Wallingford | Permalink | Categories: Computing, Software Development, Teaching and Learning

June 07, 2026 12:33 PM

The Long Expected Passing of My iPod Shuffle

the front side of an iPod Shuffle, with its interface wheel the back side of an iPod Shuffle, with its embossed Apple icon in the middle, the word 'iPod' in large letters below, and the name 'Eugene Wallingford' etched in small letters at the top
my 2024-era iPod Shuffle in 2026

My memory is getting fuzzy, but this is how I remember it. Back in 2004 or so, I bought a new iBook. At the time, Apple was running a promotion that laptop purchasers could buy an iPod Shuffle for the special price of $50. They would even engrave it for free.

In college, I had worn out a couple of cheap Walkman knock-offs listening to radio and cassette tapes while walking to and from classes, and later a cheap Walkman CD knock-off. Why not try out this tiny little curiosity, filled with tracks ripped from CDs I owned?

I started walking or biking the two-and-a-half miles to work back in 2012, and every walk to campus was a 30-minute opportunity to listen to songs from the Shuffle's gigabyte of music, usually on shuffle but sometimes in playlist order. There weren't many options, given the spare interface. I loved it.

Jump ahead twenty-plus years, and I was still listening to that Shuffle. When I purchased my current laptop, a 2023 MacBook Air, I found that Apple Music no longer supported the device, so I had to refresh the music from my previous MacBook Pro. I did that every so often because 1GB isn't a lot of music, and a little variety is nice.

I've known the end was coming for a while. A few years ago, the battery stopped holding much of a charge, and cold winter walks sapped it even more than usual. But... I loved, loved, loved it: the size, the shape, the limited interface. The way it clipped to my shirt pocket, my collar, my shoulder bag. So I charged the battery more often and kept listening.

Thursday night, I charged the battery after using it for an hour that day. As I headed out across campus on Friday afternoon, I turned the Shuffle on to calm my mind, and it went dead almost immediately. No amount of fiddling could coax it to play. The end had finally arrived.

Photos of my Shuffle show more dings and scratches around the edges than I ever noticed while using it. In my mind, it's still the brand-new little device I remember from twenty years ago. I suppose that's like a lot of things as I grow older, including the face I see in the mirror every morning.

I have an iPod Touch from 2019, which I purchased for a trip to Europe for a Dagstuhl workshop. It's mostly been sitting unused the last few years. Yesterday, I loaded it up from my Daily Listening playlist and will give it a go walking across campus this week. I'm sure it will suit me fine, even if I have to fiddle with more interface than I'm used to — or care to, really. I just like the music.

Farewell, old friend. I will miss you.


Posted by Eugene Wallingford | Permalink | Categories: General, Personal