CHALLENGES OF TEACHING AND LEARNING COMPUTER PROGRAMMING IN DEVELOPING COUNTRIES: LESSONS FROM TUMAINI UNIVERSITY Josephat O. Oroma, Herbert Wanga, Fredrick Ngumbuke Tumaini University - Iringa (TANZANIA)
[email protected],
[email protected],
[email protected]
Abstract Computer programming is a difficult course to teach and learn, it is even more difficult in developing countries that are faced with additional factors in its academic, socioeconomic and natural environment that affects the teaching and learning of this course. The difficulties are notably marked in the poor performance and high failure rate. The difficulties were identified to be attributed to poor pedagogical methods, university tradition, poor study methods of learners, lack of problem solving abilities, low self-efficacy and of course programming is a new field of study. Several approaches were implemented but with very little impact. This paper therefore focuses on exploring the difficulties of the learners and suggests several innovative approaches that are feared towards improving the teaching and learning of this course. Keywords: Challenges, teaching and learning, computer programming, developing countries, lessons.
1
INTRODUCTION
Tumaini University is the oldest private university in Tanzania [1] and owned by the Evangelical Lutheran Church of Tanzania (ELCT) [2]. Located at Iringa in the southern part of Tanzania, Tumaini was started in 1993 [3] as a Lutheran Seminary and it was offering Diploma in Theology and since then has gradually expanded to offer many other study programs in various faculties. Tumaini started a contextualized bachelor of science in information technology (IT) program in 2007 [4] because it was quiet clear that the standard ACM/IEEE curriculum would not work in a developing country [4] like Tanzania that is faced with more additional challenges within its natural environment, socio-economic and academic environment [TODO]. The challenges within academic environment brings forth concerns such as inadequately trained academic and technical staff (as compared to those in developing countries), limited access to computer facilities by students, high students intake (which increases the student – computer ratio), poor learning styles of the students, university traditions, and pedagogical methods and within the natural environment there are issues to do with poor and unstable electricity, which is a threat to hardware and data, computer viruses, high cost of internet connection, and the socio-economic environment registers concerns such as the procurement of equipment tradition, the low level of income, poor living conditions, inability to secure personal computers for learning purposes and the Ever since its inception, the contextualized BSc IT has been undergoing constant curriculum review because it is intended to improve the weaknesses and hindrances within the academic environment and adapt to the challenges within the natural and socio-economic environments so as to facilitate effective teaching and learning. During the curriculum review process, several issues were identified within the BSC.IT that needed immediate analysis to understand the problems and address them in a way that will motivate the students, give credentials to teachers to work out a sustainable learning environment for computer programming and bring a positive impact on the studying outcomes of the learners. Among those issues that were noted, are the observed difficulties and failure rate in computer programming courses. Previous research [1] indicates that learning to program is a difficult task and numerous factors accounts for these difficulties [1]. It is usually because of poor learning styles, the pedagogy, lack of facilities, and a wide variety of factors. In our case at Tumaini University, Iringa University College (IUCo), earlier research [1]and this study indicates that the students’ learning outcomes and difficulty in learning to program is attributed by factors such as poor study methods, low self-efficacy, different kind of motivation to learn the course, lack of early exposure or previous experiences with computers, learners abilities and attitudes, nature of the course itself, limited access to computer facilities such as computer labs during a time that is for their revision and image of programmers among the students and general public as will be discussed in the next Chapter
Proceedings of INTED2012 Conference. 5th-7th March 2012, Valencia, Spain.
3820
ISBN: 978-84-615-5563-5
Since the introduction of the BSc.IT in 2007, several teachers of computer programming, both local and foreign (mainly from USA, Sweden, Denmark, Spain, and Finland) have independently tried out a number of teaching approaches as a way of addressing the difficulties of the learners but the results were still not very satisfactory. This is a work in progress paper.
2
THE DIFFFIULTIES
Computer programming is a difficult task to learn [5], [6]. It is even more difficult to teach and learn in a developing country like Tanzania that is faced with additional challenges in its educational and natural settings. Probably very few computer programming teachers will say that many of their students find it an easy subject to learn and pass. In many cases, teachers usually give accounts of how they have observed their students struggle while learning to write even simple computer programs, spending more time and energy in getting the syntax right which usually takes considerably long time. It usually takes several years for a beginner to become an expert programmer and it is generally agreed that it takes roughly ten years to turn a novice into an expert computer programmer [7]. And before novice students can learn the programming skills, they would have already lost hope in becoming programmers and given up the due to low motivation, bad image of programmers within the society and universities. Several tools have been and continue to be developed and numerous approaches have been used by various programming teachers aiming at supporting the learners [5] to understand the course from multiple fronts. Although there are numerous reports of success stories on the results of the learning outcomes, it is difficult to point out which one is more effective in aiding and supporting the learners in understanding the course’s concepts and applying those concepts in their own creativity. This study therefore has identified numerous major factors that contributed significantly in making the basic skills of learning to program a difficult undertaking for the learners and subsequently affecting the learning outcomes of the students in the computer programming courses. The difficulties were more noted in the
2.1
Programming is new Field
Computer in general is a new field of study in Tanzania [8]. This means that, there are a few professionals in Computing and ICT in general [4]. The National ICT Policy of 2003 [9] also notes that there is a general shortage of well-qualified professionals in this field. The availability of very few professionals is in one way or another a demotivating factor because they attribute the lack of many qualified professionals to the difficulty of the studies involved. The lack of adequate number of these professionals on the other hand demotivates the learners because they fail to see a connection of their studies and future career. Owing to the widely varying background education also, a large number of the students had not used a computer before but basically their experience with ICT is only derived from their experience with mobile phones [10] therefore they only get exposed to computers when they join the university. They tend to find learning this computer programming course difficult because they had not studied any subject related to the course in their previous schools, therefore they get confused because they do not have any previous knowledge to build upon; since learning is usually built on past knowledge [8] Much as it is fairly clear that due to the widely varying educational backgrounds of the learners they have no prior exposure to computer and programming in particular, there has been no arrangement at the faculty to create an environment that slowly and gradually introduces and integrates these learners into the aspects of computer programming while having enough time to comprehend the fundamental concepts of the basic principles.
2.2
Motivational Trends
The kind of motivation exhibited by most of the students is extrinsic motivation and not intrinsic motivation. Intrinsic motivation is defined as the doing of an activity for its inherent satisfaction rather than for some separable consequences as contrasted to extrinsic motivation which is defined as the doing of an activity simply for the attainment of a separable outcome [14]. In real sense, it can be noted that a large number of the students taking BSc IT are not motivated intrinsically to study programming, since most of them have admitted that, taking the IT program was not their decisions.
3821
Many of them revealed that either their parents, a relative had told them to study IT or it was because it was easy to obtain sponsorship from the higher education loans board (HELB) to the tune of 100%. This is because the government is encouraging the youth to study sciences after the country had identified a severe shortage of technology professionals. One of the students commented that the reason they are not motivated to study programming is because they have not seen many programmers in Tanzania. They then fail to make a connection to the future of the course they are studying. This appears like a dark future, or venturing into the “unknown” destination. The future appears to be dark. Well in our analysis, the issue with the availability of programmers has more to do with programming and computer science in general being a new field of study in Tanzania than the course being so hard that very few people study and take it as future career.
2.3
Self-Efficacy in programming courses
Self-efficacy, which is defined as “peoples’ judgement of their capabilities to organize and execute courses of action required to attain designated types of performance” [11]. It relates to how we estimate capacity to perform well in certain context. A person with high self-efficacy is more likely to undertake challenging tasks, expend more efforts to achieve them, and demonstrate persistence when difficulties arise [12]. Many our BSc.IT students do not believe in their abilities in passing computer programming. A good number of have been heard saying that if only they pass the course even with marginal pass, then they will have to call for a celebration. In fact many of them rely on their friends to do for them assignments and a large number of them have been caught cheating in mid-term examinations. This confirms that they do cheat because they do not have confidence in themselves that they can pass by their own efforts. Another way of manifesting low self-efficacy is the tendency of working in groups. This practice is deeply rooted in many universities in Africa [1]. Meaning that many of them would prefer to take group assignments and exercises other than individual ones; This is both advantageous and disadvantageous to the learners because it seems that the students low in selfefficacy tend to resort to passing the course by utilizing the knowledge of the other group members with high self-efficacy.
2.4
Previous Experience
From the beginning of the IT program in Tumaini, it was noted that nearly all the students joining the program had no previous exposure to computers [13]. Much as some of them had Diplomas especially in education, the majority of them joining the IT program had not used a computer before. During the Introduction to Computer classes, many struggle to start programs, handle the mouse or to even type. A large number of students have been visibly observed struggling with how to handle the mouse while others could not save a document they have typed, many were typing with one finger and on one hand. For such a student, learning the programming skills at the same time as learning the basics of computer skills becomes so difficult. Male students have also been noted to have at least been exposed to computers before than female students [TODO]. This is because some of the students have had access to play at least a computer game either in school or at the home of a friend [TODO].
2.5
Study Methods
Every student is different and unique in their own ways. This means that they learn at different speed and in different ways, and also they have different types and levels of motivation. To some of them, learning is discussing with other students while to others, learning is when you read and search for information by themselves as an individual and approach the lecturer or another student on topics that one is not familiar with and difficult to understand. At times a students studying methods are dictated upon by the nature of the course or subject but in case students are not sure which learning style to adopt for a particular course, they tend to adopt the styles they prefer or which has served them best in the past [Jenkins, 2002]. The teacher should be in position to guide the students to adopt an appropriate learning style for a subject he/she is teaching [TODO]. But the learning styles they have adopted in learning programing is inadequate because they usually prefer to read codes and employ rote memorization and when it fails, they become disappointed and resort to plagiarism and getting someone to do for them the exercise especially during group activities, they take advantage of the group member who is more versant with coding.
3822
Learning styles are classified into deep and surface learning approaches. Deep learning is long term learning and comes from understanding and internalising something. It is more ‘real’ in that deep learning is less likely to be forgotten. Whereas surface learning in contrast is often short term memorization that if often forgotten after a short while.
2.6
Abilities
It has been evident that many of our students lack the core abilities required in learning to program. These abilities include the generic problem solving. Many of them cannot design an algorithm to solve a programming problem because they lack the abilities. Solving a problem requires a deep understanding of the problem and it also requires several other skills such as problem analysis, Many of them start to write the program codes for a programming problem without analysing and understanding it entirely. And we think that this happens because they do not have the abilities to interpret the problems though many times it happens because they are very anxious to jump writing the codes. This in many cases generated very many errors in the program. After several unsuccessful trials, they give up and lose hope in the course and they start to attribute their failures to the difficulty of the course and the nature of the subject. We have also identified severe lack of knowledge transfer in our students. For example during lecture, the teacher gives an example on how to write a program to calculate the area of a circle, they students if given an exercise to write another program to calculate the area of a triangle, many of them will fail to find where to begin from. This clearly shows that they cannot transfer the knowledge used in the example in their class exercises, so they resort to copying from one another or they simply give up trying any further. The lack of core abilities can be attributed to their background education where in primary and secondary schools, there is severe lack of mathematics teachers [TODO], and especially in government schools and schools that are located in rural areas where there are additional challenges in generally science subjects. Very few teachers, no enough text books both for the students and teachers, no laboratory equipment and facilities [TODO]
2.7
Nature of the Course
Computer programming is a course [TODO], but one that demands a high level of skills such as abstraction, problem solving and analytical skills [TODO]. Many of our students, owing to their widely varying educational background due to the multidimensional nature of educational system of Tanzania [TODO], possess varying levels of skills that is not so sufficient to support them in the learning of this difficult and demanding course [TODO]. Many of them lack problem solving skills and an approach to problem solving, and a large number of them often actually resort to plagiarism when they start to think that it will be very difficult to find a solution to a programming problem they have been given. Programming is also identified as a multiple process’ task [Jenkins, 2002]. During the process of writing a program, a problem is identified, then analysed, and a specification is translated into an algorithm, which is later translated into the program code. This becomes challenging to novices and many of them become discouraged after several attempts to follow the processes but with no measurable success [TODO]. Another hindrance to this learning of programming is that, because it is a multiple process task, the students usually do not have the ample time to concentrate and study it sufficiently. During almost all semesters, with each semester having only 15 weeks of study and 2 weeks of exams, they often do take not less than 6 different courses, with each of the courses demanding some concentration. We imagine they get so stressed and start to “feel bad” and lose motivation about the courses that tend to appear more challenging and difficult like computer programming, and the end result is that their performance declines.
2.8
Image of Programming and of Programmers
Programming courses acquire the reputation of being difficult [Jenkins, 2002]. This view is passed to the new students by their predecessors, and is exaggerated in the telling [Jenkins, 2002]. This possibly makes it agreeable and expected, that student will not find it easy to learn computer programming, but struggle in the learning process. Others will succeed, while others will fail or give up before succeeding or failing.
3823
At the same time, there is a general image of the programmer that is not so encouraging for the students [TODO], especially the new ones. The programmers are viewed as a bunch of “socially inadequate nerd”, sending all hours producing arcane and unintelligent code, fuelled by pizza and caffeine [Jenkins, 2002]. [Teague and Roe, 2008] add that, Programming is often perceived as a solitary occupation, one which is conducted in a competitive, rather than collaborative environment. This kind of image of a programmer and of programming is not so motivating to the students to take up programming to become programmers or even look forward to programming as a career. If the students enrol for studies and take up programming course with an expectation that it is difficult and they will struggle and not succeed, and also with a negative image of the experts in the profession, then it is very difficult to think of those students as being motivated. And it is clear that students who are not motivated to study a course will not succeed in that course, or performance will be so bad.
3
METHODOLOGY
This study is aimed at exploring the problems students face while learning to program and what teachers experience while teaching the students to learn to program at Tumaini University College. The guiding question for this study was “What exactly is difficult in learning computer programming and what can be done to improve this situation?” We investigated the students’ difficulties by interviewing them in two groups of ten each and each interview lasted about two hours each. The choice of this method lies in the tendency that the students have a deeply rooted group tendency. In group A, the students were hand picked out of the top performers, comprised of 7 male and 3 female students while group B was made of the students with low performance in class together with the average performing students. It was made up of 6 male and 4 female students. The interviews were thematic and focused on these themes. What is the most challenging part of learning to program? And how can these challenges be overcome?
4
RESULTS: THE INTERVIEWS
This is a work in progress.
5
OUR PROPOSED APPROACH
In order to curtail the difficulties noted in chapter two above, it was important to develop and implement a study environment that supports students’ active participation, strengths and weaknesses and motivates them to learn effectively. To reach this desired objective, it was clear that some creativity and flexibility was required to be implemented within the academic settings in order to reduce the learning difficulties in computer programming which would improve the performance in the same course.
5.1
Motivating the Students
Since we have observed that the students lack motivation to study this course, it has then been our focus to integrate motivation as part of the pedagogical innovations. We have identified key areas that will help to motivate the students to learn programming without fear. The department has made arrangements with a software company to invite some of their workers to come demonstrate locally developed software to the group of students to see that, it is possible to develop software in Tanzania.
5.2
Pedagogical Innovations
There have been different efforts and approaches by various teachers of programming to improve the difficulty the learners face in learning the skills. But our efforts in minimizing the learners’ difficulties in learning programming have dwelled much on the pedagogical innovations which includes;
5.2.1
Algorithm development/problem solving approach
Since we identified that the learners lack adequate problem solving and analytical skills, the teaching method has been tailored to address this problem.
3824
5.2.2
Supervised class exercises
The practice has been that, the teacher conducts lectures and gives a take home assignment which students would do and submit in later (usually about a week later). This has proved problematic because the students would actually make others do for them the assignments if they cannot by themselves. This does not foster learning, though they may pass the assignment and finally pass the course.
5.3
Increased practical Lab hours
Traditionally, the programming course is taught for three hours a week. This includes both the lecture and practice hours in the lab. This is actually not enough for learning computer programming because besides those hours, the students do not have access to the computer labs for their private and individual computers. And only a few of them have computers in their rooms or laptops for private studies. The need for increasing the practical lab hours arose from the fact that the students do not have access to the computer labs besides their lecture hours in the computer labs, and also due to the fact that only very few of them possess personal computers.
5.4
Problem Based Learning
Another focus on reducing the students’ difficulties in learning to acquire the skills of programming has been on integrating more the element of learning from problems in the real world in our local settings. This involved the identification of a problem that all the students are familiar with (many times the identification of these problems are done by students, and agreed upon by the whole class), and in the local setting, and then followed by the analysis of the problem, and algorithms developed for such a problem starting by writing a pseudo code then followed by drawing a flowchart which is later transformed to the program code.
6
CONCLUSIONS AND DISCUSSIONS
This study aimed at gaining a better insight into the difficulties faced by students while learning computer programming courses in a university in a developing country like Tanzania. The study focused mainly on the issues and factors within the academic environment that hinders effective teaching and learning of computer programming.
REFERENCES [1]
Mikko Apiola, Matti Tedre, and Josephat O. Oroma. (2011) Improving Programming Education in Tanzania: Teachers’ and Students’ Perception
[2]
André de Waal and Bukaza Chachage. (2009) Applicability of the High performance Organization framework at an East African University. The case of Iringa University College 2009
[3]
Jyri Kemppainen. (2006) Building ICT Facilities for Education in a Developing Country. Analysis of an ICT Project at Tumaini University/Iringa University College 2000-2004
[4]
Matti Tedre, Nicholas Bangu, and Seth I. Nyagava. (2009) Contextualized IT Education in Tanzania: Beyond Standard IT Curricula. Journal of Information Technology, Volume 8, 2009
[5]
Gomes Anabela, and Mendes A. J (2007) Learning to Program – Difficulties and Solutions. International Conference on Engineering Education
[6]
Susan Wiedenbeck, Deborah LaBelle, and Vennila N. R. Kain. (2004) Factors Affecting Course th Outcomes in Introductory Programming. 16 Workshop of the Psychology of Programming Interest Group. Carlow, Ireland
[7]
Leon E. Winslow. (1996) Programming Pedagogy—A Psychological Overview. SIGCSE Bulletin. Vol. 28 No. 3
[8]
Erkki Sutinen, Mikko Vesisenaho. (2006) Ethnocomputing in Tanzania: Design and Analysis of a Contextualized ICT Course
3825
[9]
Ministry of Communications and Transport. (2003) National Information and Communications Technology
[10]
Matti Tedre and Bukaza Chachage. (2008) University Students’ Attitudes Towards e-Security Issues: A Survey Study in Tumaini University, Tanzania.
[11]
Albert Bandura. (1994) Self – Efficacy. In V. S. Ramachaundran (Ed), Encyclopedia of Human Behaviors, Vol 4
[12]
Sue Jones and Gary Burnett. (2008) Spatial Ability and Learning to Program: Published in the Interdisciplinary Journal on Humans in ICT Environments
[13]
Joseph M. Longino. (2008) Evaluation of the Implementation of BSc IT Curriculum at Tumaini University. Master’s Degree in IT Dissertation
[14]
Richard M. Ryan and Edward L. Deci (2000) Intrinsic and Extrinsic Motivations: Classic Definitions and New Directions
3826