Contextualization of Programming Learning: A Virtual Environment Study
Abstract
In this paper, it is presented a study concerning about the use of the three-dimensional virtual world Second Life (SL) to visualize and contextualize the learning of computer programming. SL allows students to use avatars to create 3D objects and program their behaviours, process data, and interact with external servers, using Linden Scripting Language (LSL), a language with C-like syntax and a state machine. Scripts can execute concurrently, and several students can simultaneously work over the same object and/or script. Through action research, we explore and analyse the potential of SL for teachinglearning introductory computer programming in
INTRODUCTION
Many software tools have been built and tested with the main goal of improving teaching and learning activities, and the subject of computer programming is no exception. Nevertheless, teachers have continued to seek new ways to overcome difficulties met by novice students when initiating the study of programming concepts. Recent technological developments raise new opportunities in the educational field, such as the three-dimensional (3D) virtual world which provides educators an accessible means of creating a rich and compelling 3D context for situating learning, communicative tools to support
MOTIVATION AND RELATED WORK
Learning how to program a computer is a difficult and demanding task. To become good programmers, students have to acquire several skills far beyond the syntax and semantics of the underlying programming language [6]- [7]. Students need to know how to solve problems and learn to elaborate algorithms, which make the computer programming learning process difficult. In fact, many students experience difficulties which result in high levels of failure in introductory programming courses typically taught in the beginning of computer science studies. Several research studies can be found concerning the causes of this failure [8]-[9]-[7]. One of the reasons mentioned is that many students entering their first
Visualization has been proposed as a way of reduce students’ difficulties. Several studies have been published trying to evaluate how visualization could help programming learning and which type of visualization and accompanying material are more effective [14]-[15]. Although it is possible to find studies with contradictory conclusions, it is also probable to find interesting suggestions and comments. For example, Hundhausen [14], in his visual feedback study, concluded that, at least in the case of novice imperative programming environments, the benefits of delivering a continuously updated visual representation of a program’s execution may fail to justify the substantial costs of implementing such feedback. Andries van Dam [16] defends that visualization and visual tools in learning help students to understand better the concepts because physical, spatial or visual representations are easier to retain and manipulate. Having an immediate display of the results of an action, students can find out at once if their idea is right or wrong. If it is wrong, in that case they have to correct, rethink their solutions and consequently this will stimulate their critical thinking [4]-[17].
Papert’s LOGO [18] language creates a mathematical world in which principles of geometry are visible. LOGO offers students the opportunity to create a line drawings with an electronic turtle displayed on a screen. In this environment, users can receive an immediate feedback about their programs, easily determine what has happened, quickly spot and repair errors and can experience creative satisfaction. Karel, The Robot [19] uses the same principles, and it is a programmable visualization software robot. The robot executes a sequence of commands that the user has written as part of a program moving about two-dimensional grid. Alice is a 3D interactive graphics programming environment for windows [20]. It is also an object-oriented by writing simple scripts which its users can control object appearance and behaviour. The benefits of using it allows students to be involved and at the same time have the ability to develop an intuitive understanding of basic concepts in a visual feedback environment [21]. These results influenced some of the opinions we have had when we think about using 3D virtual world Second Life (SL) as an environment to teaching / learning a programming language. Before we proposed the utilization of SL to our students and colleges, we felt the need to do a study with the aim to explore the viability of this environment. In the next section we will present the experience that we have been developing.
DESIGN AND METHODS
The main objective of this study is to find out if and how could SL be used as a platform for teaching / learning the
I .Participants
Our participants are computer science students from the University of Trás-os-Montes e Alto Douro (UTAD), in Vila Real, Portugal, and of the Higher School of Engineering and Management (ESTG – Portugueselanguage acronym) of the Polytechnic Institute of Leiria, Portugal, as elective alternative assignments on the compulsory subjects: Laboratório de Informática I of the 1st curricular year (Lab I); Laboratório de Informática II (Lab II) and III (Lab III), of the 2nd curricular year (at UTAD); and Projecto I, (at ESTG). In all cases, these subjects have their main aims to allow students to develop
The A-group students, at the UTAD, were enrolled in the 1st year, 2nd semester, at an initial stage of learning how to program, even though they had been exposed in the previous semester to introductory aspects of the programming, in about 30% of two subjects (vd. table 1). The project made in SL was the first contact with a programming project (not just an exercise) for these students.
The B-group students were more advanced in learning how to program: at the UTAD, they were enrolled in the 2nd year, 1st semester, and had studied in the previous semester introductory aspects of the C programming language and developed a command-line project in C, and while participating in this research they were also taking a course on object-oriented programming in C++. At the ESTG, students were enrolled in a post-secondary technical course (CT) and had previously studied C programming (vd. table 1). The project developed in SL was their first project (i.e., not just an exercise).
The C-group students, at the UTAD, were enrolled in the 2nd year, 2nd semester, and thus at a more advanced stage of learning how to program: they had completed courses in C and C++ programming, and developed a command-line project in C++ (vd. table 1). Although still requiring teacher support often, these students had already some autonomy in using and studying programming.
In the exploratory research participated 5 students from group A and 4 students from group C, in both cases from UTAD. In the first and second action-research cycle, students were only of group B (10 students from UTAD and 6 from ESTG).
II. Materials and tasks
All participants worked on Pentium IV computers running the windows XP operating system, with 1 GB of RAM and
somewhat limited bandwidth. We proposed a project for students to develop, i.e. we specified what kind of object should be devised, including features and behaviour, and students had to construct objects following thisspecification.
II.I Programming environment
The programming environment was SL itself, not any offline editor. SL is a persistent on-line 3D virtual world conceived by Philip Rosedale in 1991 and it is publicly available since 2003 [26]. It allows large numbers of users to connect, interact and collaborate simultaneously at the same time and (virtual) space. Figure 1 shows a typical programming session in this research: we can see 6 avatars on black rugs (students programming) and two other – teachers’ avatars.
SL programming is done with a scripting language named Linden Scripting Language (LSL), which has Cstyle syntax and keywords. 3D objects created in SL can receive several scripts that are executed concurrently. Each script has its own state machine: program flow is sequential, but structured by triggering events and responding to them (through either environment interactions or programmatic components), besides common methods from imperative programming, such as
III.II Procedure
The project was presented to all students in the first session, after which some students volunteered to participate in this research. From this point on, they formed groups of two elements and developed their projects inside SL, collaborating with each other. Teachers and students met in-world once a week, for about two hours, to keep track of students’ progress, exchange ideas and make suggestions. Face-to-face meeting did not take place, because the teachers-researchers were in Leiria and the students in Vila Real, 270 km apart. Once a month we meet us at Vila Real to talk about the project.
The general procedure for a given virtual world sessions was as follows. Upon arriving at their virtual lab section, students inform the teacher (on-line), what doubts they may had and what they had been done in the project, since last section and then they continued their work. When students had some difficulty about the code they had implemented, they shared it with the teacher, so they could observe and at the same time find out what was wrong and follow the teachers’ indications/instructions. In this way, the students corrected the code and went on. At the beginning of a lab session, the teacher explained the concepts that students had doubts and stimulated them to find out the solution to their problems. At the closing of the session, the teacher said what they have to do during the following week.
PRELIMINARY FINDINGS
In the pre-exploratory research several difficulties were found:
Teacher’s perspective:
1. Managing communication amongst participants – a public chat was used to communicate and when there were more than two people talking at the same time, which turned it difficult to understand who was saying what;
2. Spatial arrangement of student avatars - students were disperse on the lab space, so teacher avatar had to move very often near one group of students to observe and explain the doubts that they might have and then move again around to another group. This way, teacher might lose the notion of the global class.
3. Discovering students’ difficulties during selfstudy - Outside the weekly guidance session, the students kept on developing their work and in the following lesson, they could tell the teachers the difficulties they had faced and present what they had already done. For a better guidance, it would be useful to have a mechanism that could inform the teacher, by email or another outside system, about what the students had done throughout the week, the difficulties they had felt and attempts to overcome them.
Students’ perspective:
1. Difficulties using the SL interface – students felt some difficulties in the use of the SL editor, for instance, how to link, copy or to line up the objects.
2. Understanding compilation errors and LSL semantics - students who were in the beginning level of the study felt some difficulties to understand the LSL semantics and deal with the compilation errors.
3. Selecting adequate library functions for object control- The biggest/greatest difficulty felt by students in advanced level consisted in selecting the functions to use and implement one kind of functionality. By reflecting upon these problems, we devised a first structured approach to prevent, minimize or tackle them, forming the basis for the first cycle of action research. During this cycle, different computer classes (B group from UTAD and ESTG), employed LSL/SL to develop two kinds of projects: programming motions and behaviours, and more traditional text data processing. In
The 1st and 2nd problems reported in pre-exploratory research, in teacher’ perspective, were completely solved. To communicate, we made the following procedure: a public chat has been used only by a teacher to explain contents or give advices to all students; a private channel called instant message has been used by the teacher and students to communicate individually among them. Students said they liked this way of communicating because they felt they had a private teacher and could put their doubts without feeling embarrassed to be lagging in relation to the others. In the teacher’s point of view, a deep connection was set up between teacher and pupil and that is not so easy to achieve in traditional classes. Students, in the virtual lab session, were distributed around the teacher in areas of work that were defined by a black rug. In this way, and because of the communication mechanisms that were used, the teacher doesn’t have to move around and
The problems found in the students’ perspective were partially solved. To the students from A and B groups, it was decided that they should begin with simple examples that they had to try and modify. Every time they had difficulties in understanding it, some explanations were made in each part of the code. Therefore, students could understand what these small programs could do and the objective of each one. According to the personal experience of the programming teachers and by the literature read in this area [10], it is known that this situation is difficult to reach when students learn to
CONCLUSIONS
This study has not finished yet. We are still working with one more group of students. The current findings from these efforts indicate that 80% of participants had a bad experience in learning a programming language and because of that they want to try a new form of learning. This shows a few dissatisfaction by the way students learn a programming language, Lethbridge [13] refers the number of students in computing disciplines have decreased in U.S. since 2000, and points out some reasons for that such as: young people are so immersed in computers that they do not see the excitement to them any
Throughout our study, we observed that students are more interested and motivated in learning, so we are in tune with Lethbridge [13] when he says it is necessary to improve the education of software engineers. This study is a first step in that direction because the students who are studying in a traditional way feel unmotivated and don’t understand the reason why they have to learn writing code. Morgado [27] points out that SL, a cutting-edge technologically advanced 3D immersive environment, may harbour opportunities for powerful “back to basics” learning of introductory programming, in terms both of content and context: content - SL coding employs simple devices and practices, without complex development environments or complex compiler errors, with immediate perceptual feedback; and context - beginners’ applications are quite similar in look and feel to experts’, as it was the case in the old days before the graphic users’ interfaces. As future work and research to be developed, we point out the need to find out an automatic mechanism that