The course book is Data Structures and Problem Solving Using Java, by Mark Weiss, 4th edition. It teaches data structures and also shows how to use them in Java. It is also a good reference for the finer points of Java. There is a website where you can download all the example code from the book.
If you want to buy an older edition to save money, this should work for the most part, but don’t buy the first edition: it’s old, and obsolete when it comes to Java. Obviously, the chapter and exercise numbers will differ between the editions (you can find the table of contents for the 4th edition on Amazon). Although I’ve done my best to check, I can’t guarantee that older editions contain everything you need: buyer beware!
There is another book, Data Structures and Algorithm Analysis in Java, by the same author. This is not the course book! However, it is very similar: if you have it you will be fine. It is a little bit more advanced and mathematical than the official course book. Of course, you will have to find the relevant parts of the book yourself.
Other interesting books, some of them free to read online
If you want to brush up on your Haskell skills, try Learn You a Haskell for Great Good. You can read it free online. It’s got cartoons and everything!
Real World Haskell is also good, and also free to read online, but has XML instead of cartoons. :(
There is a Haskell compendium (in Swedish) from last year’s run of the course. It contains implementations of several data structures and algorithms. The code from the compendium is also available.
If you want to have your mind opened, try Programming Pearls by Jon Bentley. It’s full of elegant, imaginative solutions to programming problems, some of which crop up in this course. A classic.
For data structures in functional languages, the classic reference is Chris Okasaki’s book, Purely Functional Data Structures. Instead of buying the book, you can download his PhD thesis, which contains much of the same stuff.
Online API references
Google group
There is a Google group for the course, which you can find here. Use it for whatever you like: finding lab partners, asking questions, etc. Only don’t ask for or post hints for the labs: each group must finish the labs on their own!