Yes, and Yes.
We are currently undertaking an empirical investigation of “Threshold Concepts” in Computer Science, with input from both instructors and students. We have found good empirical evidence that at least two concepts—Object-oriented programming and pointers—are Threshold Concepts, and that there are potentially many more others.
In this paper, we present results gathered using various experimental techniques, and discuss how Threshold Concepts can affect the learning process.
In this paper, we present the results of an experiment in which we sought to elicit students’ understanding of objectoriented (OO) concepts using concept maps. Our analysis confirmed earlier research indicating that students do not have a firm grasp on the distinction between “class” and “instance.” Unlike earlier research, we found that our students generally connect classes with both data and behavior. Students rarely included any mention of the hardware/software context of programs, their users, or their real-world domains. Students do mention inheritance, but not encapsulation or abstraction. And the picture they draw of OO is a static one: we found nothing that could be construed as referring to interaction among objects in a program. We then discuss the implications for teaching introductory OO programming.