I considered SCJD assignment as a distributed, multi-threaded application developed using RMI or Sockets for server and Swing for client. The key topics to understand for SCJD:
* RMI or Sockets
*
Java file I/O and synchronization
* Swing
* threading
* locking (some OS book should shed some light)
* OO design and 2-/3-tier architecture
If you haven't got the assignment, read about and code some file I/O, RMI and Sockets. Then threading and locking. And finally swing.
If you got the assignment do the same thing but using the assignment's code.