I got this idea from a friend, but whenever I wanted to learn a new language, I would quickly hack out a 4001 emulator in that language. Its an interesting but quick challenge.
http://pastebin.com/YkhRsuih - C
http://pastebin.com/L79CeeGB - Haskell
http://pastebin.com/LybWwGzm - JS
http://pastebin.com/ZVDiRmP6 - MHS this language cant take input (its an educational toy language for a course)