Problems of Learning Programming Language
Abstract
Novice students normally will fear of anything new like programming language. They are introduced with programming terms that they are not familiar with and are needed to visualize the processes that happen in the computer memory on their own. Weak students find this a burden and therefore end up memorizing the processes, without understanding them. This
situation will cause students to get low grades in their programming subjects. This research aims to insist students develop the foundational capabilities needed to become successful programmers, that will help them learn how to effectively analyze, design, and implement software systems. Focus will be on the first semester students taking Fundamentals of Programming subject from three different programs offered in MIIT-UniKL (formerly known as Unikl- IIM), namely, Diploma in IT, Diploma in Multimedia and Diploma in System and Network. Findings indicated that percentage of passes for algorithm is higher than programming. Several factors are identified as contributing factor to the difficulties in grasping programming concepts.
1 Introduction
In MIIT-UniKL (formerly known as Unikl-IIM), Fundamentals of Programming is one of the subjects offered to first semester students. Enrolled as either Diploma in IT, Diploma in Multimedia or Diploma in System and Network students, they cannot escape from taking that subject. Many students no longer view programming as central to the course and a substantial number of today’s first year undergraduate students find learning programming is difficult. Learning a new language and new set of problem-solving techniques, as in programming, is a complex activity (Chalk et al. 2003).
It can be seen that the previous academic performance of the students was not the main contributor to the failure. Therefore, we believed that the problem is due to something that is not done right during the process of teaching and learning this course itself. In this paper, we focused on whether mastering algorithm will contribute to the understanding of programming language.
1.1 Problem Statements
Currently in MIIT-UniKL (formerly known as Unikl-IIM), students undergo Fundamentals of Programming were assigned with 2 periods of class lectures and 2 periods of lab session. One period is equivalent to 50 minutes of lecturing or lab session. Previous examination result shows a poor performance of students for this subject. Some students need extra amount of exercise and explanation to cope with the subject. The students need to understand the key concepts of the subject in order to be successful. Therefore, for the purpose of evaluating these issues and providing guidelines, the following research questions and objectives were formed.
1.2 Research Objectives
The main objective of this research is to obtain factors that affect student low performance in learning programming subjects. To carry out the objective, the following sub-objectives are executed.
a. To measure the percentage of passes of two different programming concepts
b. To compare the percentage of passes from three different programs.
1.3 Research Scope
The study took place at MIIT-UniKL (formerly known as Unikl-IIM) and focuses only on first semester students. The students are from Diploma in IT, Diploma in Multimedia and Diploma in System and Network. Final examination answer scripts for subject Fundamentals of Programming were analyzed and discussed.
2 Background of Study
One of the main courses in first year study in most CS programs and related disciplines is still programming and learning programming seems to be a very difficult task for many students. Different aspects of the problem have been discussed, it has been pointed out that new programming languages are more complicated to learn and teachers should consider carefully what programming language to choose for novice programmers. Universities also have to consider how to assist students in their learning, because we need more young people in the field, both male and female students (Ásrún 2004).
In similar study, few students find learning to program easy. There are many factors that contributed to these deficiencies in programming skills. Less attention has been paid to the subject of programming itself, changes must be made to the when the subject should be introduce, who should be teaching, the suitable teaching style and the adequate support to students (Jenkins 2002).
The main focus is the staff per student ratios have climbed as a result and there is less time to support students to gain essential programming skills in their first year. Some of the problems of teaching programming to student are identified and point out that good use of tutorial groups and various mean of assessment help student to learn programming language better (Jefferies 2002).
Dunican (2002) discusses some of the fundamental problems encountered by student on first year computer programming courses. Most of the programming students do not have logic/problem solving ability prior entering first year. Different categories of novice programming student are identified and adequate pedagogical techniques must be utilized to guide the student. Teaching of initial programming is a significant pedagogical problem for computing departments. It is shown that by understanding the changing characteristics of computing students helps to identify their learning approaches and requirements. These findings are used to explain the rationale for the development and use of a virtual learning environment to support the learning of introductory programming (Allison, Powell & Orton 2002).
3 Methodology
The methodology as depicted in Figure 3.0 was used for the purpose of this study.
Figure 3.0: Methodology Used
It can be seen that the previous academic performance of the students was not the main contributor to the failure. Therefore, we believed that the problem is due to something that is not done right during the process of teaching and learning this course itself. In this paper, we focused on whether mastering algorithm will contribute to the understanding of programming language.
1.1 Problem Statements
Currently in MIIT-UniKL (formerly known as Unikl-IIM), students undergo Fundamentals of Programming were assigned with 2 periods of class lectures and 2 periods of lab session. One period is equivalent to 50 minutes of lecturing or lab session. Previous examination result shows a poor performance of students for this subject. Some students need extra amount of exercise and explanation to cope with the subject. The students need to understand the key concepts of the subject in order to be successful. Therefore, for the purpose of evaluating these issues and providing guidelines, the following research questions and objectives were formed.
1.2 Research Objectives
The main objective of this research is to obtain factors that affect student low performance in learning programming subjects. To carry out the objective, the following sub-objectives are executed.
a. To measure the percentage of passes of two different programming concepts
b. To compare the percentage of passes from three different programs.
1.3 Research Scope
The study took place at MIIT-UniKL (formerly known as Unikl-IIM) and focuses only on first semester students. The students are from Diploma in IT, Diploma in Multimedia and Diploma in System and Network. Final examination answer scripts for subject Fundamentals of Programming were analyzed and discussed.
2 Background of Study
One of the main courses in first year study in most CS programs and related disciplines is still programming and learning programming seems to be a very difficult task for many students. Different aspects of the problem have been discussed, it has been pointed out that new programming languages are more complicated to learn and teachers should consider carefully what programming language to choose for novice programmers. Universities also have to consider how to assist students in their learning, because we need more young people in the field, both male and female students (Ásrún 2004).
In similar study, few students find learning to program easy. There are many factors that contributed to these deficiencies in programming skills. Less attention has been paid to the subject of programming itself, changes must be made to the when the subject should be introduce, who should be teaching, the suitable teaching style and the adequate support to students (Jenkins 2002).
The main focus is the staff per student ratios have climbed as a result and there is less time to support students to gain essential programming skills in their first year. Some of the problems of teaching programming to student are identified and point out that good use of tutorial groups and various mean of assessment help student to learn programming language better (Jefferies 2002).
Dunican (2002) discusses some of the fundamental problems encountered by student on first year computer programming courses. Most of the programming students do not have logic/problem solving ability prior entering first year. Different categories of novice programming student are identified and adequate pedagogical techniques must be utilized to guide the student. Teaching of initial programming is a significant pedagogical problem for computing departments. It is shown that by understanding the changing characteristics of computing students helps to identify their learning approaches and requirements. These findings are used to explain the rationale for the development and use of a virtual learning environment to support the learning of introductory programming (Allison, Powell & Orton 2002).
3 Methodology
The methodology as depicted in Figure 3.0 was used for the purpose of this study.
Figure 3.0: Methodology Used
This study was conducted in the July 2005 semester at MIIT-UniKL (formerly known as UniKL-IIM). The study was done on students of three different programs offered in UniKL, namely, Diploma in Information Technology (DIT), Diploma in Multimedia (DIM) and Diploma in System & Network (DSN). The data and fact-findings are done through document sampling. There are a total 29 student from DIT, 36 students from DIM and 26 students from DSN sat for the final examination for Fundamentals of Programming paper. Out of this total 20 students from each program were randomly selected as samples for this study.
3.1 Document sampling
Document sampling is one of the fact-finding techniques, which is used to capture information. According to Whitten et al. (2001), a good analyst always gets facts from existing documents rather than people. Final examination paper of Fundamentals of Programming subject from the selected samples was collected in the information gathering phase, analyzed in the data analysis phase and interpreted in the interpretation phase.
The analysis was done only for the final part of the examination paper. The final part of the examination question consists of two related questions. The first question emphasizes on testing students’ understanding on algorithm. While the second question is the implementation of the algorithm (writing a full program code) solved in question 1. Each question carries 10 marks and the passing mark is set to 4.
Figure 3.1 shows excerpt from the final examination question paper for Fundamentals of Programming subjects.
Figure 3.1: Excerpt of Final Examination Paper
3.1 Document sampling
Document sampling is one of the fact-finding techniques, which is used to capture information. According to Whitten et al. (2001), a good analyst always gets facts from existing documents rather than people. Final examination paper of Fundamentals of Programming subject from the selected samples was collected in the information gathering phase, analyzed in the data analysis phase and interpreted in the interpretation phase.
The analysis was done only for the final part of the examination paper. The final part of the examination question consists of two related questions. The first question emphasizes on testing students’ understanding on algorithm. While the second question is the implementation of the algorithm (writing a full program code) solved in question 1. Each question carries 10 marks and the passing mark is set to 4.
Figure 3.1 shows excerpt from the final examination question paper for Fundamentals of Programming subjects.
Figure 3.1: Excerpt of Final Examination Paper
4 Results and Discussions
4.1 Document sampling
The final examination marks document involved in this study was gathered and studied deliberately in order to get the actual criteria contributing to the problems stated in section 1.1 earlier. For the purpose of this study, the following were analyzed from the final examination samples:
1. Percentage of passes and failures (Question 1 and Question 2) for DIT
2. Percentage of passes and failures (Question 1 and Question 2) for DIM
3. Percentage of passes and failures (Question 1 and Question 2) for DSN
4. Percentage of passes (Question 1 and Question 2) for all programs.
5. Percentage of failures (Question 1 and Question 2) for all programs.
Table 4.0 presents the percentage of passes and failures from 20 DIT students. These values were obtained from final examination marks for question 1 and question 2 only. Figure 4.0 shows the comparison between passes and failures for each question.
4.1 Document sampling
The final examination marks document involved in this study was gathered and studied deliberately in order to get the actual criteria contributing to the problems stated in section 1.1 earlier. For the purpose of this study, the following were analyzed from the final examination samples:
1. Percentage of passes and failures (Question 1 and Question 2) for DIT
2. Percentage of passes and failures (Question 1 and Question 2) for DIM
3. Percentage of passes and failures (Question 1 and Question 2) for DSN
4. Percentage of passes (Question 1 and Question 2) for all programs.
5. Percentage of failures (Question 1 and Question 2) for all programs.
Table 4.0 presents the percentage of passes and failures from 20 DIT students. These values were obtained from final examination marks for question 1 and question 2 only. Figure 4.0 shows the comparison between passes and failures for each question.
Table 4.0: Detailed Percentage of Passes and Failures for DIT Students
Figure 4.0: Percentage of Passes and Failures for DIT Students
Figure 4.0: Percentage of Passes and Failures for DIT Students
Table 4.1 presents the percentage of passes and failures from 20 DIM students. These values were obtained from final examination marks for question 1 and question 2 only. Figure 4.1 shows the comparison between passes and failures for each question.
Figure 4.1: Percentage of Passes and Failures for DIM Students
Figure 4.1: Percentage of Passes and Failures for DIM Students
Table 4.2 presents the percentage of passes and failures from 20 DSN students. These values were obtained from final examination marks for question 1 and question 2 only. Figure 4.2 shows the comparison between passes and failures for each question.
Table 4.2: Detailed Percentage of Passes and Failures for DSN Students5 Conclusion
The analysis that had been done to the collected data showed that percentage passes for algorithm problems (question 1) is higher as compared to programming problems (question 2). Though the percentage passes for algorithm is higher than programming segment, it indicated that student still lacks of knowledge to transform the algorithm into valid program codes. Through discussion, students have to spend more time in understanding the programming syntax and converting algorithm into working program codes.
Thus, it shows that the students really need to grasp the programming concept in order to excel in programming. In terms of percentage of passes, it can be concluded that DIM has the highest, DIT falls for second highest and DSN has the lowest among all programs.
From the findings, we can summarize that:
1. A proper training in teaching and motivating students is required
2. A method for teaching programming effectively need to be developed
3. A guideline for converting algorithm into program should be properly planned
4. Excessive written programming exercises should be given prior to lab sessions
5. Type of questions should not be mathematic oriented, instead it should bevaried.
6 Future Work
There are few matters such as students’ understanding and their perception on programming subject can be further studied. Different instructional styles can be explored and conducted to see if the performance of the students can be improved.
Hopefully, a set of instructional guidelines that can help to encourage students to perform better in the first programming course and to have a positive attitude towards higher level programming courses.
References
Allison, I., Powell, H. & Paul, O (2002). A Virtual Learning Environment for Introductory Programming. In Proceedings of the 3rd Annual Conference of the LTSN-ICS, Loughborough, U.K.
Ásrún Matthíasdóttir (2004), Learning objects in a multimedia interactive environment.The Codewitz project. International Conference on Computer Systems and Technologies – CompSysTech.
Chalk, P., Boyle, T., Pickard, P., Bradley, C., Jones, R., Fisher, K., (2003). Improving Pass Rates in Introductory Programming. Proceedings of 4th Annual Conference of the Learning and Teaching Support Network for Information and Computing Science, Galway, Ireland.
Dunican, Enda (2002). Making The Analogy: Alternative Delivery Techniques for First Year Programming Courses. In Proceedings of the 3rd Annual Conference of the LTSN-ICS, Loughborough, U.K.
Jefferies, Amanda (2002). Size Matter – Teaching Initial Programming to Large Groups of Students. In Proceedings of the 3rd Annual Conference of the LTSNICS, Loughborough, U.K.
Jenkins, Tony (2002). On the difficulty of learning to program. In Proceedings of the 3rd Annual Conference of the LTSN-ICS, Loughborough, U.K.,
Whitten, J.L., Betley, L.D & Diltman, D.C (2001). System Analysis and Design Method (5th ed) Boston: Mc-Graw- Hill Education.
The analysis that had been done to the collected data showed that percentage passes for algorithm problems (question 1) is higher as compared to programming problems (question 2). Though the percentage passes for algorithm is higher than programming segment, it indicated that student still lacks of knowledge to transform the algorithm into valid program codes. Through discussion, students have to spend more time in understanding the programming syntax and converting algorithm into working program codes.
Thus, it shows that the students really need to grasp the programming concept in order to excel in programming. In terms of percentage of passes, it can be concluded that DIM has the highest, DIT falls for second highest and DSN has the lowest among all programs.
From the findings, we can summarize that:
1. A proper training in teaching and motivating students is required
2. A method for teaching programming effectively need to be developed
3. A guideline for converting algorithm into program should be properly planned
4. Excessive written programming exercises should be given prior to lab sessions
5. Type of questions should not be mathematic oriented, instead it should bevaried.
6 Future Work
There are few matters such as students’ understanding and their perception on programming subject can be further studied. Different instructional styles can be explored and conducted to see if the performance of the students can be improved.
Hopefully, a set of instructional guidelines that can help to encourage students to perform better in the first programming course and to have a positive attitude towards higher level programming courses.
References
Allison, I., Powell, H. & Paul, O (2002). A Virtual Learning Environment for Introductory Programming. In Proceedings of the 3rd Annual Conference of the LTSN-ICS, Loughborough, U.K.
Ásrún Matthíasdóttir (2004), Learning objects in a multimedia interactive environment.The Codewitz project. International Conference on Computer Systems and Technologies – CompSysTech.
Chalk, P., Boyle, T., Pickard, P., Bradley, C., Jones, R., Fisher, K., (2003). Improving Pass Rates in Introductory Programming. Proceedings of 4th Annual Conference of the Learning and Teaching Support Network for Information and Computing Science, Galway, Ireland.
Dunican, Enda (2002). Making The Analogy: Alternative Delivery Techniques for First Year Programming Courses. In Proceedings of the 3rd Annual Conference of the LTSN-ICS, Loughborough, U.K.
Jefferies, Amanda (2002). Size Matter – Teaching Initial Programming to Large Groups of Students. In Proceedings of the 3rd Annual Conference of the LTSNICS, Loughborough, U.K.
Jenkins, Tony (2002). On the difficulty of learning to program. In Proceedings of the 3rd Annual Conference of the LTSN-ICS, Loughborough, U.K.,
Whitten, J.L., Betley, L.D & Diltman, D.C (2001). System Analysis and Design Method (5th ed) Boston: Mc-Graw- Hill Education.
0 Response to "Problems of Learning Programming Language"
Post a Comment