A first course in programming 3D graphics in OpenGL and C++