Proceedings of the 3rd International Conference of Teaching and Learning (ICTL 2011) INTI International University, Malaysia ADOPTING THE COOPERATIVE LEARNING METHODOLOGY TO DELIVER PROGRAMMING SUBJECTS Deshinta Arrova Dewi1 and Omar Mohammad Ali2 1 INTI International University, Malaysia (deshinta.ad@intimal.edu.my) 2 Universiti Kebangsaan Malaysia (qomar84@yahoo.com) ABSTRACT The research will suggest the cooperative learning methodology as an alternative way to deliver programming subjects. Study shows that programming subjects mostly deliver in traditional method in which the lecturer will be the centre of the whole learning process in a classroom or laboratory. The lecturer explains the concept to the students and later provides tutorials or exercises that are designed to be completed individually. This activity basically sharpens skills in programming language, but the students lack experience in other skills such as communication skills, presentation skills and ability to work in a team. Cooperative learning has proven to be a successful teaching methodology which uses small group based activity. Small teams of different levels and ability can accommodate a variety of learning to improve the understanding of a subject. Each member of a team is responsible not only for learning what is taught but also for helping teammates learn, thus creating an atmosphere of achievement. Students work through the assignment until all group members successfully understand and complete it. [3][5][11] Adopting this methodology will be a big challenge since the nature of programming subjects is more towards individual learning in a way the flow of a program or information will be influenced mostly by specific way of individual thinking. When N students are doing the exact same requirement of a program, there is huge possibility that N version of programs will be produced, as a result of N ways of thinking. The students are not familiar with the work of the course mates while executing ideas or solving problems. That is why many industrial people believe that good programmers are normally silent individuals. They are known to be good in coding but very passive in sharing ideas, expressing needs and exchanging knowledge. Cooperative Learning promotes team work that is feasible to be adopted by subjects with different nature. However, it requires strong commitment and creativity from both the lecturer and the students. Specific to the programming subjects, the students should finally come to believe that working in a team will benefit them more than working individually. [3][5][11] KEYWORDS Keywords: Cooperative Learning, Programming Subjects, Teaching and Learning Methodology, Team Work Skills, Academic Achievement, Group Activities. . 1 Proceedings of the 3rd International Conference of Teaching and Learning (ICTL 2011) INTI International University, Malaysia PROBLEM DESCRIPTION For many years Computing students in INTI International University react negatively towards programming subjects. This is reflected in poor attendances throughout the semester, passivity in classroom or laboratory, late submission of assignments, poor performances on time constraint assessment and high failure rate of overall programming subjects. Our preliminary investigation shows that this is due to higher stress level of students compared with those learning non-programming subjects. On the other hand, a small percentage of them do able to follow programming subjects well and also able to acquire skills such as logical thinking skill, problem-solving skill, and programming skill. However, this group of students prefer to work alone and unable to communicate or share their program codes with others. They lack of communication skill as well as ability to work in a team. Preliminary investigation showed that students’ success rate is higher if tutors varied their teaching methods instead of relying on purely didactic approach. Students tend to enjoy more if they could participate actively and express their opinions. The characteristic of Active Learning are[1][2][9]: a. Students read, speak, listen, think deeply and write, b. Students integrate new information, concepts or skills into their own mental schema, though rephrasing, rehearsing and practice, c. Students analyse, synthesize and evaluate information. By adopting the Active Learning characteristics into teaching learning processes, the chance for programming students to acquire variety of academic skills is better. From the industry perspective, computing graduates and industries cannot live without each other. Markets dictate the necessity of change in industry and the recognition of team work, communication skills along with some other new criteria by industries. This, once again put computing faculty especially in the field of programming in position of evaluating and reevaluating teaching style, active learning, curricula, etc. [3] Many types of active learning have been suggested, for example, collaborative learning, cooperative learning, problem based learning, inquiry learning, etc. However, our study has recommended the cooperative learning to be used in the programming classes. Our rationale[3][5][11]: a. Cooperative Learning promotes Active Learning because it is a student-centred and hands-on approach to learning where the student is the prime focus in the teaching and learning process. b. Cooperative Learning provides opportunities for students to cross-fertilize between one subject and other components of their curriculum and the outside worlds. Effective Cooperative Learning strategies offer students the opportunities to make informal connection with things they have already learnt. c. Cooperative learning promotes creative thinking. Students have to talk and share ideas with friends and this promotes a feeling of enjoyment and accomplishment 2 Proceedings of the 3rd International Conference of Teaching and Learning (ICTL 2011) INTI International University, Malaysia among students. Not only the numbers of ideas are increased, but the quality of ideas is also enhanced. d. Cooperative learning challenges students to develop entrepreneurship minds. The entrepreneurial mind is open and flexible, seeks new ventures and possibilities, able to adjust to new demand and challenges, prepare itself to survive and even thrive in rapidly-changing conditions. e. The challenges of the new millennium are to find ways to achieve international and better intercommunity cooperation. Given that the majority of students who learn programming subjects are unable to practice various academic skills other than programming skill, this research aim to recommend Cooperative Learning methodology to be adopted in Programming Classes. Our approach will be to designate class activity, lab activity and assignment with adequate consideration towards the behaviour of the learners. THE BEHAVIOR OF THE LEARNERS In the 1970’s, Anthony F. Gregory and Helen B. Ward [3] investigated the behavior of learners within the classroom. They found out “People learn both through concrete experiences and through abstraction." Both of these modes have two sub divisions, "sequential" and "random" preference. So, they believe, there are four distinct learning patterns. Each of this group has many characteristics, personalities, and behaviors. [1][2][3] I. Concrete Sequential (CS): Unwilling to try new things, just following the leader just because that person is in charge. Relate best to the physical, hands-on world. Order the world in a step-by-step fashion. Complete work with accuracy. Make decisions based on the facts they observe. Want learning and activities to be useful. They like clearly ordered presentations and a quiet atmosphere. They would rather work on a group than to join a group to discuss an idea. This group of learners has some difficulty in a cooperative learning environment, to certain extent due to those underlined characteristic. II. Concrete Random (CR): Are motivated by the process of discovering the answers to problems, have many different ideas and interests, are flexible and seek possibilities, they like to be the leader and set the course, they are not to be controlled easily by others, they want to probe and examine on their own, they like to find out ordinary answer, they find solutions to problems without following a step-by-step procedure, they would rather test to see if something works by actually trying it out, they give their best in class that uses many types of sources, investigations, and problem solving approach. This group of learners is common among engineering students. The underlined characteristics may not fit well into a cooperative learning environment. III. Abstract Sequential (AS): They like to talk about ideas rather than detailed points., They like to debate match perceptions with others and want to develop assignments thoroughly. They would rather think through an idea than work on a project. They 3 Proceedings of the 3rd International Conference of Teaching and Learning (ICTL 2011) INTI International University, Malaysia want lecturers to be experts, hold themselves to very high standards. They tolerate few mistakes. They accept only "A" for themselves. They are very sensitive to criticism. A symbol or picture is worth a thousand words to them, they learn well from authorities. This group of learners may have better chance to work in a cooperative atmosphere. The underlined aspects of their behavior will certainly create some problems. In fact, these viewpoints are not welcome in a cooperative learning environment. Whoever they are, we may have only a few of them in computing, engineering or technology classes. IV. Abstract Random (AR): They like to discuss ideas with others. They get involved with group projects. They look for cooperative groups. They suggest alternative ways of looking at things. They are flexible and adaptable. They work to please others, and to create and develop special relationships with others. They like to share experiences, and they prefer freedom from rules and guidelines. This is an excellent group that matches totally with the concept of cooperative learning. They have a lot of potential and they could gain a great deal more through cooperative learning than any other group. Unfortunately, we do not see many of them in engineering or technology classes. Engineers need a rule and guideline to analyze, test, design, and build a product. Without rule and guideline, they have difficulty knowing where they should start, how to follow phenomena, and how to make things work. Obviously, some learners may find themselves in more than one category. This is not a major issue in cooperative learning. To adopt cooperative teaching / learning or any other style, it requires a careful investigation about the type or category of student that we are dealing with, their feeling and reaction, their background, and most importantly, their learning style. Student’s behavior toward learning is a function of the learning environment. If they are not satisfied with it, there will be no effective learning method for them. VARIOUS WAYS OF ADOPTING COOPERATIVE LEARNING In the Johnson and Johnson model of cooperative learning, there are five essential elements: positive interdependence, face to face interaction, individual accountability, social skills and group processing. [3][4][5][6][7][8] The description shown in the figure below is a structural model drawn from Johnson and Johnson with five pillars of Cooperative Learning. 4 Proceedings of the 3rd International Conference of Teaching and Learning (ICTL 2011) INTI International University, Malaysia Cooperative Learning Positive Interdependence Face-to-Face Interaction Individual Accountability Social Skills Group Processing We need contributions from each of my team member if we’re doing succeed. How I think, talk and act toward my team member will influence how well we perform. Although my team members can ask help with the assigned task, my individual performance/contribu tion will shape my grade Working effectively together as a team means that I need to improve my interpersonal skills. Our team has to reflect on its performance and think together about how we might improve. Figure 1. The elements of Cooperative Learning The Adoption of Cooperative Learning in INTI International University At the moment we are experimenting with Cooperative Learning methodology to deliver and assess TWO (2) programming subjects involving student at different level for January-April 2011 session in INTI International University, at Faculty of Engineering and Information Technology (IT Division). The following classes are involved: Program: Degree Level-3 – INTI IU & Coventry University Subject: CT370/CS3223 Concurrent Programming & Real Time System Design – Java Programming (5 credits) Program: Degree Level-2 – INTI IU & Bradford University Subject: ICT4219 Concurrent & Real Time System – Java Programming (4 credits) The Delivery of Programming Classes The five pillars of Cooperative Learning are: Positive Interdependence, Social Skills and Group Processing: is the belief by each individual that there is value in working with other students and that many individual learning and work products will be better as a result of collaboration. Concise Practice: Asking a group of students to reach consensus answer over one problem solving case study. Face to Face Interaction: is a very important element because Positive Interdependence alone does not generate the degree and intensity of interaction required in Cooperative Learning activity. Concise Practice: Form heterogeneous groups so that different individuals have more to learn from each other than in homogeneous group. The group to generate possible application of a concept introduced in class. 5 Proceedings of the 3rd International Conference of Teaching and Learning (ICTL 2011) INTI International University, Malaysia Individual Accountability: is the belief by each individual that she/he will be accountable for his/her performance and learning. Concise Practice: posing a question or a problem and randomly calling on specific individuals to give an explanation after talking about the question or problem in a group. The Cooperative Learning Assessment: Sample of CT370/CSC3223 The students were divided into groups and each group comprises not more than three (3) students. Should a group consist of TWO students, then the marks would be adjusted accordingly. Two sections were created in this assignment. Section A is a Group Work and Section B is an individual work. All students have to complete both sections in order to obtain full marks. The underlined statement is the point of adoption Cooperative Learning Methodology into the assessment of this course. The complete assignment specification is shown in the table below. Section A. Group Work ( Max 3 students) total marks = 70% (30% design, 40% programming) The African Baboons A student majoring in anthropology and minoring in computer science has embarked on a research project to see if African baboons can be taught about deadlocks. She locates a deep canyon and fastens a rope across it, so the baboons can cross hand-over-hand. Assume that the rope bridge spans in the East-West direction.Passage along the rope follows these rules: Several baboons can cross at the same time, provided that they are all going in the same direction. If eastward moving and westward moving baboons ever get onto the rope at the same time, a deadlock will result (the baboons will get stuck in the middle) because it is impossible for one baboon to climb over another one while suspended over the canyon. If a baboon wants to cross the canyon, he must check to see that no other baboon is currently crossing in the opposite direction. When a baboon that wants to cross to the east arrives at the rope and finds baboons crossing to the west, the baboon waits until the rope in empty (free), but no more westward moving baboons are allowed to start until at least one baboon has crossed the other way. Illustrate the Baboon situation with the help of a Petri Net diagram. Design the solution by using UML diagram. Implement your design into a proper code of program. Your program should avoid deadlock and starvation. Section B. Individual Work (each program carries 10%, total = 30%) Each member of a group should attempt a different task. Task 1. Modelling a Car Park A controller is required for a car park, which only permits cars to enter when the car park is not full and does not permit cars to leave when there are no cars in the car park. You are required to create a program to implement the above scenario. You need to identify threads and monitors. • Thread - active entity which initiates actions • Monitor - passive entity which responds to actions Task 2 Modelling a Museum Entrance A museum allows N visitors to enter through the east entrance and leave through its west entrance. Arrivals and Departures are signalled to the museum controller by the turnstiles at the entrance and exit. At opening time, the museum director signals to the controller that the museum is open and the controller permits both arrivals and departures. At closing time, 6 Proceedings of the 3rd International Conference of Teaching and Learning (ICTL 2011) INTI International University, Malaysia the director signals that the museum is closing at which point only departures are permitted by the controller. The museum is locked once everyone has left. Provide a program controller by using Java thread programming. Task 3 Modelling a Shared Saving Account A savings account is shared by several people. Each person may deposit or withdraw funds from the account subject to the constraint that the account balance must never become negative. The savings account should be implemented using a monitor. The Assessment Criteria has been designed to incorporate group and individual effort to complete all given tasks. A substandard performance of a group member will influence the overall group performance. Assessment Criteria Total Marks Section A. Design (30m) 1. Illustration using Petri Net & Firing table 2. The idea of overall solution 3. Design specification 4. Solution using UML diagram 5. Clarity, neatness, accuracy Section B. Programming (40m) 6. The effectiveness of program code 7. Solving problem using concurrency design 8. The synchronization technique 9. No starvation ,deadlock & race condition issues 10. Output completion, accuracy & format 7 5 5 7 6 8 8 8 8 8 Section C. Programming (30m, 10m each) The Car Park 11. The effectiveness of program code 12. Solving problem using concurrency design 13. The synchronization technique 14. No starvation ,deadlock & race condition issues 15. Output completion, accuracy & format The Museum 16. The effectiveness of program code 17. Solving problem using concurrency design 18. The synchronization technique 19. No starvation ,deadlock & race condition issues 20. Output completion, accuracy & format The Shared Account 21. The effectiveness of program code 22. Solving problem using concurrency design 23. The synchronization technique 24. No starvation ,deadlock & race condition issues 25. Output completion, accuracy & format 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 Total 100 The External Examiner Comments: sample for CT370/CS332 While the role of the external examiner varies with the level of examination, the purpose of the system remains the same: to ensure that standards are kept the same across collaboration universities, and to provide an assurance of fair play given that internal examiners might be 7 Proceedings of the 3rd International Conference of Teaching and Learning (ICTL 2011) INTI International University, Malaysia bias or prejudiced. By convention, and often as a rule, if examiners disagree the view of the external examiner takes precedence. Below is the External Examiners comment on CT370/CS332 in January 2011 session. He mentioned clearly the coursework was quite demanding. The level of difficulty for this course has increased due to the adoption of Cooperative Learning Methodology. Figure 1. The External Examiner Comment The Passing Rate The passing rates for both courses are 100%. The highest grade is A and the lowest is D for CT370/CS332. Whereas for ICT4219, the highest grade is A and the lowest grade is C. This proved that the Cooperative Learning Methodology could be adopted in Programming Classes with full commitment from the lecturer to ensure the process goes smoothly. CONCLUSION This paper has shown the way of incorporating Cooperative Learning Methodology into Programming Classes. In relation to the five pillars of Cooperative Learning Methodology, lecturers may initiate variety of Active Learning approaches to ensure students participate individually and in groups. This activity helps students to acquire variety of academic skills and improve their employability in the future. The lecturers should anticipate resistance from students if they incorporate cooperative learning activities in their classrooms. Initially it is because everybody resists doing something different. Approaches to anticipating and addressing student resistance are provided in a description of active/cooperative learning in a digital logic course [9], a widely referenced paper by Felder and Brent [10], and in Cooper et al [11]. Although excellent details are provided in these references, lecturers are encouraged to describe their reasons for the change, particularly on how it benefits the students. Also ask students for input regarding potential problems, and input on addressing potential problems, and to incorporate some of their input.[9][10][11] 8 Proceedings of the 3rd International Conference of Teaching and Learning (ICTL 2011) INTI International University, Malaysia REFERENCES [1] Coffman, S.J. (2003). “Ten strategies for getting students to take responsibility for their learning”. College Teaching, 51(1), 2-4. [2] Gregorc, Anthony F., and Ward, Helen B. (2007). Implications for Learning and Teaching- A New Definition for Individual. NASSP Bulletin, Vol.61, No. 406, pp. 20-23. [3] Johnson, D.W., Johnson, R., and Smith, K. (2008). Active Learning: Cooperation in the College Classroom. Edina, MN: Interaction Book Co. [4] Johnson, D.W., and Johnson, R.T. (2004). Circles of Learning. Washington, DC: Assoc. Supervision and Curriculum Dev. [5] Johnson, D.W., Johnson, R.T., and Smith, K.A. (2001). “Cooperative learning: increasing college faculty instructional productivity”. ASHE-ERIC Higher Education [6] Kagan, S. (2002). Cooperative Learning. San Juan Capistrano, CA: Resources for Teachers, Inc. [7] Monaco, Michele. and Martin, Malissa. (2007). “The Millennial Student: A New Generation of Learners”. Athletic Training Education Journal, Volume 2 (April-June), 4246.” [8] Moussavi, M. (2009). Cooperative learning in Engineering Education, Electronic Engineering/Technology Department. Johnson & Wales University [9] Woempner, Carolyn. (2007). “Teaching the Next Generation.” The Future of Education: A Structured Response to Uncertainty, Trend of the Month. Mid-continent Research for Education and Learning (McREL). [10]Felder, R.M., and Brent, R. (2004). “Cooperative learning in technical courses: procedures, pitfalls, and payoffs”. ERIC Doc. Reproduction Serv., ED 377038. Available at http://www.ncsu.edu/felder-public/Papers/Coopreport.html. [Cited 2011-07-24] [11]Cooper, J.L., MacGregor, J., Smith, K.A., and Robinson, P. (2000). “Implementing small-group instruction: insights from successful practitioners” In MacGregor, J., Cooper, J.L., Smith, K.A., and Robinson, P. (eds.), “Strategies for energizing large classes: from small groups to learning communities”. New Directions in Teaching and Learning, vol. 81, San Francisco: Jossey-Bass Pubs. 9