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 1Danh 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 2Although 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 3risks 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 4In 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 6Plan (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 7Customer 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 8understanding, 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 9interactions 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 10It 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