This paper presents the results from a phenomenographic study of rst year university students' understandings of the concepts object and class. The students had just nished their rst programming course using Java as the programming language. The analyses of the study display qualitatively di erent ways to understand the concepts. These aspects of the understandings are formulated as categories of description. Each aspect is important and relevant when solving a programming task, and a good understanding includes all aspects of the concepts. The categories show understandings of di erent complexity. There are students who can only express an understanding of the concepts as code and syntax rules. Other students can also express the role the objects play for the programmer and the performance of the task given, and classes as abstract data types. The students who express the richest understanding includes the understandings already mentioned, but they can also express that classes and objects depicts the real world. Learning to understand a phenomenon means, in a phenomenographic perspective, to discern new aspects of that phenomenon. This discernment is only possible if there is a variation in a dimension that corresponds to the aspect, critical for the speci c understanding. The question of variation gives interesting implications for teaching discussed in the paper. The discernment requires the students to have a mindful kind of learning, re ective learning. This implies for the teachers that explicitness in the teaching is of great importance. Explicitness in the teaching is de ned at several levels, not only that the di erent aspects of the understandings found in the study should explicitly be mentioned, but also explicitness in the explanation and variation of these aspects. The importance of o ering a broad context for object oriented programming is also emphasized. This can include explaining not only the object oriented paradigm, but also to discuss some other programming paradigms, and the historical background that lead to these paradigms. It can also include giving the students the opportunity to follow a whole programming task with analysis of the problem, and to design, implement and test the program even at an early stage of their education. The paper also includes some examples how the results from the study can be implemented in the teaching to help the students in their learning
[1]
Michael Kölling,et al.
The Problem of Teaching Object-Oriented Programming, Part I: Languages
,
1999,
J. Object Oriented Program..
[2]
Ivar Jacobson,et al.
The unified modeling language reference manual
,
2010
.
[3]
Anders Berglund,et al.
On the understanding of computer network protocols
,
2002
.
[4]
Ann E. Fleury.
Programming in Java: student-constructed rules
,
2000,
SIGCSE '00.
[5]
Christian Holmboe,et al.
A cognitive framework for knowledge in informatics: the case of object-orientation
,
1999,
ITiCSE '99.
[6]
簡聰富,et al.
物件導向軟體之架構(Object-Oriented Software Construction)探討
,
1989
.
[7]
Said Hadjerrouit,et al.
A constructivist framework for integrating the Java paradigm into the undergraduate curriculum
,
1998,
ITiCSE '98.
[8]
Mark Woodman,et al.
Avoiding object misconceptions
,
1997,
SIGCSE '97.
[9]
Eric Roberts,et al.
The dream of a common language: the search for simplicity and stability in computer science education
,
2004,
SIGCSE '04.
[10]
R. Cherry,et al.
Seeing the light
,
1993,
Nature.
[11]
F. Marton,et al.
Learning and Awareness
,
1997
.
[12]
Roger Box,et al.
Experiences when migrating from structured analysis to object-oriented modelling
,
2000,
ACSE '00.
[13]
Ference Marton,et al.
Conceptions of research in student learning
,
1979
.
[14]
John A. Hamilton,et al.
A survey of object-oriented methodologies
,
1995,
TRI-Ada '95.
[15]
C. Linder,et al.
Reflection and phenomenography: towards theoretical and educational development possibilities
,
2003
.
[16]
Michael Kölling,et al.
Objects First with Java - A Practical Introduction Using BlueJ (5th Edition)
,
2002
.