1. Trang chủ
  2. » Địa lý

A case study of applying scrum in teaching computer programming

12 3 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 12
Dung lượng 561,32 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

However, although all the Agile methods can provide a collaborative working environment in order to solve problems, to the best of our knowledge, only XP and Scrum have been used for t[r]

Trang 1

Danh Nguyen-Cong 1

Abstract: Context: Teaching and learning computer programming have

introduced many challenges to both lecturers and students in Computer Science

Objective: This paper presents a new computer programming teaching method Method: Based on Scrum software development method, students in a computer

programming course are divided into multiple teams Scrum emphasizes effective collaboration and communication between students within their team to complete

a list of required programming exercises The students are encouraged to find out

and share their solution with the team in order to gain more experience Results:

A case study that describes in detail an experiment in a first-year computer programming course is conducted to verify the benefits of the proposed method in terms of the improvement in students’ learning performance and attitude toward learning computer programming and to provide lessons learned

Keywords: Programming, Collaborative environment, Scrum, Teaching, students.

1 INTRODUCTION

All first-year students in Collage of Information and Communication Technology (CICT) at Can Tho university (CTU) are required to take a computer programming course named “Introduction to Programming” in order to achieve knowledge and practical skills about data types, commands, functions, algorithms, programming, logical thinking and problem solving, specifically in C language So far this course has been taught by using the traditional lecture-based teaching method In this way, each class, which consists of about 40 students, is scheduled in two sessions per week throughout a 15-week-long semester: a 2-hour lecture and a 4-hour lab In the former session, lecturers conduct lectures in classrooms by explaining concepts to the students and following this explanation with examples On the other hand, in the latter session, the students work on programming exercises in computer labs

1 Department of Software Engineering, Can Tho University, Vietnam, email: ncdanh@cit.ctu.edu.vn, mobile: (+84)0901165072

Trang 2

Although the above teaching method is expected to provide the students comprehension of theoretical background and practical skills, many students find

it hard to follow the course Most of them are new programming students and have

no prior experience to write a computer program or to solve programing problems

on their own Consequently, in the computer lab, they usually produce computer programs with many syntax or logical errors and spend much time to correct them Challenges in teaching and learning computer programming for beginners are very diverse Researchers have indicated that course difficulty, unfamiliarity with programming, lack of study motivation, lack of student preparation, poor self-learning ability, diversity in students’ self-learning ability, lack of interaction between students, large size classes, poor class participation, poor teaching methods, lack of effective learning methods, lack of interest in learning and so on are main reasons for poor learning performance of students [1, 2, 3] Teaching and learning computer programming in CICT face the same challenges as well Therefore, it has become an important requirement to propose a suitable and effective method to teach and learn this course

In this paper, the Scrum software development method is adapted and employed

as a strategy for guiding the students’ learning The objective is to create a learning environment that promotes both individual autonomy and group collaboration from which students’ learning performance and attitude are positively changed The rest of the paper is organized as follows Section 2 presents a literature review The proposed teaching method is described in Section 3 Section 4 provides experimental results The conclusion is given in Section 5

2 LITERATURE REVIEW

In the last decades, many different computer programming teaching methods have been proposed, such as problem-based learning [4, 5], puzzle-based learning [6, 7], prerecorded lectures (lectures are written on videos) [8], inverted/flipped classroom environment [9], game-themed programming [10], blended learning approach (on-line and face-to-face teaching and learning used for large classes) [11], befriending computer programming [12] and using educational software tools (Scratch, Logo, ToolKid, etc.) [13]

In software industry, Agile methods, including Scrum, Extreme Programming (XP), feature-driven development (FDD), Lean and so on, have been widely used and accepted as the de facto standard for software development [14] They are lightweight methods designed to develop software in short iterations, increase productivity, collaborate with customer, respond to changes and inherently reduce

Trang 3

risks in product development These methods follow the Agile manifesto introduced

in 2001 [15] The manifesto is given below:

1 “Individuals and interactions over processes and tools.”

2 “Working software over comprehensive documentation.”

3 “Customer collaboration over contract negotiation.”

4 “Responding to change over following a plan.”

Due to benefits gathered from Agile practices, the Agile methods have been also applied to create teaching and learning environments that are able to help the students achieve both technical and soft skills of their learning outcomes [2] Stamouli et al [16] reported that “80% of students prefer to ask their lecturer or

a friend when they encounter programming problems” To provide a collaborative learning environment, several studies have proposed to incorporate controlled processes of the Agile methods into teaching and learning activities In these processes, the students are encouraged to communicate in order to share solutions and opinions with others However, although all the Agile methods can provide a collaborative working environment in order to solve problems, to the best of our knowledge, only XP and Scrum have been used for teaching and learning computer programming Particularly, the authors in [2] showed that teaching and learning based on XP process can supply the students with opportunities to work together This is because, in this method, pair programming, where two students sit in front of a computer to together solve the same programming exercises, is applied Alternatively, in [17], the students follows the XP process to complete a software project Here, each student did not develop the entire project but rather a portion

of it The students finally will combine other students’ parts to complete the entire software They also share their thoughts to understand the parts written by the others Through these activities, the students can learn experience from each other The authors in [3] summarized positive effects of XP-based teaching methods such as promoting coordination among students, short time to complete writing code and less errors However, pair programming can cause discomfort and fatigue The coordination between two students may not be good if they have different programming skills

Unlike the above teaching methods, the use of Scrum in [18] aims at creating a teaching and learning environment that fosters self-regulated learning To achieve this, the students will not work together; instead, they will work individually on given programming exercises, submit their answers, and use feedbacks from lecturers and resubmission opportunities to adjust their learning strategies

Trang 4

In our study, Scrum is adapted to create a learning environment that promotes both individual autonomy and group collaboration The study will explores the effects of the proposed teaching method on students’ learning performance and attitude

3 PROPOSED TEACHING METHOD

The proposed teaching method does not try to replace the traditional lecture-based teaching method, but it is integrated into this method in order to promote preparation, active, self and collaborative learning of students It helps the lecturer manage and interact with the students as well

The rest of this section describes requirements, activities and how this teaching method can match with the Agile manifesto

3.1 Requirements

The following requirements should be satisfied so that the proposed teaching method is applied successfully:

- The computer programming course can be scheduled in only one lab session

or two sessions per week: a lecture and a lab session If two sessions are applied, the lecture session can be scheduled in a lecture classroom while the lab session occurs

in a computer lab

- The proposed teaching method is employed for the lab session

- There is no special requirement for the computer lab It can look (physically) like a conventional computer lab Figure 1 illustrates a computer lab with about 40 computers in CICT at CTU

Figure 1: A computer lab in CICT at CTU.

Trang 5

- Each student is assigned a computer during the lab session.

- Lecture notes, materials and programming exercises should be available to the students before the lab session

3.2 Activities

In the proposed teaching method, each class of about 40 students will be split into about 10 teams, each of which consists of about 4 students who are sitting on computers located close to each other in the computer lab In each team, one member acts as a team leader Figure 2 illustrates the class model organized for the Scrum-based teaching method It contains 10 teams (from 1 to 10), each of which has 4 students

In each lab session, each team will be required to solve a list of programming exercises First, the team leader will discuss with other team members to make a plan that determines the priority of the exercises (for example, the easy ones will be done before the hard ones) Given a list of four exercises, as illustrated in Figure 2, each

team may have its own plan Next, each team member can work individually and

collectively with others to write computer programs for the required exercises in their order Team members are encouraged to help each other to find out and share their solution with each other during the lab session

List of required programming exercises (Sprint backlog)

Exercise 1: …

Exercise 2: …

Exercise 3: …

Exercise 4: …

Plan (Sprint planning) of Team 1

Priority Exercise

Team 1

Trang 6

Plan (Sprint planning) of Team 10

Priority Exercise

Team 10

Figure 2: Class model organized for Scrum-based teaching method.

The lecturer plays a role of a customer who requires the teams to complete

the list of programming exercises and checks if their solutions satisfy the given

requirements

Result Report of Team 1

Exercise 1 Tuan, Dung, Sang, Nhan

Exercise 2 Tuan, Dung, Sang, Nhan

Exercise 3 Tuan, Dung

Exercise 4 Tuan, Dung, Nhan

Result Report of Team 10

Exercise 1 Bao, Binh, Cuong, Thang Exercise 2 Bao, Binh, Cuong, Thang Exercise 3 Bao, Cuong Exercise 4 Bao, Binh, Cuong, Thang

Figure 3: Result reports of teams.

At the end of the lab session, the team leader will write and return to the lecturer

a result report that records the exercises completed by her or his team members

Figure 3 illustrates the result reports of Teams (1-10) Based on these result reports,

the lecturer can grasp the students’ ability in mastering the taught concepts and

offers suitable responses, e.g., using a whiteboard to give hints for exercises that are

missed by most of the students or to suggest a student to learn from others

3.3 Compliance with the Agile Manifesto

To achieve the benefits of Agile practices, the activities done in a lab session

should match with the Agile manifesto This is presented in Table 1

Table 1: Matching between the Agile manifesto and the activities done in a lab session

Agile manifesto Activities in a lab session

Individuals and interactions over processes

Working software over comprehensive

Trang 7

Customer collaboration over contract

Responding to change over following a plan Scoping content and assisting individual students Team work on Sprint of Scrum: Sprint is the heart of Scrum It is a time-box

of one month or less in which team work is scheduled to be done In the proposed teaching method, a Sprint is limited within one 4-hour lab session Sprint planning

is time-boxed so that the team can complete a Sprint backlog, which is equivalent

to a list of programming exercises, to a maximum of four hours The Scrum master

is equivalent to the team leader who ensures that events takes place, e.g., making a plan to do the exercises, controlling discussions between team members, or writing

a result report at the end of the lab session

Programming to solve the exercises: Before each lab session, the students need

to undergo a lecture session In the lab session, exercises usually begin with examples with well-written code; the students are required to try them on their computer to understand concepts before writing their own code for the exercises without code

The students mainly concentrate on coding rather than on writing document for their work

Lecturer involvement: Lecturer plays a role as a customer who is engaged

and collaborates throughout the lab session During the lab session, s/he wanders around the computer lab, goes to each team, and checks whether their solutions meet the given requirements

Scoping content and assisting individual students: Based on the observations

during the lab session and the result reports, the lecturer can re-scope teaching content or assist individuals More programming exercises can be added into the next Sprint if most of the students have shown their good learning performance In contrast, some programming exercises can be removed or moved from one Sprint

to the next one Besides, several students may need a help from the lecturer or other students These responds should be performed during or after the lab session without having to wait until the end of the semester

4 EXPERIMENT RESULTS

The aim of the experiment is to evaluate the students’ learning performance when the proposed teaching method is applied The students’ learning performance

is usually evaluated based on two dimensions: programming knowledge and programming skills For the former, the students’ ability in remembering,

Plan (Sprint planning) of Team 10

Priority Exercise

Team 10

Figure 2: Class model organized for Scrum-based teaching method.

The lecturer plays a role of a customer who requires the teams to complete

the list of programming exercises and checks if their solutions satisfy the given

requirements

Result Report of Team 1

Exercise 1 Tuan, Dung, Sang, Nhan

Exercise 2 Tuan, Dung, Sang, Nhan

Exercise 3 Tuan, Dung

Exercise 4 Tuan, Dung, Nhan

Result Report of Team 10

Exercise 1 Bao, Binh, Cuong, Thang Exercise 2 Bao, Binh, Cuong, Thang

Exercise 3 Bao, Cuong Exercise 4 Bao, Binh, Cuong, Thang

Figure 3: Result reports of teams.

At the end of the lab session, the team leader will write and return to the lecturer

a result report that records the exercises completed by her or his team members

Figure 3 illustrates the result reports of Teams (1-10) Based on these result reports,

the lecturer can grasp the students’ ability in mastering the taught concepts and

offers suitable responses, e.g., using a whiteboard to give hints for exercises that are

missed by most of the students or to suggest a student to learn from others

3.3 Compliance with the Agile Manifesto

To achieve the benefits of Agile practices, the activities done in a lab session

should match with the Agile manifesto This is presented in Table 1

Table 1: Matching between the Agile manifesto and the activities done in a lab session

Agile manifesto Activities in a lab session

Individuals and interactions over processes

Working software over comprehensive

Trang 8

understanding, applying and analyzing concepts related to variables, data types, commands, functions, types of parameters of a function and so on is examined using multiple-choice questions On the other hand, to evaluate the programming skills, each student needs to write programs on a computer to implement required functionalities

In CICT at CTU, the multiple-choice questions for examining the programming knowledge are made based on what are taught in the lecture sessions In our proposed teaching method, these sessions are still taught using the traditional lecture-based teaching method while the lab sessions apply the Scrum-based teaching method Therefore, in this experiment, we only evaluate the students’ programming skills Two classes of students who are studying “Introduction to Programming” course in Semester 2, 2019 participate in the experiment: Class 1 consists of 39 students; Class 2 consists of 40 students For both two classes, the lecture sessions are taught by using the traditional lecture-based teaching method However, for the lab sessions, the first class is taught by using the conventional teaching method, i.e., each student is assigned a computer to work individually, while the second class is taught using the Scrum-based teaching method

Table 2: Results of the programming skill tests on two classes

Traditional lecture-based teaching Class 1 39 7.28 2.67

Scrum-based teaching Class 2 40 7.58 2.52 Tests given to the students of two classes have the similar difficulty levels A grade is given (for each C program written by a student) on a scale from 0 to 10 with

10 being the highest and 4 being the minimum passing grade The results of the programming skill tests on two classes are given in Table 2 On average, the grade mean of Class 1 is 7.28 while that of Class 2 is 7.58 Thus, the proposed teaching method has improved the programming skills on average by 3 percentage units Furthermore, at the end of the semester, we also perform a survey of the students in Class 2 to determine their views on the proposed teaching method during the lab sessions Table 3 presents the questionnaire and results The students believed that collaborative working with friends was beneficial (questions 1) A 45.71% of the students thought that “highly” regular interactions with friends is needed while the same number of the students said that a “very high” level of that is necessary Similarly, a 57.14% thought that it needs a “high” level of regular interactions with the lecturers (question 2) Only a 34.29% felt that a “very high” level of regular

Trang 9

interactions with the lecturer is needed This indicates that the students have been supported well by their team so they may not need very regular interactions with the lecturers

Table 3: Results of the questionnaire (questions answered by Class 2: 40 students)

No need Low Medium High Very high

Question 1: What level is needed

for regular interactions with friends to

discuss how to solve the exercises? 0% 0% 8.57% 45.71% 45.71%

Question 2: What level is needed for

regular interactions with the lecturer to

discuss how to solve the exercises? 0% 0% 8.57% 57.14% 34.29%

Question 3: What level is needed for

providing a list of the required exercises

Question 4: What level is needed

for understanding all the necessary

programming theory before starting to

work in the lab session?

A 54.29% believed that a “high” level is needed for providing a list of the required exercises in each lab session while only 25.71% said that this list is “very highly” needed (question 3) The diversity in students’ learning ability may be a challenge for us to choose a suitable list of programming exercises for the teams For question 4, a 54.30% agreed that a “high” level is needed for understanding all the necessary programming theory before starting to write computer programs

5 CONCLUSION

In this paper, a Scrum-based teaching method for teaching computer programming is proposed It aims at being applied for teaching the lab sessions rather than the lecture sessions The experimental results showed that on average, the Scrum-based teaching method can improve students’ programming skills by nearly 3 percentage units when compared to the conventional teaching method While no statistically significant differences in term of the students’ programming skills between these two methods, some other benefits are achieved

The proposed teaching method can create a teaching and learning environment that increases preparation, active, self and collaborative learning of the students

Trang 10

It offers the lecturer a mean to manage, interact and grasp the students’ learning performance in achieving both technical and soft skills of their learning outcomes Especially, s/he can make immediate responds based on the students’ learning performance during the semester

Although the proposed teaching method benefited the students and the lecturer There are some limitations First, the lecturer needs to spend time to play a role of a customer during the lab sessions and to review the students’ result reports Second, the lecturer has to respond to the students’ learning performance by re-scoping teaching content or assisting individuals

For future work, to save time of the lecturer, we plan to employ a Web-based application that is able to allow the lecturer to manage the programming exercises and the teams, to collect and analysis the result reports We also plan to apply the proposed teaching method for other courses, e.g., C# Programming, to further validate the proposed teaching method

6 REFERENCES

1 Kofi Adu-manu Sarpong, John Kingsley Arthur and Prince Yaw Owusu Amoako Causes of Failure of Students in Computer Programming Courses: The Teacher Learner Perspective International Journal of Computer Applications

77(12):27-32, September 2013

2 Bassey Isong A Methodology for Teaching Computer Programming: first year students’ perspective I.J Modern Education and Computer Science, 2014, 9,

15-21 Published Online September 2014 in MECS (http://www.mecs-press.org/)

3 Mohorovičić, Sanja & Strčić, Vedran (2019) An Overview of Computer Programming Teaching Methods Proceedings of the 22nd Central European Conference on Information and Intelligent Systems 2011

4 Nuutila E, Torma S, Malmi L PBL and Computer Programming - The Seven Steps Method with Adaptations Computer Science Education, Vol 15, Issue 2,

2005, pp 123-142

5 Wu Y Applying a hybrid problem-based learning method to the teaching of computer programming The China Papers, Issue 6, 2006, pp 63-66

6 Merrick K E: An Empirical Evaluation of Puzzle-Based Learning as an Interest Approach for Teaching Introductory Computer Science, IEEE Transactions on Education, Vol 53, No 4, 2010, pp 677-680

Ngày đăng: 17/01/2021, 09:44

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w