Postmortems, by Doug Lloyd

#1 Don’t be Greedy was intentionally titled that as a wink to students who’ve started CS50x, though it doesn’t require the greedy algorithm (from Problem Set 1) to solve it. Really, the title is only relevant for giving a clue for the anagram.

#2 It’s About the Journey, not the Destination was probably renamed about six times as we put the packet together, as I desperately wanted to avoid including any extra text as I thought Brian did such a great job writing a clean puzzle so we tried to give the clue in the title itself. And fun fact: Did you know that Croatia’s Adriatic Sea coast has a gap in it? I unfortunately had to have Brian scramble to rewrite that one to avoid that corner case in the original draft once we realized the original version arguably failed to follow the “only one country in between” rule.

#3 Two Strikes is the only puzzle in retrospect I wish hadn’t been part of the packet; it’s never a good idea to have a puzzle where the answer is just part of the puzzle itself, as it makes it too easy to brute force guess, which based on the comments it sounds like several teams ultimately did. There was also some weird wordplay that may have been missed by those for whom English is a second language. Theoretically, I like the idea of this one a lot, but I think I could have put a few more twists on it to make it better. And giving a clue for each row’s “common bond” would have been the right move.

Notwithstanding that it seems to have drawn the ire of more than a handful of folks, I’m really quite pleased with #4 Scheduling Conflicts (indeed, I think it’s probably my second-favorite puzzle in the packet), with one exception. It was intentionally a puzzle that had some misdirection in it (hence the final answer!), but I just wish I hadn’t made the first entry in the list of destinations be one of those misdirections; that might have been a bit much. I wrote this one right after CS50x Puzzle Day 2018 wrapped up.

#5 Hybridice, as you’ll see in the solution video, drew the (mock) ire of Erin, for using black where brown was really more appropriate. That was an intentional choice, as brown and orange I worried would be too tricky to distinguish, but she is technically correct (which as we all know, is the best kind of correct). It was designed to be the easiest puzzle of the packet, but because I try to avoid there being a perception of linear progression of difficulty, I deliberately put it in the middle of the packet. I think, though, that in future CS50x Puzzle Days, we’ll intentionally put what we perceive as the easiest puzzle as #1, even if the rest of them are in no prescribed order.

#6 A Few Degrees Above Zero features a hat-tip to a technique we used in #6 Rolling the Dice from 2018. Thanks to Facebook’s Matthew Warshauer, again, for that one. And thanks to Elphie for being a great subject! Fortunately at the last moment Erin realized that her phone number was actually written on Elphie’s dogtag, and we were able to Photoshop that out — didn’t want folks to think they had to call her up for the final clue :) We really liked the idea of a puzzle that had some physicality to it, as this one likely was solved by many folks by cutting out the pieces and rotating them.

My main regret with #7 Segments was using ROYGBIV for the segment colors, instead of finding another way to order them. I’m particularly pleased with that puzzle (which was a fairly late addition to the packet; I think it was the second-to-last puzzle that I wrote), the idea for which came to me while I was staring at my alarm clock a minute or two before it was to go off, not wanting to get out of bed! Of course, the puzzle number in this case was also a clue about seven-segment displays.

As you’ll see if you watch its video, #8 Mathmoji was written just after CS50x Puzzle Day 2018, and Erin and I wrote up a solution walkthrough for it right then and there. Then we lost it… oops! Fortunately, we were able to put our heads together to crack the code (it certainly helped that we still happened to know the right answer, we just forgot how to get there!). Turns out it’s really hard to try and explain the solution to that puzzle verbally!

#9 Finest Flicks went through a few small changes from how Brian originally wrote it. A couple of clues were rewritten, and the Wikipedia reference was added late to make it clear which release dates we wanted folks to use, lest some other available dates potentially provide bad info. This may have dropped the difficulty a bit more than we anticipated, but it was probably worth doing nevertheless.

#10 Just a Little Bit is the manifestation of a puzzle idea I’ve been trying to find a way to implement since before CS50x Puzzle Day 2017; a precursor version of this has appeared in the past as part of our CS50 AP puzzle packet that we distribute to teachers. While some folks complained it ended up being a bit (ha!) mechanical or tedious, I think the payoff was worth it. Based on some of the comments we received by email, on Facebook, and in the form itself, many of you seem to have agreed; we received more comments about this puzzle than any other.

#11 Star-Spangled was the final puzzle I wrote for this year’s packet, and also intentionally contained a huge amount of misdirection, mostly pertaining to the way the traveler navigated (“east,” “north,” etc.) The ISO 8601 clue was purely there to avoid an unclued anagram, but I think some folks latched onto it and read more meaning into it. The clue about the Dakotas may also have been a bit too obscure. But hey, that’s okay. Puzzles are all about trying to get into someone else’s head.

But odds are, after four years, many of you have indeed gotten into my head, so for next year we’ve decided to open this event to crowd-sourced puzzle submissions alongside our own. If you have an idea for a puzzle (whether fully fleshed-out or not) let us know by submitting this form!