Tales from the jar side: Everybody aces the final, Pearl Fishers and Norma duets, My favorite musician, and the usual toots and skeets
I won't say anything if I learn trigonometry, but there will be sines. (rimshot, c/o @direbeard.bsky.social)
Welcome, fellow jarheads, to Tales from the jar side, the Kousen IT newsletter, for the week of December 8 - 15, 2024. This week I taught an NFJS virtual workshop on Integrating AI into Java, as well as my regular courses at Trinity College.
I Am Great, Or My Students Are Great, Or I Am An Idiot
Hey, check out the awesome results from a final exam I gave this week:
Wow, right? There were 50 multiple-choice questions, each worth one point, and (almost) everybody got them all right! That’s amazing. I can think of three possible reasons why this happened:
I’m a fantastic instructor, and therefore everybody learned everything.
I have a wonderful group of highly intelligent, hard-working students, who learned everything I presented in class.
There might have been an issue with the exam.
Let me set the context. The class is called Software Design, and I taught it using Kotlin as the primary language. The students had some experience in Java, but Kotlin was new to all of them. We covered lots of the language, but as a way to talk about design issues like layered architectures, model-view-controller systems, object-oriented and functional programming, and so on. We used Ktor as a client for REST services, and spent the last couple weeks working on a Spring application in Kotlin. The homework assignments I gave them were up and down, but mostly good, and I tend to let them fix things and resubmit them.
This final was held online, and was open-book, open-notes, open-AI, open-whatever. We were going to hold it in class, but the health department sent around a notice that the flu was sweeping through the student body, discouraging that. Also, I let in everybody from the waiting list, so we had a full group. I’m not sure everybody would have fit in the classroom if they all came at the same time. Normally we had a few remote people anyway. I therefore set up the exam to be an online quiz inside Moodle, our “course management software”. I gave them three hours to do what I expected to be an hour to hour-and-a-half length quiz, but I’m as bad as estimation as any other developer so I didn’t really know how it would go.
The last issue you need to know, and this is a big factor, is that I discovered something interesting about Moodle before the final. Here’s a portion of the “Question Bank” page, where you can add lots of questions that can be later added to a quiz:
See that Questions button? If you click on it, the drop-down says Questions, Categories, Import, and Export, which were not obvious to me (and is not the first user interface issue we’ll deal with). When I saw the Import value, I tried it, and the result includes this:
My thought was, “Moodle XML format? They have their own XML schema?” More importantly, my next thought was, “I wonder if Claude / GPT-4o / Gemini can generate it.” As it happens, Claude generates it just fine.
The other nice thing about Claude is that in its most recent version, I can connect it to my Google docs folder, and all semester long I’ve been keeping course notes in a public Google doc I shared with the students. I therefore fed that document to Claude and asked it to create questions for me, in Moodle XML format, covering all the topic included.
The process was a lot more complicated than that, actually, but that was the basic idea. I found it was best to generate only a handful of questions at a time, import them, and then edit the results to select only the good ones and fix any misleading or odd-looking answers.
I did notice one unusual thing as I was doing this (insert some ominous foreshadowing sound effects here), which was that all the answers seemed to be following a pattern of choosing the first option as correct. I figured, however, that was not a problem, because on the Quiz Settings page, you see this:
I figured that meant that Moodle would automatically shuffle the options for me.
Yeah, and I say this with great sadness, no, not so much.
My first clue that something was wrong came about 20 minutes into the quiz. I included 50 questions, which I thought was a lot. I maintained a Zoom call during the exam in case there were questions. Instead I got an email message from one of the students, saying:
“I’m about halfway through the exam, and so far, every single one of my answers has been “A”. Am I supposed to catch on to that? Just wanted to give you a heads up!”
Um, no, that’s not how it was supposed to happen. I went back to the settings and verified that I had selected the proper entry in that drop-down, and I had. But you see that little question mark next to the setting in the above image? Here’s what it says:
I remember glancing at that and glazing over a bit, but I thought it meant I was okay. I’m afraid not, however. According to Claude:
Based on the screenshot, I can see where the confusion is coming from. The "Shuffle within questions" setting shown actually does something slightly different than what you're expecting. The tooltip explains that it will "randomly shuffle the parts making up each question" but this is specifically for questions that have multiple parts, like matching questions.
For shuffling answer choices in multiple choice questions, you'll need to:
Go into each question's individual settings
Look for a checkbox labeled something like "Shuffle answers" or "Shuffle the choices" - this is typically found in the question editing form, not in the overall quiz settings you're currently viewing
Uh oh. I looked at one of the individual questions, and found this setting:
Aw, nutbunnies. I apparently needed to select that option on every single question, and I’m not sure even that would have been sufficient.
It was certainly too late to do anything during the exam. The only issue was how quickly the students were going to believe their good fortune, and not worry that I was trying to trick them by throwing in a different answer randomly somewhere along the way.
As you can see from the results, they took their time (more or less), but every student but one eventually caught on to the pattern and went with it. Several eventually showed up in the Zoom room (after finishing and getting their perfect scores) to comment on it, giving me the opportunity to say no, I didn’t mean to do that, and yes, sometimes I’m an idiot.
Okay, maybe I’m not a complete idiot. I blame Moodle, at least in part. I mean, that’s a pretty misleading signal it was sending me. How did it think I was supposed to interpret “shuffle between questions,” anyway? I never considered that there would be a separate setting on each question, and on the individual questions a shuffle like that should be the default behavior.
Live and learn, I guess. The results on the final aren’t completely worthless, because the students still had to verify the answers even when they spotted the pattern, but as a means to separate the A’s (no pun intended) from the B’s, it was a waste of time.
In the end, my reaction was, happy holidays and enjoy your present. We’re all in IT here, and here was yet another example that computers are basically evil, but at least sometimes it’s evil in your favor.
What about that one student who got two questions wrong, thus putting her at the bottom of the list? First, that’s still 90%. Second, I admire her self-confidence in believing she was right and the pattern was wrong. Third, I’m relieved she didn’t assume I was dumb enough to do that on purpose. I’m figuring all those reasons are worth a couple extra points, don’t you? Of course, I’m a soft touch, as may be obvious at this point.
I guess I should also have blamed Claude, too, for assigning every right answer to option A, but I could have stopped that. I just didn’t think I had to. That’s still on me. Sigh.
One more aside: At the top of this section I proposed three possible reasons for the great results. I’m going to say that Occam’s Razor suggests that the third option was most likely. It then occurred to me that if William of Ockham, who died in 1347, lived today and was a professor, his friends would definitely call him Doc Ock, right? I mean, how could you not? It would be awesome if one of his students was named Peter Parker, too. He never, and I mean never, would have lived that down.
Kind of like I’m never going to live down giving a final full of multiple-choice questions where the answer to every one was A. Oh well. That won’t happen next semester.
Pearl Fisher’s Duet
I’ve been active on Bluesky lately (here is my account, in case you want to connect), and in order post more often I’ve started adding a “Today’s musical selection” post with various classical pieces I enjoy. Here’s a recent one:
Here’s the direct YouTube link to that duet. It’s a great duet, and one of the very few male/male duets in the opera repertory. The duet is call Au fond du temple saint, and is the most memorable piece from that opera, and probably the biggest hit Bizet wrote before he composed Carmen. I’ve heard many versions by different baritones and tenors, and this is a good one. I have a different one in my favorites list where a much older Domingo sings the baritone part and Andrea Bocelli sings the tenor, so feel free to check that out if you like.
These days, if you want to investigate something, you can have a conversation with an AI tool. As long as you don’t just accept what it says, it can be very helpful and it follows wherever you want to go. I had an interesting conversation with Claude about this piece, whose lyrics basically boil down to “bro’s before ho’s,” if you’ll forgive the colloquialism. These are two friends who fell in love with the same woman before and promise never to do it again, and it works out pretty much about how you’d expect. That led to questions from me about other great duets, and reminded me about the time I was in an opera that included a great duet, though that one was between two sopranos.
Deep in the mists of history, circa 1992, I spent a year as a chorus member of Connecticut Opera (founded 1942, died 2009). One of the operas we did that year was Norma, by Bellini. That show is most known for the aria Casta Diva, which really is awesome. Here is Renée Fleming singing it (in concert, without the chorus):
I was dressed as a druid in the chorus, and it was really fun, though due to budgetary issues we were always what I called dangerously under-rehearsed. Still, our Norma did a great job in practice. Then, during the last week of rehearsals, we found out that she had to withdraw due to throat issues.
At the very last minute, and at great expense, the company flew in a replacement, named Rebecca Copley. She stepped in and did a great job, with the stage manager shouting lines to her from off-stage, which I don’t think she ever needed. The thing is, her duet in the second act there is a soprano / soprano duet called Mira, o Norma, and our replacement soprano blended amazingly well with the woman playing Adalgisa. In fact, the replacement was way better than our original, and got even better in the rest of the performances.
I knew there was a newspaper article about it at the time, but it turned out I had a very difficult time finding it. Eventually, though, I found a Hartford Courant article from March of 1992 that described the situation. I’d link to it, but it’s in their archive and I don’t think I can share it for free.
Incidentally, some time during the early 1990s my wife and I did a concert together, and I performed that Pearl Fishers duet with a baritone friend of mine. All I remember about it is that the overall performance was so taxing we had to take the duet down a half-step for me to make it through, which I felt really bad about. Oh well. We also did Lida Rose, though, as a barbershop quartet, with my wife performing the “sweet and low” part in the middle, and that was really good.
These days there would be video. Now I’d be lucky to find an old VHS tape with it, and I don’t even have a VHS player any more. Time moves on.
My Favorite Musician, At Least According To Google
Apparently this is the week Spotify has been sharing their summaries of people’s listening experiences during the year. I don’t subscribe to Spotify, partly because they’re evil, but mostly because I already have a Google business account so that means I have a YouTube Music subscription.
Not to be outdone, YouTube Music sent me my year-end summary, which didn’t really tell me anything I didn’t know. It claimed my favorite musician is … Michael Giacchino?
Who? He’s actually quite well known, and you’ve surely heard his music. He’s a composer of movie scores, including The Incredibles, Ratatouille, Star Trek (the Kelvin universe one), several Mission Impossible movies, Spider Man Homecoming, and tons more.
For me this year, the relevant movie is The Batman. As it happens, if you start the soundtrack to The Batman at The Bat’s True Calling, you make it to the end Sonata in Darkness in about 30 minutes, which happens to be almost exactly how long it takes me to drive from my house to my office at Trinity College. Therefore, that block of songs gets played a lot.
I will admit that I still really like that movie. I liked it from my first watch, but I’ve grown more fond of it over time. I love the approach and the real growth of the character, and, of course, the music as well. According to YouTube Music, the track called simply The Batman currently has 27 million plays, so I can confidently say most of those aren’t mine.
My number one song for 2024, however, is Now and Then, the final release from The Beatles. For anyone who knows me, I’m sure this comes as no surprise at all.
Gemini 2.0, OpenAI Sora, and more
This newsletter is already running long, so I’m going to skip the tech stuff this week. I’ll just say that I did manage to try out the experimental Gemini 2.0 version through its API during my class this week and it worked fine. My friend Guillaume Laforge has an excellent blog post on Detecting objects with Gemini 2.0 and LangChain4j in case you want to see more details.
As for OpenAI, they’re trying to release something new for 12 days in a row, to varying degrees of success. They finally released Sora, their video generator, and crashed their own site in the process. I haven’t played with it yet. I going to wait for the rush to slow down, and then try to make a new intro to the Tales from the jar side YouTube channel, which, I should point out, just hit 75K views.
(Still not enough watch hours in the past year to make it to full membership in the Partner Program, however, so please keep checking it out.)
More about the AI releases next week.
Toots and Skeets
SDKMAN! joins the Xodus
The flood toward Bluesky has slowed a bit, but it’s still ongoing. I still need chess twitter to move to Bluesky, at which point I’ll no longer have to visit Elon’s Folly any more.
Lower decks! Lower decks!
I am really enjoying this, the last season of Star Trek: Lower Decks. I’m really going to miss it when it’s gone.
The road most traveled
Yeah, I would probably do the same.
Therapist gags
I have a couple friends who are therapists, and apparently this was a good week for therapist gags, though we’re probably not in a good season for therapists.
Boundaries? What boundaries?
Not to be outdone:
Even The Onion got into the act:
That points to this location, in case you want to follow up in our next session.
Speaking of therapy
I could see Dr. McCoy giving that kind of advice.
Those aren’t the right colors
Both of those colors are wrong for ibuprofen, but maybe they have a different manufacturer in the Matrix.
Worth it?
If you keep rolling your eyes that hard, you’re going to need that doctor, or at least the vodka and orange juice.
Die Hard, back with a vengeance
I thought that was good, but this is arguably better:
That’s a different take. Sure, why not?
Yes you are
Yes you are, and you have the tiara to prove it. I dare anyone to say different.
Xmas skeet
I’m saving most of the Xmas posts for next week, but here’s one:
Hopefully the resulting Kenny Loggins song will be out of your head by Xmas, but no guarantees.
Finally, let’s finish the way we started:
Grading
Have a great week, everybody!
Last week:
Week 2 of Spring in 3 Weeks, on the O’Reilly Learning Platform
Upgrade to Modern Java, as an NFJS Virtual Workshop
My regular Trinity College schedule.
This week:
Week 3 of Spring in 3 Weeks, on the O’Reilly Learning Platform
Grading my courses from Trinity College