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 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 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)
The McCracken et al. working group paper is often cited for the proposition that students can't program. In that study, students from four different institutions were each assigned to implement one of three versions of a calculator. More than half of the students failed to produce a program that compiled and executed in the time assigned. Lost in this(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)
A Contributing Student Pedagogy (CSP) is a pedagogy that encourages students to contribute to the learning of others and to value the contributions of others. CSP in formal education is anticipatory of learning processes found in industry and research, in which the roles and responsibilities of 'teacher' and 'student' are fluid. Preparing students for this(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.