Just off the top of my head I would say
you should purchase the assignment and just read the source and the requirements. I don't think its incredibly productive to read five or six books then attempt the assignment. As you start you may want to refer to some texts on Design
Patterns (a few free ones are available online), Threads (specifically the Monitor concept as implemented in Java), RMI or Sockets (depeding on your choice), and Swing.
I started out in May reading specifications and white-papers till I couldn't take it any more. I would say some of the reading I did was useful, but I am glad I started the design and development at the same time. It was easier for me to take a working prototype, see what's wrong with it, and fix it to accommodate any new understanding or knowledge.