When I was in elementary school, we had an after-school program called Science Adventures. It involved learning about some physical principle and then building a toy to demonstrate it — for example, we’d make a cardboard periscope to learn about light and reflection. I loved it because we got to take home (and continue playing with) everything we made.
I get the same feeling from the compilers class I took this semester. In most classes, the best case is you learn something and you get an A. In this class, the best case is you get to take home a real live compiler that you can point to and call your own.
Over the past few months, my friends and I have built 🎵#️⃣, a language optimized for exploring and creating music. We spent a lot of time thinking about the syntax — so it can do things like play “Twinkle, Twinkle Little Star” in just 5 lines of code and about a dozen constants.