In my advanced compilers course, students have write to lexer-generators, parser-generators and Scheme interpreters with first-class macros. To make these projects feasible, I recommend using Scala. Of course, Scala is a large, intricate language. It takes time to even become aware of all its features. To help learn Scala faster, I've created the series of small examples below, each of which highl