novice students' learning of object-oriented programming anna eckerdal dept. of information...
TRANSCRIPT
Novice Students' Learning of Object-Oriented Programming
Anna EckerdalDept. of Information
TechnologyUppsala University
Sweden
Info
rmat
ions
tekn
olog
i
Anna Eckerdal Institutionen för informationsteknologi
Learning to program
is a complex activity!
Info
rmat
ions
tekn
olog
i
Anna Eckerdal Institutionen för informationsteknologi
Where lies the problem? Or - where is the solution?- The teacher: subject knowledge, good notes, engagement, approach to teaching
- The student: preknowledge, mental model of the computer, personal, approach to learning, motives, conceptual understanding, personal life
- Language & Development environment: Java, ML, Pascal & emacs, BlueJ, eclips
- Environment: working load, assessments, pair- programming, textbook, automatic computerized tutorials
- etc.
Info
rmat
ions
tekn
olog
i
Anna Eckerdal Institutionen för informationsteknologi
My research interest
To give a broad picture of students' experience of their learning:
What do students learn? How do they go about to learn?
Info
rmat
ions
tekn
olog
i
Anna Eckerdal Institutionen för informationsteknologi
Research questions What are students' understandings of
what learning to program means? What are students' understandings of
concepts in object-oriented programming?
How do students use resources when learning computer programming and what are their experiences of the support they provide?
What motives to learn computer programming can be found among the students? Qualitative research approach
Info
rmat
ions
tekn
olog
i
Anna Eckerdal Institutionen för informationsteknologi
Outline
The study Phenomenography
Research question 1 (and 2): Datacollection, analysis and results
Content analysis Research question 4 (and 3):
Analysis and results Implications for education Future work
Info
rmat
ions
tekn
olog
i
Anna Eckerdal Institutionen för informationsteknologi
The study 14 first year undergraduate students in the
study program Aquatic and Environmental Engineering.
Participants chosen from a group with the aim to capture variation within the whole group concerning background knowledge, age, gender etc.
First programming course, using Java. Giving 4 Swedish credit points.
One hour individual semi-open interview, taperecorded, transcribed verbatim
Info
rmat
ions
tekn
olog
i
Anna Eckerdal Institutionen för informationsteknologi
Phenomenography(Marton & Booth, 1997)
Qualitative empirical research approach Developed from numerous empirical
studies in many subject areas Developed and used in education Takes the learners' perspective Aims at analysing and describing the
variation in students' understanding of phenomena
Info
rmat
ions
tekn
olog
i
Anna Eckerdal Institutionen för informationsteknologi
Phenomenography (cont.) Datacollection, usually semi-open
interviews Analysis on a collective level The researcher formulates the essence of
the understandings found with his/her own words as a limited number of qualitatively different categories of description
These categories show educationally critical aspects of the understanding of a phenomenon
Info
rmat
ions
tekn
olog
i
Anna Eckerdal Institutionen för informationsteknologi
Data collection, the interviews Questions on understanding of what
learning to program means• What do you think learning means in this
course?• What do you experience the course to be
about?• What has been most important to you in this
course?• What do you think was the aim for you when
learning to program?• What has been difficult in the course?
Info
rmat
ions
tekn
olog
i
Anna Eckerdal Institutionen för informationsteknologi
The phenomenographic analysis Look for patterns in the data of different
understandings of a phenomenon. Compare and group students' excerpts.
Qualitatively different categories of description in an outcome space
The analysis is on a group level, not aiming at presenting individual students' understandings, but the different understandings found in the group
Info
rmat
ions
tekn
olog
i
Anna Eckerdal Institutionen för informationsteknologi
Students' understanding of what learning to program means: categories of description1. To understand some programming language, and to use
it for writing program texts.
2. As above, and in addition learning a way of thinking, which is experienced to be difficult to capture, and which is understood to be aligned with the programming language.
3. As above, and in addition to gain understanding of
computer programs as they appear in everyday life.
4. As above, with the difference: learning a way of thinking
which enables problem solving, and which is experienced
as a “method” of thinking.
5. As above, and in addition learning a skill that can be
used outside the programing course.
Info
rmat
ions
tekn
olog
i
Anna Eckerdal Institutionen för informationsteknologi
Excerpts from the interviews"What does it mean to learn in this course?"
Student N: I think it is all about learning, partly the commands, fundamental commands I use, I have to remember them
Info
rmat
ions
tekn
olog
i
Anna Eckerdal Institutionen för informationsteknologi
Students' understanding of what learning to program means: categories of description1. to understand some programming language, and to use
it for writing program texts.
2. As above, and in addition learning a way of thinking, which is experienced to be difficult to capture, and which is understood to be aligned with the programming language.
3. As above, and in addition to gain understanding of
computer programs as they appear in everyday life.
4. As above, with the difference: learning a way of thinking
which enables problem solving, and which is experienced
as a “method” of thinking.
5. As above, and in addition learning a skill that can be
used outside the programing course.
Info
rmat
ions
tekn
olog
i
Anna Eckerdal Institutionen för informationsteknologi
Excerpts from the interviews"What does it mean to learn in this course?"
Student D: And I actually think that most of it [the course] has been difficult, but this very thought behind, it feels as some people just understand programming, it's something they... but I also think that some people who have been programming before have probably learned to think like that.
Info
rmat
ions
tekn
olog
i
Anna Eckerdal Institutionen för informationsteknologi
Students' under-standing of what learning to program means: categories of description1. to understand some programming language, and to use
it for writing program texts.
2. As above, and in addition learning a way of thinking, which is experienced to be difficult to capture, and which is understood to be aligned with the programming language.
3. As above, and in addition to gain understanding of
computer programs as they appear in everyday life.
4. As above, with the difference: learning a way of thinking
which enables problem solving, and which is experienced
as a “method” of thinking.
5. As above, and in addition learning a skill that can be
used outside the programing course.
Info
rmat
ions
tekn
olog
i
Anna Eckerdal Institutionen för informationsteknologi
Excerpts from the interviews"What does it mean to learn in this course?"
Student D: You just think of things like when you withdraw money from a cash point, kind of, then you start to think, okey, it's these steps, figures and the sum and kind of [...] No but those things that one starts to think a little about how certain things are built
Info
rmat
ions
tekn
olog
i
Anna Eckerdal Institutionen för informationsteknologi
Students' under-standing of what learning to program means: categories of description1. to understand some programming language, and to use
it for writing program texts.
2. As above, and in addition learning a way of thinking, which is experienced to be difficult to capture, and which is understood to be aligned with the programming language.
3. As above, and in addition to gain understanding of
computer programs as they appear in everyday life.
4. As above, with the difference: learning a way of thinking
which enables problem solving, and which is experienced
as a “method” of thinking.
5. As above, and in addition learning a skill that can be
used outside the programing course.
Info
rmat
ions
tekn
olog
i
Anna Eckerdal Institutionen för informationsteknologi
Excerpts from the interviews"What does it mean to learn in this course?"
Student G: To get to try, like, you learn to think in a special way, you learn problem solving. [...] It's problem solving.
Info
rmat
ions
tekn
olog
i
Anna Eckerdal Institutionen för informationsteknologi
Students' under-standing of what learning to program means: categories of description1. to understand some programming language, and to use
it for writing program texts.
2. As above, and in addition learning a way of thinking, which is experienced to be difficult to capture, and which is understood to be aligned with the programming language.
3. As above, and in addition to gain understanding of
computer programs as they appear in everyday life.
4. As above, with the difference: learning a way of thinking
which enables problem solving, and which is experienced
as a “method” of thinking.
5. As above, and in addition learning a skill that can be
used outside the programing course.
Info
rmat
ions
tekn
olog
i
Anna Eckerdal Institutionen för informationsteknologi
Excerpts from the interviews"What does it mean to learn in this course?"
Student E: Yes but it's that the more you know about computers the less dependent on others you'll be, sort of.
I: I see.
E: I don't know, if you work somewhere later and have some insight into things, then I think it'll open a window so that you know what it's about at least even if you don't, I mean, it's the pros that will deal with the real things.
Info
rmat
ions
tekn
olog
i
Anna Eckerdal Institutionen för informationsteknologi
Content analysis
Systematic categorisation of data according to a research question
Categories revised in feedback loops Not necessarily qualitatively different
categories
Info
rmat
ions
tekn
olog
i
Anna Eckerdal Institutionen för informationsteknologi
Students' motives to learn, interview questions What was your aim/purpose when using
this resource? Why did you use this resource? What has been most important in the
course? Plus other questions like what it means to learn in the present course.
Info
rmat
ions
tekn
olog
i
Anna Eckerdal Institutionen för informationsteknologi
Students' motives for learning to program. Excerpts from the interviews
Case students:
Student B: “I love to program because it's fun to program”
B: I just think it has been interesting to learn. I have sort of learned 10 times as much as I knew before. I have really really enjoyed it, so I have spent a lot of time at the computer.
Info
rmat
ions
tekn
olog
i
Anna Eckerdal Institutionen för informationsteknologi
Students' motives for learning to program. Excerpts from the interviews
Student A: ”I'm interested in concepts and to get a theoretical overview”
A: I think it is also to get the whole picture, to understand how a programming language is constructed, how the language is structured and how it is related with for instance C++ and that is also a bit more overarching. Detailed knowledge is also useful and to have tried, sort of to have had a taste, it is more the feeling and a bigger understanding
Info
rmat
ions
tekn
olog
i
Anna Eckerdal Institutionen för informationsteknologi
Students' motives for learning to program. Excerpts from the interviewsStudent K: ”I want to learn to program, it will improve my
problem solving ability”
K: What is good with courses like this is that one gets to practice problem solving. That is actually really good. One has a problem that one solves in different ways and thus one perhaps find the best way . That is one of the core things I think. Then that one should write in a programming language, this could perhaps be done in anyone. But the dealing with problems, the problem solving, that is something I think is important.
Info
rmat
ions
tekn
olog
i
Anna Eckerdal Institutionen för informationsteknologi
Students' motives for learning to program. Excerpts from the interviews
Student H: ”I'm going to the class because I want to join the fellowship in the group”
H: [..] When you are part of a class, then one wants to go to school, because that's... it is not just for the sake of Java, but also sort of the whole ting. I find it pretty fun to be at school and then... then it sort of leads to you going there and then when you been there a few times then you sort of don't want to miss the rest.
Info
rmat
ions
tekn
olog
i
Anna Eckerdal Institutionen för informationsteknologi
Students' motives for learning to program. Excerpts from the interviewsStudent E: ”I'm not interested in programming, but I
want to learn because I know I will benefit from it”
E: I sort of think that it is a good thing that all learn to program. [...] I'm sort of not the programming type of person. I can find it fun only when one sees the logic and constructive in it, but.. I get frustrated when it isn't so. [...] Yes but it's that the more you know about computers the less dependent on others you'll be, sort of. [...] I don't know, if you work somewhere later and have some insight into things, then I think it'll open a window so that you know what it's about at least
Info
rmat
ions
tekn
olog
i
Anna Eckerdal Institutionen för informationsteknologi
Discussion
1.Students' understan- 2.Students' understanding ding what it means of object and class to learn to program
Info
rmat
ions
tekn
olog
i
Anna Eckerdal Institutionen för informationsteknologi
Discussion (cont.) D: [...] I guess, it's just a rather different way of
thinking. [...] I've taken many math courses but math is kind of logical and you understand it but this is... no I don't know (laughter). No but I kind of think it's easier to study math. Then you often have something creative to base it on, or you don't, but you learn more methods and kind of, there is some theory behind. Here you feel as if you only learn a lot of examples. You know, we've gotten so many examples of everything, in some way it feels as if you don't understand the base from the beginning [...]
(my italics)
Info
rmat
ions
tekn
olog
i
Anna Eckerdal Institutionen för informationsteknologi
Discussion (cont.)
C: I don't know... I guess it's actually to solve a certain type of problem, it's rather like the math courses. Then learning different methods to solve them in different ways. Much like that, if you look back at the course it's not much actually but very, very fundamental.
(my italics)
Info
rmat
ions
tekn
olog
i
Anna Eckerdal Institutionen för informationsteknologi
Discussion (cont.)
1.Students' understan- 2.Students' under- ding what it means standing of object to learn to program and class
Mathematic education research: Introduced learning of concepts in terms of the 'process-object duality', (Sfard, 1991; Hazzan, 2003)
Info
rmat
ions
tekn
olog
i
Anna Eckerdal Institutionen för informationsteknologi
Discussion (cont.) D: “it's easier to study math [...] you learn more methods”
D: “the course, it's difficult too for a novice to get a good grip on how to study"
When learning object-oriented programming:
1. Object conception 2. Process conception 3. Component conception
Students' seem to need to reach the understanding of what learning to program means expressed in cat. 4 in the first outcome space: “Programming thinking” as problem solving.
Info
rmat
ions
tekn
olog
i
Anna Eckerdal Institutionen för informationsteknologi
Novice Students' Learning of Object-Oriented Programming:Discussion and results
4. Learning outcome of the concepts object and class
1.Students' understan- 3. Students' motives to ding of what it means learn to program to learn to program
2. Students' use of resources
Info
rmat
ions
tekn
olog
i
Anna Eckerdal Institutionen för informationsteknologi
Implications for education
Students need to discern “methods” to program
Educational critical aspects of object and class identified for use in the teaching
Important for students to follow a whole programming task: problem analysis, design, implementation, testing
Info
rmat
ions
tekn
olog
i
Anna Eckerdal Institutionen för informationsteknologi
Implications for education
Groups of resources used mainly in superficial/search-for-meaning ways
Possible for teachers to connect to different motives that promote learning
Info
rmat
ions
tekn
olog
i
Anna Eckerdal Institutionen för informationsteknologi
Future work Reseach on component-process-object-
conception in learning OO-concepts Identify Threshold Concepts within the first
programming course Identidy educational critical aspects of
these concepts Identify crusial aspects of becoming a
member of the Computer Science community/culture