- Introduction to Computer Science using Java (Bradley Kjell)
- Introduction to Programming in Java (MIT OCW)
- Think Java: How to Think Like a Computer Scientist (Allen B. Downey) - suitable for AP Computer Science, so suitable for younger students
- Introduction to Programming Using Java, Sixth Edition (David J. Eck) - link not working for me right now but I've heard good things about it
- Introduction to Programming in Java (Robert Sedgewick, Kevin Wayne) - contains case studies connected to real scientific or business uses, but means requires students to have a more advanced math background more suitable for 2nd+ year university undergrad students.