A Programmer's Guide to Computer Science: A virtual degree for the self-taught developer - Dr. William M Springer II