Title: Novice Students' Learning of ObjectOriented Programming
1Novice Students' Learning of Object-Oriented
Programming
- Anna Eckerdal
- Dept. of Information Technology
- Uppsala University Sweden
2 Learning to program
3Where 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.
4My research interestTo give a broad picture of
students' experience of their learning
- What do students learn?
- How do they go about to learn?
5Research 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
6Outline
- 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
7The 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
8Phenomenography(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
9Phenomenography (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
10Data 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?
11The 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
12Students' understanding of what learning to
program means categories of description
- 1. 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.
13Excerpts 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
14Students' understanding of what learning to
program means categories of description
- 1. 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.
15Excerpts 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.
16Students' under-standing of what learning to
program means categories of description
- 1. 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.
17Excerpts 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
18Students' under-standing of what learning to
program means categories of description
- 1. 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.
19Excerpts 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.
20Students' under-standing of what learning to
program means categories of description
- 1. 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.
21Excerpts 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.
22Content analysis
- Systematic categorisation of data according to a
research question - Categories revised in feedback loops
- Not necessarily qualitatively different categories
23Students' 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.
24Students' 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.
25Students' 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
26Students' motives for learning to program.
Excerpts from the interviews
- Student 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.
27Students' 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.
28Students' motives for learning to program.
Excerpts from the interviews
- Student 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
29 Discussion
- 1.Students' understan- 2.Students'
understanding ding what it means
of object and class to learn
to program
-
-
-
-
30Discussion (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)
31Discussion (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)
32Discussion (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) -
-
-
33Discussion (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.
34Novice Students' Learning of Object-Oriented
ProgrammingDiscussion 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
35Implications 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
36Implications for education
- Groups of resources used mainly in
superficial/search-for-meaning ways - Possible for teachers to connect to different
motives that promote learning
37Future 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