Text this: Data abstraction and problem solving with javawalls and mirrors