Classical and Quantum Computing: with C++ and Java Simulations