Working through PragProg: Modern C++ Programming with Test Driven Development