While your criticisms of the Keyboard and EasyReader classes may be valid, I'd argue that, as a teaching tool (which is what they are), they're very effective. Besides shielding students from the relatively mundane task of retrieving input, they teach good OO design principles. And, library usage is good; it introduces students quickly to the concept of code reuse. When someone is new, they don't necessarily understand that the Java library is actually a library of code, as opposed to an innate part of the language.