"C++ Object-Oriented Programming" course design guide