A Basic Compiler.
Probably my favourite piece of coursework was the compiler I got to write in the final year of my computer science degree. It was writen in a mixture and Java and Jasmin - the language of the JVM and compiled using javacc, the Java compiler compiler.
The basic structure of the compiler was provided and compiled a made up language called Redbush (while naming languages after types of coffee is currently popular my lecturer decided he prefered tea). We just had to fix the bugs and extend the language from being able to cope with just integers to strings and method overloading/overriding.
