AI toys

In addition to the more technical updates I’m making to my AI course, I’m collecting some fun AI toys that could make for nice first-day activities to get discussion going or otherwise bring some levity to the course.

What Beats Rock? is easy fun. The game seems tuned to give you at least some benefit of the doubt that your chosen item will win that round of the battle. The generated explanations vary in how compelling they are. After a couple of rounds, much of the fun is not the AI but seeing if you can come up with a counterattack that nobody else has used before. The base game now seems to have a number of community variants, but classic What Beats Rock? still seems like the best.

AI Dungeon lets you cooperatively write an adventure story where you play the role of the protagonist choosing your actions. There are lots of pre-made scenarios (official and community designed) or you can do a quick start into a generic classic genre like fantasy, apocalyptic, or cyberpunk. The option to let the AI keep generating the story and choose when and how you want to jump in and add some direction is an interesting way to explore collaboration with a text generation tool.

Stretching the definition of “game” a bit, the JSTOR Daily Sleuth offers up a daily challenge to figure out which of five titles comes from an actual article written by a person and featured by JSTOR, versus the other four AI written titles. You can just make a guess (and get hints each time you guess wrong) or do some sleuthing to make sure you’re getting the right answer.

On the most serious end of the spectrum, The Prompt Airlines AI Security Challenge asks you to prompt engineering your way into convincing an airline chatbot to give you a free flight. Beating this involves some background research into prompt injection techniques.

A bit of nostalgia

And now for a bit of nostalgia, as well as an opportunity to see if I’ve got WordPress access properly set up on my new tablet (if so, I’m hoping it will facilitate increased weblogging).

A couple of weeks old now, but I appreciated this recognition of the 40th birthday of X Window System. My first programming job, a summer internship type position 32 years ago, had me learning UNIX by crash course, and most particularly figuring out how to write X Window configuration scripts. As the article notes, X Window offered the potential for customized and consistent windowing environments across different hardware systems. My task was figuring out how to actually achieve identical windowing environments across a lab full of VMS, VAX, and SUN machines so that visiting biologists could follow simple visual guides and have everything work the same no matter which type of box they sat in front of. In theory, this was entirely achievable and in practice it was about 95% achievable, at least with the nascent skills I had at the time. Many, many days were lost to figuring out how to configure every possible menu to the same options, in the same order. I’d have welcomed Lupton’s guide for astrophysicists – I was spending my days with massive binders with large X’s across the front and delving into man pages.

It’s only thinking about it now that I realize there was some interesting user interface decision making in that project – a topic I’ve learned much more about as a faculty member than I ever did as a student. Given the default menus that each of these three boxes wanted to default to, which one should we use? Or should it be a mix of the three? The reality is, given a short summer to solve this problem, I ended up picking the choices that were easiest to code without a lot of thought about usability. I did insist on spending a day figuring out how to get all three of them to have the same option to reverse the mouse buttons between right-handed and left-handed ordering through a handy drop-down menu option. In retrospect, there were probably better ways for me to solve many of these problems, but it was an invaluable learning experience to be allowed to muddle through and figure out the best solution I could come up with. I don’t miss using X Window. 32-year-ago me would be surprised I could look back fondly on my time fighting with it at all.

SIGCSE 2024 Highlights

I’ve been back in Portland, OR this past week at SIGCSE 2024 (“back” after attempting to have SIGCSE 2020 here and getting sent home before the main symposium began).

For our fifth year running (including in March 2020!) the Committee on Computing Education in Liberal Arts Education held our pre-symposium event “Innovations and Opportunities in Liberal Arts Computing Education” on Wednesday, with 41 people attending across the full day. I love the attendees we get at this event and the community that has built up around the committee – the conversation after all of the presentations and during our discussion tables was excellent. Mark your calendars for February 26, 2025 for our sixth annual event!

A major theme that cropped up across the day was the variety of places computing is being taught in our institutions and our departments’ role/responsibility in coordinating or directing that work. There are some good examples of liberal arts schools aggregating these efforts into interesting curricular packages such as interdisciplinary minors (we had a presentation on Quinnipiac’s new Artificial Intelligence minor as one specific example). There is some interesting disagreement about the extent to which a CS program should “own” computing at an institution, and I’m thinking this could be a fun panel for next year if we can identify faculty with a good range of perspectives. This theme also came up again Thursday at the panel on “Re-making CS Departments for Generation CS” where there was also some suggestion that smaller, liberal arts programs may be better placed to come up with creative answers to this question.

I’ve also been entertained by how many times I’ve heard some variation of “here’s what we wanted to do, and here’s what institutional politics allowed us to do”. In the second half of the conference, some of this resolved into “here’s what we would do with math, and here’s what our political situation with the math department lets us do”. I left with a lot of gratitude for the very good relationship we have with our math colleagues.

With the newest ACM/IEEE standards for CS curricula now finalized as CS2023, there was also good interest in the Workbook for designing distinctive liberal arts CS curricula while using CS2023 that I’ve been working on with several of my colleagues from the Committee. Having delivered a seven-hour workshop on its content the previous week and then a three-hour workshop on it at SIGCSE, I think we’ve got a really good session designed for introducing people to the philosophy of the workbook and the major steps. The process is really designed to be carried out by a department, but everyone seems to understand why that will be valuable and I’m optimistic we’ll be seeing some adoption beyond just our limited pilots within the author group. It’s helpful that CS2023 supports the message that departments need to know their individual mission and goals as a first step in curriculum revision, and it seems like our structured process is helpful in digging into that question and relating it to specific curricular choices.

It’s also clear that more Committee guidance about the fairly large and less flexible CS Core will be helpful to the liberal arts community and other smaller schools. I had some good initial conversations in Portland and am pretty sure this will be taking up a good portion of my time this summer.

Still haven’t crafted a cat yet

A couple of gaming related distractions:

I have not played Baldur’s Gate 3 but I cannot recommend enough the video Can You Beat Baldur’s Gate 3 As a Cat? if you have played any games at all in the genre or want to be entertained by cat (and eventually herd of cats) attempting to go on an epic quest. For more context: druids in BG3 have a cat form, and the video shows an attempt to beat the game from this form, which has a variety of limitations. Unsurprisingly, the game was not intended to be played this way. It’s an impressive showcase of both the player’s ingenuity and the open world game structure that so much is possible as a cat anyway.

If you want to exercise your own ingenuity, Infinite Craft is a nice browser game in the genre of “combine elements to get new items, combine them more to get more things”. There’s more clever wordplay in this version than others I’ve tried. Besides the usual “Sand and Fire make Glass” type stuff, you get some fantastical stuff  like “Moon and Dragon makes Werewolf”, can generate abstract concepts like Optimism and Laughter, and some really weird things like Sharknados, Santa Claus Dressing, Super Miso Soup, and Jackson Pollock. If you are lucky you can create a discovery nobody else has found yet. So far, I’ve discovered Mulled Beans and an Ecoark (nope, no idea what those are).

One Thing, Two Thing, Red Thing, Blue Thing

Things I learned this week to keep up with change: How to use trackpad gestures to scroll (because scrolling with the arrow keys is disabled in our CMS). How to enable NFC on my phone (because we can now use our phones as access cards). How to use the new elliptical machines at the gym (because now you need to start using it to get it to turn on). The need to use my trackpad to scroll – or worse my mouse when working at my desk – is the small bit of friction I am hating the most. We all hate interface changes, but I really hate every time an interface leaves behind those of us who still try to do as much of our work as possible without needing to remove our hands from the keyboard.

Things I finished making this week: Syllabi and initial assignments for my programming and security classes. A fringy/furry pink scarf I’ve been plodding away at for years. A zig-zag striped “temperature blanket” inspired scarf I knocked out in a week. A yummy Baklava Babka following this recipe (and yes, it really will seem like too much syrup to pour over the cake and you really should add it all). After a chaotic fall I’ve slowed down for more crafting and baking this past month and now I might even get back to the quilt I started and abandoned from the summer.

Things I put off: Making flight arrangements for a conference in March. Putting away the light up yard deer from Christmas. Depositing a paper check I received. Starting in on a >400 page report I need to work my way through. Cleaning out my closet. The lesson here, as always, is probably that I need to be more realistic in my weekly to-do lists.

Things I enjoyed: A solid start to my 38th semester of teaching and round 32 of programming, my most frequently taught course. Starting to play Gris and finding it every bit as beautiful as the reviews suggested. Having friends over for a wonderful potluck and having a house filled with people I care about (and so much cake!) Deciding that I’m happy to have mostly given up on social media and that I should use that time to reconsider what I want to do with this space that I get to control.

Pandemic teaching, round four, now with the Delta variant

Classroom OWLI have lots of thoughts about today, our first day into a semester that we’re hoping will be “back to normal” and yet very clearly isn’t. But my main feeling, at the end of it all, is that I actually feel like a teacher again.

I suspect that if we had gone all-in on remote teaching, I might feel differently about the past year. But hybrid teaching, with its demands to provide both in person and remote students an equal experience, and the compromises that meant on both sides, left me feeling like I spent as much energy each class session directing traffic as I did attending to the learning taking place.

Today, I walked into the classroom with my printed out roster and notes and a couple of pens, and I looked at my students, and greeted them, and learned their names, and had a conversation without watching for a raised hand icon or chat message. Nobody was a black rectangle with a name in the middle. In retrospect, perhaps we should have all been issued t-shirts with that image on it so we could recognize each other from this past year.

Today, I walked around the classroom. I looked at computer screens. I read error messages. I fixed typos. And it was much more efficient and interactive than I ever managed with technology sitting in the middle.

Today, I wrote on the whiteboard and it was as glorious as I thought it would be.

Today, I spotted the look of a student who has something to say but isn’t sure they’re a “speak on the first day of class” type of student and learned that, even wearing a mask, good eye contact and a smile can break through that hesitancy and result in a raised hand. And I had to wonder, how many of those moments did I miss last year because someone’s camera was off or I just missed that look in the obscurity of video.

Today, class wrapped up, and students came up to talk or ask questions, and I did not have to shoo them out. I didn’t have to ask them to leave so I could sanitize their desks and keyboards and mice for the next professor, and unhook my technology, and sanitize myself, and scurry next door to set it all back up for my next class, in just ten minutes.

It was not perfect. It was stressful having the building so full and having every seat in my classroom filled, after a year of low occupancy. Masks were not always fitted properly in place. And we know that campus is not COVID free. We’ve already been told of students getting tested and possibly needing to start the term remote, and we’ll be having to find ways to include them – which means some amount of hybrid teaching still taking place. I have reacquainted myself with my OWL. I have a Teams site made for each course, just in case. And I’m thinking about whether I should plan to get myself tested periodically, now that the college is no longer testing me. I’m aware that, yet again, despite all of the precautions in place, because of my job I am the biggest potential vector for bringing COVID into my family, and there is a decent chance I could do so while being entirely asymptomatic.

But today, I taught and I loved it.

Knit Lace Sampler: Patterns Eleven and Twelve

Knit Lace Patterns 11 and 12The next two patterns in the sampler are done, and I definitely like one more than the other – you can probably guess which looking at the photo (eleven is on the bottom, twelve above it).

Pattern eleven was, frankly, an absolute pain to knit. I’m not entirely sure I ever got the combination of cast-offs, yo twice, and then k1,p1,k1 in the double yo correct and I had more issues being off a stitch in the repeats with this pattern than any other in the sampler so far. The end result is very open and the heavier, filled-in knit parts don’t stand out the way I wish they did.

In contrast, pattern twelve was both easier and turned out nicer. I’m a big fan of the patterns that have “Even R: P all sts” in the header – not just because of the easy rows that require less attention, but also because it makes it easier to recover from slight issues in the previous row.

I meant to do an overall photo of the whole sampler after pattern ten, but I forgot, so here’s how it’s looking after 12 of 74 are done. Nothing is blocked, but just laid out as is it’s currently just under 45 inches long. At this pace, the end result should be 7 to 8 yards long!

Knit lace sampler, patterns 1 through 12

Limitations of the Fall, Possibly by Design

Something I’ve been thinking about a lot, reflecting back on the Fall term, is a conversation I’ve heard both at my own institution and in a number of online settings. It boils down to the observation that in a hybrid course setting, many students who in theory should be coming to class in person (are living on campus or have indicated they will be attending in-person in some manner) have settled into attending remotely as the semester progresses. A question that arises is: does this bode ill for in-person learning in the future?

My opinion is – no. Or, at least, the fact that students are opting out of the classroom experience right now doesn’t necessarily mean they will always devalue a classroom experience. To me, the key observation is that the classroom experience they are opting out of right now is limited in ways that make it less clearly better than the remote experience.

In part, this is by design! For equity reasons, we spent the summer trying to ensure that our in-person and remote learning experiences were as comparable as possible. And at my institution, at least, we were told not to accomplish this by developing separate in-person and on-line experiences, but rather to design from an online perspective first, and then adapt to an in-person setting as possible. If the end result is an experience that students feel they can benefit from equally whether they come to the classroom or stay in their dorm room, that could well be a natural result of the task we set ourselves.

Additionally, there are elements of the current situation that make in-person learning lesser than what students are used to. For my classes, I simply can’t interact with students the way I usually would. I can pair students up to work together, but they can’t share a notebook to work an example or stand at the whiteboard together – they can talk to each other from opposite sides of a long desk while typing into a shared file.  With the need to clean surfaces, it isn’t realistic to rotate through work partners the way we might usually. I cannot walk around the classroom looking at their code while they work – I can view them with monitoring software from the lectern. I can be in the same room as them, but I must be distant, even if I can see they are frustrated or upset. When I would usually walk over, squat down to eye level, and talk them through whatever they are struggling with, now I have to try to do so loudly through a mask from the front of the room, or through text chat if I sense they’d like a less public conversation. In that setting, how much is really lost by being in their own room, with the computer setup they prefer, and all the same abilities to screen-share and talk with me through text or video?

In a usual semester, I spend a lot of time in class trying to get students away from their computers, exactly because of the type of engagement it creates with their classmates and the problems they are solving and myself. I’m hopefully that when that’s what an in-person learning experience looks like again, students will welcome and value it. In the meantime, I’m focusing on the fact that (counting both in-person and remote synchronous participation), my attendance was outstanding this past semester and however they were present I was able to regularly get my students engaging with each other. They were part of a classroom community and they learned and I’m pretty satisfied with that.

Knit Lace Sampler: Pattern Ten

Getting back into lace knitting is going slowly, but I liked this pattern a lot. It had a simple 12 row repeat over 11 stitches and straight forward stitch-work. The large diamonds look great and the tiny little diamonds in the middle of the open work area will probably stand out more after blocking. Attractive and easy to follow – a good combination!

I meant to stop at ten patterns and take a photo of the whole sampler unrolled for perspective, but I forgot so I’m now thinking of doing this after pattern twelve. Pattern eleven is turning out a bit rough (spoilers) so I’ll probably want one more good one to balance things out before a more extensive photo shoot.

Knit Lace Pattern Ten

Knit Lace Sampler: Pattern Nine

With the cold weather arriving, I got back into knitting my sampler last week. This time, we have a nice solid diamond pattern with small eyelets in the middle. Working this pattern, it didn’t look at all like it was coming together as I knit it. I expected I wouldn’t like it very much. But the end product is very nice. I feel like my center eyelets are a bit lower than they should be, and I’m thinking about why that might be. Perhaps I am doing my yarn-overs wrong? I’ll have to review what the book suggests is the right process before I start my next pattern.