370 likes | 446 Views
Anna Eckerdal Dept. of Information Technology Uppsala University Sweden. Novice Students' Learning of Object-Oriented Programming. Learning to program. is a complex activity!. Where lies the problem? Or - where is the solution?. - The teacher: subject knowledge, good notes,
E N D
Anna Eckerdal Dept. of Information Technology Uppsala University Sweden Novice Students' Learning of Object-Oriented Programming
Learning to program is a complex activity!
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.
My research interestTo give a broad picture of students' experience of their learning: What do students learn? How do they go about to learn?
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
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
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
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
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
Data collection, the interviews Questions on understanding of whatlearning 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?
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
Students' 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.
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
Students' 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.
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.
Students' 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.
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
Students' 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.
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.
Students' 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.
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.
Content analysis Systematic categorisation of data according to a research question Categories revised in feedback loops Not necessarily qualitatively different categories
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.
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.
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
Students' 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.
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.
Students' 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
Discussion 1.Students' understan- 2.Students' understanding ding what it means of object and class to learn to program
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)
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)
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)
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.
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
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
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
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