Learn More
A study by a ITiCSE 2001 working group ("the McCracken Group") established that many students do not know how to program at the conclusion of their introductory courses. A popular explanation for this incapacity is that the students lack the ability to problem-solve. That is, they lack the ability to take a problem description, decompose it into(More)
In this paper, we present the results of an experiment in which we sought to elicit students' understanding of object-oriented (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(More)
Is there consensus on what students should learn in CS2? Should they learn to use data structures, understand their specific implementation details, or both? Finally, has the computing education community's answer to the second question changed over time? In this paper, we begin to explore these questions based on an analysis of a key artifact instructors(More)
In March 2004, SIGCSE members contributed to a mailing list discussion on the question of whether programming should be taught objects first or imperative first. We analyse that discussion, exploring how the CS community debates the issue and whether contributors' positions are supported by the research literature on novice programmers. We applied four(More)
In this paper, we begin by considering object-oriented programming concepts and typical novice misconceptions as identified in the literature. We then present the results of a close examination of student programs, in an objects-first CS1 course, in which we find concrete evidence of students learning these concepts while also displaying some of these(More)
This paper describes Threshold Concepts, a theory of learning that distinguishes core concepts whose characteristics can make them troublesome in learning. With an eye to applying this theory in computer science, we consider this notion in the context of related topics in computer science education.
Yes, and Yes.We are currently undertaking an pirical investigation of "Threshold Concepts" in Computer Science, with input from both instructors and students. We have found good pirical 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(More)
This paper examines transformational learning experiences of computing students as a way to better understand threshold concepts in computing. From empirical evidence we found that students often describe transformative experiences as learning situations in which they were led to use various kinds of abstraction, for example modularity, data abstraction,(More)
Research shows that examples play an important role for cognitive skill acquisition. Students as well as teachers rank examples as important resources for learning to program. Therefore examples must be consistent with the principles and rules of the topics we are teaching. However, educators often struggle to find or develop objectoriented example(More)
Threshold concepts can be used to both organize disciplinary knowledge and explain why students have difficulties at certain points in the curriculum. Threshold concepts transform a student's view of the discipline; before being learned, they can block a student's progress. In this paper, we propose that in computing, skills, in addition to concepts, can(More)