Why University Students Fail in Most Computer Programming Courses: The Case of Wachemo University-Student-Teacher Perspective

In this research, a study was conducted to investigate and explore the views of students for the failure and difficulties they faced in learning fundamental programming courses. There are many factors that influence the high rate of failure of students in most computer programming courses. This paper focuses on the teaching and learning methodologies and strategies that are implemented in teaching of all computer programming courses. This is a major factor for consideration; hence an investigation into the causes of failure of students in most computer programming courses from all perspectives with regard to the teaching methodology used by teachers to teach these courses is relevant and very important concept. Most computer programming courses form part of the core concentration areas for students especially studying in school of computing and informatics as an undergraduate degree program. All computer programming students are expected to prove capabilities in the principles of programming and logic that are being taught in the courses; even though some of these concepts are highly intellectual and multifaceted. Their opinions to the usefulness of the teaching methods being implemented in computer programming courses were required for. The needs and concerns about the teaching and learning methods are highlighted in the study and discussed thereby leading to the making of suggestions about the ways to improve the teaching and learning methods that are used in computer programming courses in order to advance understanding of computer programming, when studied by students thereby minimizing failure rates of those students. Keywords: Computer programming; Failure; School of Computing and Informatics; Student and Teacher Perspective DOI: 10.7176/CEIS/11-2-02 Publication date: February 29 th 2020


Introduction
As we know every educational institutions have no worth without student. Students are most essential assets for any educational institute. The social and economic development of the country is directly linked with student academic performance (Owusu, Arthur, & Adjetey, 2013) (Rahmat et al., 2012). The students' performance (academic achievement) plays an important role in producing the best quality graduates who will become great leader and manpower for the country thus responsible for the country's economic and social development. Computer programming is a science and it requires the individuals' skill and ability to interpret challenges into tangible solutions. Computing and Informatics students are required to take several programming courses as structured in the curriculum. In their early years of studies they are required to study programming. Computer programming is one of the computing and informatics courses in education institutions. It is an essential skill that must be mastered by anyone interested in studying of any field from the school of computing and informatics. Normally, in teaching computer programming, students will first be introduced to the concept of programming and data structure where they are taught on how to analyze problems, use specific techniques to represent the problem solution and validate the solution (Ismail, Ngah, & Umar, 2010). Most computer programming courses are a part of many Universities' curriculums and among the most important subjects for computing and informatics school students in Wachemo University. In the case of Wachemo University, computer programming using C++ is first taught at the second semester and many other programming courses will follow sequentially based on the designed and organized curriculum for the fields. This paper studies the causes of student failure in computer programming courses of three thousand and one hundred (3100) students taking the course in undergraduate programs at Wachemo University, from 2016-2019 academic years excluding vocational times. The purpose of the study was to understand why so many students' fail in most computer programming course, and do not pass on to the next semesters or for the remaining years to take other advance programming courses. The schools' first year students face a wide variety of challenges (Sciences, 2009). Not only must they contend with the pressures of commencing tertiary education, with all the issues associated with adjusting from high school to university study, they also are challenged with immersing themselves into a discipline in which they may not have had any prior formal education and for which they must essentially learn a new language, computer programming language (Butler & Morgan, 2007). The level of misunderstanding in the Computer Engineering and Intelligent Systems www.iiste.org ISSN 2222-1719 (Paper) ISSN 2222-2863 (Online) Vol.11, No.2, 2020 12 minds of these students is noticeable when some of the fundamental concepts are taught in class. High rate of failure in most computer programming course occurs during the early years of their studies and this has been the tendency over the years and this make computer programming courses look difficult in Wachemo University. The challenging nature of the course boils down to the fact that a strong practical component is required for the working environment.
According to (Jenkins, 2002), (Wiedenbeck & Labelle, 2004) as cited by (Mohorovičić, n.d.), researchers agree to the fact that learning to program presents a challenge for many students, and that many of them find programming concepts difficult to grasp.

Statement of Problem
The goal of teaching computer programming is to develop in students the competencies required of a professional software developer. New computer programmers suffer from a wide range of difficulties (Functions, 2011) (Nandigam & Bathula, 2013). Students' difficulty in computer programming is not unique to only computing and informatics schools of Wachemo University but extents across other Science and Engineering field students too'. Research works conducted about failures in computer programming courses have most often focused on the failure or the weakness of the student to understand the concepts in detail what it mean (Demilie, 2019)(In, In, Of, & In, 2016. Many of these students find computer programming to be hard and disheartening especially when they are beginners and even when they take advanced computer programming language courses. Since computer programming is the basic skill required for computer programmers, the negative impact of these basic introductory courses may have harmful consequences in the learners' attitude towards the field (Ismail et al., 2010). I have identified several problems that leads the students to fail in most computer programming courses are listed as follows: Weaker student admitted to computing and informatics school (i.e they did not have the know how about computer in previous grades) Lack of problem solving skills (i.e they did not have ability for solving problems) Lack of analytical thinking skills (i.e they did not understand problems analytically ) Lack of logical and reasoning skills (i.e logical reasoning is mandatory in order to solve problems) Lack of computer programming plans Lack of programming conceptual understanding (i.e they did not have clear concept for computer programming problems ) Lack of algorithmic skills (i.e programming requires step wise problem solving technique ) The conceptual difficulty of various elements of the curriculum (i.e the designed curricula contain difficult concepts ) Considering the challenges that computer programming represents to the students (Shaari & Ahmed, 2018) (Sciences, 2009), I can assume that finding and implementing an appropriate teaching strategy will be one of the crucial factors in students' success in mastering the course content. The method that can be adapted by teachers contribute to the failure rate of students in computer programming. Therefore, the problem that has not been critically looked at is the teaching methodology employed by teachers of computer programming courses offered at the undergraduate level. The style adopted in teaching can affect the learners' performance.

Objectives of the Study
The main objective of this study is to explore the teaching methods implemented by teachers of computer programming in Wachemo University especially in school of computing and informatics.

Used Methodology 4.1. Participants
The investigation was done by collecting data from students taking computer programming courses with the use of questionnaires. This method helped me in soliciting their views regarding the teaching methods and strategies teachers use in teaching most computer programming courses and how they familiarize to it. Three thousand and one hundred (3100) students make up the population at the school. Out of the population of three thousand and one hundred (3100) students, a sample size of two thousand (2000) participants was selected to respond to the questions in order to test sample instead of the entire population. Here, I consider students who have taken one programming course or the other. They were largely drawn from second, third and fourth year. The drawn students were who had either failed the course and are repeating and those who have taken computer programming courses and have successfully passed. 44% the population were fourth year students, 43% of the population comprised of third year students and the remaining 17% of the population were second year. I have collected the research data by interviewing 12 expert lecturers including me in computing and informatics school fields with regards to the teaching methods and strategies they or and me currently adapt in teaching computer programming students. A procedure to extract information on the subject matter was designed to serve as a Computer Engineering and Intelligent Systems www.iiste.org ISSN 2222-1719 (Paper) ISSN 2222-2863 (Online) Vol.11, No.2, 2020 13 guideline during the interview meetings. The lecturers selected to participate in the interview process was selected based on the number of years of experience in teaching of computer programming courses and their academic background. Some of the lecturers have master's degree and some of them are PhD. Candidates with in the school. Ten lecturers have eight (7) years of teaching experiencing in computer programming and the remaining has four have 6 years of experience.

Materials and Procedures
A questionnaire was given to each of the participants at the various levels and I have explained to them the meanings of some of the methods and strategies since the participants were not familiar with all of them. The questions posed were: 1. "Which of the following teaching methodologies are the most effective in teaching computer programming to increase knowledge acquisition and understanding?" Individuals were asked to rank many teaching methods in order of effectiveness. And the other question was: 2. "Which of these teaching strategies are appropriate for teaching computer programming to improve the learner's success rate and enhance the skill of learners?" Many teaching approaches were ranked by the individuals' in order of appropriateness. The response was recorded into statistical package for social sciences (SPSS) to analysis the data.

Experimental Results
The experimental results are based on the teaching methods and strategies identified. The selected experts have been identified the following problems: Background, field of study and teachers teaching methodology Teaching strategies, instructional materials, teacher capability and interactivity with the students Based on the problems identified by the experts, this research focuses on both of the identified problems.

Discussions of Methods
For the purposes of improving the performance of students in computer programming courses, a list of teaching methods and strategies lecturers use were rated by students who have taken one or more computer programming courses at University. To improve on the success rate of the learner, many factors comprising of teaching methods and strategies have been listed for the students to rank in order of effectiveness and appropriateness.

Findings on Some of the Teaching Methods and Strategies
Among the identified teaching methods, it could be realized that the students rated the most effective methods which when adapted will enable them improve on their skills as compared to the least effective methods. From the responses provided by the respondents or students of the University, I have subdivided the level of effectiveness into two (most effective slightly effective is considered as one subdivision and generally effective not effective as the other subdivision) for the analysis.

Laboratory Practices
A large number of the participants agreed that to better understand the concepts learnt and improve success rate of computer programming, more time should be spent working with the student at the laboratory. They therefore ranked laboratory lectures as the first method among the selected methods in order of effectiveness. 92% of the participants agreed that laboratory practice is the most effective teaching method for teaching computer programming. Only 8% the participants disagreed to this fact. This exposes the learner to write up programs and apply the concepts learnt from teachers.

Project Works
The participants believe that when lots of projects are given to students in computer programming courses, it enhances their understanding of concepts and sharpens their skills in the course. This means that if lecturers will actively engage students to improve their learning of computer programming courses, then they are to engage the students with many practical projects. 80% of the students ranked this as the second most effective method that can be applied in teaching of computer programming courses. Although 20 % of the respondents had different opinion, the majority are in favor and are of the view that it is the most second of effective teaching method.

Lectures
To improve the performance of students in computer programming, students were asked to rank among other teaching methods the effectiveness of teachers' lecturing of computer programming and its impact on their passing rate. This was ranked third to projects in terms of enhancing learners' success rate. A considerable number of the students (68%) agreed unanimously that lectures are an effective method for teaching computer Computer Engineering and Intelligent Systems www.iiste.org ISSN 2222-1719 (Paper) ISSN 2222-2863(Online) Vol.11, No.2, 2020 programming courses. On the contrary, the remaining 32% somewhat disagree or were not in agreement whether lecturing affects their performance or not. In this regard, it could be emphasized that lecturers of computer programming courses are encouraged to adapt this method. Other factors that suffice in terms this method being effective method of teaching computer programming courses to reduce the failure rate and to improve on success or passing are teachers insuring that students actively participate in lectures and ensure effective completion of all aspects of courses properly.

Conclusion and Recommendation 9.1. Conclusion
From the analyses of the methods and strategies, the main problems identified by the selected experts who were interviewed and the survey conducted, it has been realized that aside the numerous causes of failure by University students' in computer programming courses discussed above, Computer programming is among the most challenging courses in computing and informatics school at Wachemo University, and the one that many find difficult to grasp, hence it is very important to select an appropriate teaching strategy like that of pre lectured methods (Shaari & Ahmed, 2018) that will provide University students with the most efficient learning environment (Shaari & Ahmed, 2018). To improve on the teaching methods discussed above, the following points have been outlined: a curriculum based computer programming courses that focuses on concepts rather than paradigms, the adoption of analogy in teaching most computer programming, assessment (objective testing and performance based assessment although from the survey, but the researcher suggests that in the performance based category, assessment such as laboratory exercise, programming assignments and examinations help to test students' ability to write working I conclude that most computer programming lecturers should adapt effective teaching methods and appropriate teaching strategies in teaching computer programming courses that will encourage more students to work hard and become highly skilled computer programmers. This will mean that there will be an increase in computer programmers and many real time applications will be developed to solve different kinds of problems accordingly.

Recommendation
Finally, I have recommended the following points to be considered in the coming research works. In this research work information was not collected by considering ages, genders, academic discipline of participants as the research focus was teaching methods and strategies; however, future studies may expand on existing knowledge by identifying connections between these factors and teaching methods and strategies adopted by teachers' to enhance computer programming in order to increase university students success rate and skills development.