http://www.cogs.susx.ac.uk/local/teach/dats/dats.html
Introduction to data structures, with Java code, by Peter M. Williams.
http://www.csd.uwo.ca/research/grail/
A symbolic computation environment for finite-state machines, regular expressions, and finite languages.