Collaborative Learning – towards a solution for novice programmers Donna Teague & Paul Roe Queensland University of Technology Brisbane, Australia {d.teague, p.roe}@qut.edu.au
Abstract Students continue to struggle with learning to program, for reasons that we hypothesise are not solely cognitive. This paper reports on the results of a survey indicating that as students progress through a first programming unit, they enjoy it less, find it more difficult than they expected, and have less confidence in being able to successfully complete it. The students also believed that collaborative learning would have a beneficial impact on their learning outcomes and make studying programming more engaging, interactive, and fun. As a precursor to trialling collaborative problem solving and programming in introductory programming units at QUT, collaborative learning and its potential positive effect on the learning outcomes of programming students is investigated. Keywords: Novice programmers, collaborative learning, collaborative programming.
1
Introduction
Programming is acknowledged by tertiary educators to be a complex and difficult intellectual activity, with students struggling through their first programming subject and educators struggling to teach it (Lahtinen, Ala-Mutka et al. 2005). At the Queensland University of Technology (QUT) in 2006, females accounted for 22% of its introductory programming students, and only 15% of its Bachelor of Information Technology undergraduates. The high attrition and failure rates of introductory programming units, and the low recruitment of female students, have for many years been a headache and controversial topic for learning institutions (Sheard and Hagan 1998; Robins, Rountree et al. 2003; Truong, Bancroft et al. 2003) and one for which further insight would benefit both students and universities alike (Bruce, Buckingham et al. 2004). Figure 1 shows the failure rates (grades of 1 or 2 on a scale of 1 to 7) for each of QUT’s first semester units from its Bachelor of Information Technology degree course in the last 5 years. The introductory programming
Copyright © 2008, Australian Computer Society, Inc. This paper appeared at the Tenth Australasian Computing Education Conference (ACE2008), Wollongong, Australia, January 2008. Conferences in Research and Practice in Information Technology, Vol. 78. Simon and Margaret Hamilton, Eds. Reproduction for academic, not-for-profit purposes permitted provided this text is included.
units have consistently had the worst failure rate of any first semester, first year unit in that course since 2003 with an average failure rate of 28.5%, and peaking at 35% in 2005. One might be forgiven for thinking therefore that the introductory programming unit was simply too difficult. However, for the same time period the number of students achieving a grade of 6 or 7 (on a scale of 1 to 7) frequently ranged between 30% and 40%. In this paper we present the results of a recent survey into why students struggle with learning programming, and offer some ideas on how learning programming could be improved. The survey and results focus not on what is taught but rather on motivational and social issues and how these can be addressed.
2 2.1
Learning to Program Issues Cognitive: Programming is difficult
Many cognitive theories have been offered to answer the question: Why do many students fail to learn programming? These include: difficulty understanding the purpose of programs and their relationship with the computer; difficulty grasping the syntax and semantics of a particular programming language (Robins, Rountree et al. 2003); misconceptions of programming constructs (Soloway and Spohrer 1989); inability to problem-solve (McCracken, Almstrum et al. 2001); and inability to read and understand program code (Lister, Adams et al. 2004; Mannila 2006). However, the cause of poor performance in the programming classroom is not purely cognitive. Other issues that can have a detrimental effect include cultural and social influences.
2.2
Social Development
Introductory programming subjects are normally offered in the first semester of the first year of a bachelor degree, where the majority of the student cohort is new to university. The young university students are distracted and excited about entering the adult world, and enjoy many new freedoms not afforded them at school – where they ultimately assume the responsibility of the day to day management of their education. No dress codes, few rules, and they come and go virtually as they please. Unfortunately, there lies the trap. Settling into a productive university life seems to be a huge hurdle that young Australian students continue to face, one that is exacerbated when one of the first subjects encountered in a computer science course at university is programming.
Grades 1-2 (Fail) Comparisons 40 35 Percentage
30 Intro Programming
25
Database Systems
20
Systems Architecture
15
Professional Studies
10 5
20
03 / 20 1 03 / 20 2 04 / 20 1 04 / 20 2 05 / 20 1 05 / 20 2 06 / 20 1 06 / 20 2 07 /1
0
Year/Semester
Figure 1: Comparison of failure rates across courses Introductory programming is a subject which has Combine the social, community and employment traditionally been a pre-requisite for other subjects that pressures with a demanding subject like learning to are dependent on many of the concepts introduced, and as program and the realisation that it takes a serious amount a result one for which there has been little option but to of time and effort to be successful often comes too late. offer it in the very early stages of the course.
2.3
2.4
External Commitments
Many students today find it necessary to take on part-time or even full-time work (Taylor and Mounfield 1989). Figure 2 shows the employment status of tertiary students in Australia in 1999. In that year, 57% of all students in higher education institutions also had a job, with 67% of part-time students working full-time and 42% of full-time students working part-time (Australian Bureau of Statistics 2000). With an expected full-time study commitment of 48 hours or more per week at QUT and other similar universities, it becomes difficult to maintain employment, as well as to balance family commitments, social life, exercise and sleep. Increasingly, it seems, the corners that are cut are the hours dedicated to study, with attendance numbers dropping dramatically after the early weeks of semester, and students tending to leave assessment obligations to the last minute. 1999 Students + Employment (ABS 2000) 100% 14.9
90% 80%
Percentage
70%
17.6
52.9
60%
Not employed
50%
Part time emp Full time emp
40% 30%
67.5 42.4
20% 10% 0%
Cultural Perceptions
Programming is often perceived as a solitary occupation, one which is conducted in a competitive, rather than collaborative environment. This is often reinforced at university where introductory programming subjects’ assessment consists of individual assignments. Programming courses attract only a small proportion of female students and they have generally had less exposure to IT than their male counterparts (Cohoon 2002; Katz, Allbritton et al. 2006). Programming is seen as a competitive occupation whose model student is the stereotypical ‘geeky’ young male, and this can lead initially to alienation, diminution of confidence and subsequent lack of interest for women (Fisher and Margolis 2002). Academic ability would seem to have little influence on women’s attraction to and retention in programming courses. Women often perform well academically, yet perceive the programming environment as inhospitable, lacking social meaning and interaction which is incongruent with the real world. Women in IT are poorly represented at university which means there is less opportunity for support from female peers and possibly from role models in academic positions (Cohoon 2002; Vilner and Zur 2006). The attrition rate for women from computer science courses is generally higher than for men (Cohoon 1999; Fisher and Margolis 2002); the dropout rate of domestic female students at QUT in 2004 was 36%, compared to 23.5% for domestic male students.
4.7 Full time students
Part time students
Attendance Mode
Figure 2 - Employment & study commitments
For other minority groups historically underrepresented in computer science courses, there seems to be a positive correlation between their learning outcomes and how well they can communicate openly with their peers. These
students’ social identities are developed based on how well they fit into relationships with other students (Varma 2006). So for female students and other minority groups in particular, learning to program may present further issues of a social and cultural nature. This may also be true for male students, although they tend to receive a higher level of support for entering and persisting in the field of computer science (Cohoon 2002).
2.5
Generation-Y Culture
‘The information technology revolution … has been redefining the way we live, work, communicate, inform and entertain ourselves.’ (Mackay 2005) It may be true that school leavers and younger students are resisting the way programming subjects are presented, being unwilling to acclimate to an environment that demands individual achievement and is devoid of the continuously interactive and social multi-media-rich world to which they have become so accustomed and reliant. A 2005 US national survey of 8-18 year olds found that the amount of time each week young people spend on media is equivalent to more than a full time job (Rideout, Roberts et al. 2005). Rideout et al report that today’s school children have become “masters of multitasking”, often using several forms of media, for example listening to music, having multiple MSN conversations and doing their homework simultaneously. The constant interaction with peers during much of their leisure time via chats, email, SMS etc. has become a significant part of the young university students’ support structure for both their schooling and their social life. Generation Y students may not be able to adjust to a university environment that demands single, focused, non-interactive study.
3
Students’ Perceptions
In the first week of semester 1, 2007, students attending a workshop for QUT’s introductory programming unit were asked to share a little of their background with the class. It was evident that this student cohort had a diverse range of experiences with computers and programming. These ranged from basic exposure to computers in non-IT subjects at school to many years of experience as a result of keen personal interest and/or part-time job. Hobby and job related experiences seemed to be predominantly hardware related, with just a few students noting exposure to programming outside school. A large group of the students aspired to careers in the gaming industry and in particular animation and graphics, while others simply enrolled in the IT degree because that is where they excelled at high school. Eight weeks into semester, 163 introductory programming students were asked to quantify their perception of this unit by rating how difficult they were finding it, their current level of enjoyment, and their confidence at being able to complete it. By way of
comparison, students were also asked to reflect back on their perception of the unit at the beginning of semester and rate their confidence, enjoyment and perceived difficulty of the unit before they had actually started. This retrospective analysis gave students the opportunity to quantify any attitude change to the unit during the first eight weeks of semester. It should be noted that the students surveyed were those who attended the lecture in week 8. Lectures and workshops normally suffer a steady decline in attendance, and an assumption could be made that those students surveyed perhaps represent the more motivated of the student cohort. Each rating given by the students in the survey for the three categories was made on a scale of 1 to 5 as follows: •
difficulty: 1 = very easy, 5 = very difficult
•
enjoyment: 1 = not enjoyable, 5 = very enjoyable
•
confidence: 1 = no confidence, 5 = very confident
As students progressed through the university’s first programming unit, 49% of them found it more difficult than they expected (see Figure 3). In terms of enjoyment of the unit, 38% of students found the unit less enjoyable than they had anticipated it would be before they had actually started it (see Figure 4). The confidence levels of the same students plummeted during the first eight weeks of the unit, with 45% being less confident in being able to successfully complete it than they were at the beginning of semester (see Figure 5). One might expect confidence and enjoyment levels to both drop when the content became more difficult. But perhaps the ‘difficulty’ experienced was a result not so much of cognitive inability as of poor motivation and interest. With 85% of the students surveyed being under 26 years of age, one might expect this group to be the most likely to have had exposure to computers and IT at school and at home and therefore to be in a position to know a little of what to expect in a programming unit at University. The students themselves gave some insight into why they were not having such a positive learning experience when it came to the programming unit (see Figure 6). When queried on their perception of collaborative learning being introduced into the unit, an overwhelming number of students believed that such an environment would not only have a beneficial impact on their learning outcomes, but also make studying programming more engaging, interactive, and fun. Students might not be aware of the pedagogical values of learning collaboratively, but they believe that a collaborative environment would enhance their enjoyment, their likelihood of engaging, and thus their chance of success in learning to program.
Percentage of students
40%
32%
34%
30% 20%
13%
12%
10% 0%
2%
4%
-3
-2
2%
0%
0% -4
-1
0
+1
+2
+3
+4
Change in difficulty
Percentage of students
Figure 3: Change in student perception of unit difficulty
50%
44%
40% 30%
10%
17%
17%
20% 1%
3%
-4
-3
13% 2%
1%
0%
+2
+3
+4
0% -2
-1
0
+1
Change in enjoyment
Percentage of students
Figure 4: Change in student perception of enjoyment of the unit 50%
41%
40%
29%
30% 20% 10%
12%
10% 2%
4%
-4
-3
1%
1%
0%
+2
+3
+4
0% -2
-1
0
+1
Change in confidence
Percentage of Students Surveyed
Figure 5: Change in student confidence of being able to successfully complete the unit 90%
83%
82%
80% 65%
70% 60%
Yes
50%
No
40%
Don't Know
30% 20% 10%
21% 11%
14% 8%
7%
9%
0% Socially interactive environment is more fun
More confidence with support of peers
Develop sound programming skills & keep each other on track
Identified benefit
Figure 6: Change in student perception of the benefits of collaborative learning
4
Collaborative Learning
The constructivist approach (Bruner 1990; Huitt 2003) is the predominant teaching and learning paradigm in education today, and involves endeavouring to engage students in regular hands-on activities from which to build their programming knowledge. But taking this approach is only part of the solution for addressing issues with learning to program. Collaborative learning addresses other issues and in particular provides benefits to first year programming students including greater achievement and interest, developing skills expected by industry, and having fun (McKinney and Denton 2006). Collaborative learning is generally advocated as a exemplary pedagogical practice (Yerion and Rinehart 1995; Williams and Kessler 2000; McKinney and Denton 2006) where grouped students become responsible for one another’s learning as well as their own (Gokhale 1995). Learning in a collaborative environment becomes a social process where students learn by working with others. Students are interactively engaged in the subject material, observing each others’ approaches to problem solving, keeping each other focused on the task, and being encouraged to verbalise issues and decisions along the way. Numerous studies (including Wilson, Hoskin et al. 1993, Yerion and Rinehart 1995, Williams and Kessler 2000, McKinney and Denton 2006) have found benefits to students learning collaboratively including:
important for first year students who are at risk of leaving the discipline. It has been suggested that issues of lack of confidence, enjoyment and interest have a direct adverse effect on students’ success in learning to program. A research project was undertaken at the Carnegie Mellon School of Computer Science (Fisher and Margolis 2002) to investigate and address the issues of the low percentage of women entering their undergraduate CS course. Twice as many women had been leaving IT courses than men. They found that women left as a result of lack of interest, resulting from loss of confidence in their studies. However, lack of confidence was due not to poor academic performance, but rather to unfavourable comparisons with other students. Carnegie Mellon addressed the issues identified from this research by promoting a broader perception of IT careers, rather than the stereotypical ‘hacker’ or ‘geek’ type roles. They introduced a more contextual approach to IT studies including interdisciplinary courses, human computer interaction, and involvement in non-profit organisations and community work which had greater appeal to female students. The research also identified a correlation between experience and confidence and as a result made allowances for students with less experience by introducing multiple entry options into the course. As a result of this research and the action taken by the university to rectify the issues identified, female enrolments increased from 7% to 42%. A more recent Australian study undertaken at the Swinburne University of Technology by Lewis, McKay et al (2006) reports on student views of teaching and learning. They found that women in the first year of ICT courses suffered from lack of confidence in what was viewed as a male dominated domain. Only 32% of women were prepared to approach academic staff for help, yet 53% of them were happy to ask their peers (compared to 55% and 66% respectively for men). A higher percentage of women than men also said they felt anxious about how they were coping with their studies, reporting a heavier workload than expected and a lack of time to understand it.
•
synergistic nature of brainstorming and sharing of intellectual resources;
•
monitoring the problem solving process by peer interaction is conducive to successful performance;
•
positive effect on cognitive growth and skill acquisition and transfer;
•
greater interest and sense of belonging;
•
helping students apply algorithmic problem-solving techniques;
•
deeper learning and higher retention;
•
higher achievement and course success rates;
•
developing skills wanted by industry;
•
enhanced confidence in the solution and enjoyment of the process.
•
more real life environment
•
more hospitable environment – collaborative learning
McKinney & Denton (2006) experimented with collaborative learning in an introductory programming course at the School of Computer and Information Sciences, University of South Alabama. The students were exposed to team-based problem solving and pairprogramming and the results provide confirmation of previous research that early use of collaborative learning leads to higher interest, higher retention, and higher academic performance in students. Other benefits of collaborative learning – having fun, deeper learning and having a higher sense of belonging – were reported as being enjoyed by all students, but were particularly
•
creating atmosphere that supports development of positive attitudes towards CS
•
more female teaching staff
Vilner & Zur (2006) suggest the following recruitment solutions for CS courses (and imply that these are also relevant to addressing retention rates):
Peckham, Stephenson et al (2007) suggest addressing the ‘stereotype threat’ and redefining the image of computing to increase the appeal to a more diverse range of students. They suggest this should be done at the institutional level and by the instructors themselves (the individual level), as well as being reflected in classroom practices by relevance to the particular learning styles and aptitudes of each student cohort.
5
Addressing Learning to Program Issues
In the unlikely event of ever being presented with unlimited resources and funding, the perfect approach to teaching and learning programming at university may well be one-on-one tuition, with the student assuming the role of apprentice under the intimate guidance and supervision of her master, gradually absorbing the skills of the craft through observation and imitation (Dijkstra 1975). Sadly, this is both unrealistic and impractical. However, encapsulating collaboration into learning to program can effectively utilise the resources already available, encourage more vigorous and active engagement by students, encourage them to think aloud and verbalise every step of their problem solving process, and satisfy their intense need for interaction and support. Pair programming, which forms part of the Agile eXtreme Programming concept (Williams, Wiebe et al. 2002; Williams and Kessler 2003; Layman, Cornwell et al. 2006), is an example of collaboration being used successfully in professional software development environments. It is based on the collaboration of two software developers. One takes up the role of ‘driver’, types the code, and addresses problems from a tactical point of view. The other becomes the ‘navigator’ and thinks strategically, asks questions and watches for coding errors (Aiken 2004). The developers in the pair frequently swap roles to benefit from both experiences. There is growing support for the use of pair programming for learning (Werner, Hanks et al. 2004; Hanks 2006; McDowell, Werner et al. 2006; Mendes, Al-Fakhri et al. 2006). Williams, Wiebe et al (2002) report educational benefits including •
superior results
•
increased satisfaction
•
reduced frustration
•
increased confidence on project results
•
perseverance through the course
Providing a collaborative learning environment which mimics pair programming would enable students to share mentoring roles, reflect on their own and each other’s work, and share the learning experience together during problem solving and program development. With collaboration able to provide such significant benefits and programming students being more likely to engage in a collaborative environment, collaborative learning has the potential to positively affect course success rates, reduce attrition and in turn attract more interest from potential students, especially women and minority groups.
6
References
Aiken J (2004). "Technical and Human Perspectives on Pair Programming." ACM SIGSOFT Software Engineering Notes 29(5).
Australian Bureau of Statistics. (2000). "Participation in Education: Beyond compulsory schooling." 4102.0 Australian Social Trends Retrieved 30 May, 2007, from http://www.abs.gov.au/ausstats/
[email protected]/ 2f762f95845417aeca25706c00834efa/6ca07444d2673d 02ca2570ec000e3632!OpenDocument. Bruce C, Buckingham L, et al. (2004). "Ways of Experiencing the Act of Learning to Program: A Phenomenographic Study of Introductory Programming Students at University." Journal of Information Technology Education 3. Bruner J. (1990). "Constructivist Theory." Retrieved 19 July, 2007, from http://tip.psychology.org/bruner.html. Cohoon JM (1999). "Department Differences and Point the Way to Improving Female Retention in Computer Science." ACM SIGCSE Bulletin, Proceedings of the 30th SIGCSE Technical Symposium on Computer Science Education SIGCSE '99 31(1). Cohoon JM (2002). "Recruiting and Retaining Women in Undergraduate Computing Majors." ACM SIGCSE Bulletin 34(2). Cohoon JM (2002). "Women in CS and Biology." ACM SIGCSE Bulletin, Proceedings of the 33rd SIGCSE Technical Symposium on Computer Science Education SIGCSE '02 34(1). Dijkstra EW (1975). Craftsman or Scientist? ACM Pacific 75 - Luncheon Speech. San Francisco. Fisher A and Margolis J (2002). "Unlocking the clubhouse: the Carnegie Mellon experience " ACM SIGCSE Bulletin 34(2). Gokhale AA (1995). "Collaborative Learning Enhances Critical Thinking." Journal of Technology Education 7(1): 22-30. Hanks B (2006). "Student Attitudes toward Pair Programming." ITiCSE 06: Proceedings of the 11th annual conference on Innovation and technology in computer science education. Huitt W. (2003). "Constructivism. Educational Psychology Interactive." Retrieved 19 July 2007, 2007, from http://chiron.valdosta.edu/whuitt/col/ cogsys/construct.html. Katz S, Allbritton D, et al. (2006). "Gender, Achievement, and Persistence in an Undergraduate Computer Science Program." ACM SIGMIS Database 37(4). Lahtinen E, Ala-Mutka K, et al. (2005). A Study of the Difficulties of Novice Programmers. 10th annual SIGCSE conference on Innovation and technology in computer science education ITiCSE '05. Layman L, Cornwell T, et al. (2006). Personality Types, Learning Styles, and an Agile Approach to Software Engineering Education. SIGCSE 2006 Technical Symposium on Computer Science Education. Houston, Texas USA.
Lewis S, McKay J, et al. (2006). The Next Wave of Gender Projects in IT Curriculum and Teaching at Universities. Eighth Australasian Computer Education Conference (ACE2006), Hobart, Tasmania, Australia, ACS. Lister R, Adams E, et al. (2004). "A Multi-National Study of Reading and Tracing Skills in Novice Programmers." SIGSCE Bulletin 36(4): 119-150. Mackay, H. (2005). "Australia and the World: The Australian Paradox." Retrieved August 2007, 2007, from http://www.newmatilda.com/policytoolkit/policydetail. asp?PolicyID=99. Mannila L (2006). Progress Reports and Novices’ Understanding of Program Code. 6th Baltic Sea Conference on Computing Education Research, Koli Calling. McCracken M, Almstrum V, et al. (2001). "ITiCSE 2001 working group reports: A multi-national, multiinstitutional study of assessment of programming skills of first-year CS students." ACM SIGCSE Bulletin 33(4). McDowell C, Werner LL, et al. (2006). "Pair programming improves student retention, confidence, and program quality " Communications of the ACM 49(8). McKinney D and Denton LF (2006). Developing Collaborative Skills Early in the CS Curriculum in a Laboratory Environment. SIGCSE 2006 Technical Symposium on Computer Science Education. Houston, Texas, USA. Mendes E, Al-Fakhri L, et al. (2006). A Replicated Experiment of Pair-Programming in a 2nd-year Software Development and Design Computer Science Course. ITiCSE 06: Proceedings of the 11th annual conference on Innovation and technology in computer science education Bologna, Italy. Peckham J, Stephenson PD, et al. (2007). "Broadening participation in computing: issues and challenges." ACM SIGCSE Bulletin, Proceedings of the 12th annual SIGCSE conference on Innovation and technology in computer science education ITiCSE '07 39(3). Rideout V, Roberts DF, et al. (2005). Generation M: Media in the Lives of 8-18 Year-olds - A Kaiser Family Foundation Study, The Henry J Kaiser Family Foundation. Robins A, Rountree J, et al. (2003). "Learning and Teaching Programming: A Review and Discussion." Journal of Computer Science Education 13(2): 137172. Sheard J and Hagan D (1998). Our failing students: a study of a repeat group. Proceedings of the 6th annual conference on the teaching of computing and the 3rd annual conference on Integrating technology into computer science education: Changing the delivery of computer science education ITiCSE '98.
Soloway E and Spohrer J (1989). Studying the Novice Programmer. Hillsdale, NJ, , Lawrence Erlbaum Associates. Taylor HG and Mounfield LC (1989). The effect of high school computer science, gender, and work on success in college computer science. 20th SIGCSE Technical Symposium on Computer Science Education SIGCSE 1989, Louisville, Kentucky, US, ACM Press. Truong N, Bancroft P, et al. (2003). A Web Based Environment for Learning to Program. 26th Australasian Computer Science Conference - Volume 16, Adelaide, Australia, Australian Computer Society. Varma R (2006). "Making Computer Science MinorityFriendly." Communications of the ACM 49(2). Vilner T and Zur E (2006). Once She Makes it, She is There: Gender Differences in Computer Science Study. ITiCSE 06: Proceedings of the 11th annual conference on Innovation and technology in computer science education, Bologna, Italy. Werner LL, Hanks B, et al. (2004). "Pair Programming Helps Female Computer Science Students." Journal on Educational Resources in Computing (JERIC) 4(1). Williams L and Kessler R (2003). Pair Programming Illuminated. Boston, Addison-Wesley. Williams L and Kessler RR (2000). The Effects of “PairPressure” and “Pair-Learning” on Software Engineering Education. Proceedings of 13th Conference on Software Engineering Education & Training, 2000. Williams L, Wiebe E, et al. (2002). "In Support of Pair Programming in the Introductory Computer Science Course." Computer Science Education 12(3): 197-212. Wilson JD, Hoskin N, et al. (1993). The Benefits of Collaboration for Student Programmers. 24th SIGCSE Technical Symposium on Computer Science Education SIGCSE 1993, Indianapolis, Indiana US, ACM Press. Yerion KA and Rinehart JA (1995). "Guidelines for Collaborative Learning in Computer Science." ACM SIGSCSE Bulletin 27(4).