Mental representations of programs for student and professional programmers