Modern Software Development Using Java: A Text for the Second Course in Computer Science