This introductory textbook on Java programming is different from others by its emphasis on test-driven development. Writing tests before designing the implementation is incredibly important for debugging purposes and understanding the desired outcome. While testing is often an afterthought in other Java textbooks (being placed at the very end or not at all, which is in some ways cruel to withhold such capabilities from the student), this text takes...