If you follow the analogy, the best programming languages for CS101 will first, minimize the amount of technique required to accomplish simple tasks. Java is out, "hello world" already introduces the concept of classes, static methods and access specifiers. Ruby, python, and plenty of other dynamic languages look a lot better, "hello world" is a single statement/expression. Second, the layout of the keys should be intuitive, consistency and simplicity in syntax/semantics is often cited as one of lisp's strong points with regard to it's suitability as a teaching language. If you want to play a scale, you just need to hit the keys in order.