With thanks to CS50’s alumni and friends