student programming guide