Thinking in the classroom : a survey of programs