In all of the classes I took to get my Computer Science degree from MSU, I learned all sorts of things that I'll never think about again. One of the things I hated and barely got was Finite State Machines. It's a way to model reactive systems, specifically around application design and compiler design. Here's some of the models we used to have to map out:
Today, I was in a conversation at work that actually brought up the concept use of Finite State Autonoma, and I felt like a whole part of my brain had been unlocked and had suddenly been fulfilled.