Learning Introductory C Programming: Relevant ...

7 downloads 214 Views 449KB Size Report
engineering students have difficulty in understanding the basic programming concept ... spend 30 minutes to complete a simple programming task and even worst when there ..... representational Computer Environment for Beginners'. Learning of ... http://www.socialresearchmethods.net/kb/scallik.php. [13] Krathwol D. R. ...
The 11th International and National Conference on Engineering Education (INCEE-11) May 9-11, 2013 Phuket Graceland Resort and Spa Hotel, Phuket

Learning Introductory C Programming: Relevant Exercises Based On Student Difficulties Factors Teh Faradilla binti Abdul Rahman1, Zaid Mujaiyid Putra bin Ahmad Baidowi1, Juliana binti Jaafar2 1

Center of Foundation Studies, Universiti Teknologi MARA Puncak Alam, Selangor, Malaysia. 2 PhD Student, University of Leeds, Leeds LS2 9JT, United Kingdom Tel: +60129186831, Fax: +603325849929 Email: [email protected]

Abstract A program is a list of instructions for a computer to follow and it consists of six steps to write it. C programming is a core subject for foundation engineering in UiTM, Puncak Alam. Past assessments and random interviews showed that students face difficulty in understanding the concept of C programming. Therefore, the objective of this study is to identify the level of problem solving and logical thinking skills of the students. This study also aims to frame out a set of C programming exercise that suite with the students’ level. A quantitative research was carried out where as many as 343 students were involved in answering questionnaires and the result showed foundation engineering students were good in problem solving but lack in logical thinking. Thus, a set of exercise was framed out by implementing Bloom’s Taxonomy and accord with student’s level in problem solving and logical thinking skills. A good educator must know and identify the students’ needs and level as well as guide them during the learning process.

Keywords—C language, difficulty in learning programming, factor in learning, programming problem, teaching C programming

1.0 Introduction Introductory C programming is taught to Foundation of Engineering students at the second semester of the study. The very basic contents of C programming are taught to the students accordingly to suites their level study. The teaching and learning process are done through lecture and laboratory session which require students to do hands-on tasks. There were many approaches that had been carried out to teach C programming to students such as collaborative, problem solving, drill and practice, lecture and more. This research is about to investigate the aspects; prior knowledge, problem solving skills, and logic skills with the difficulty faced by engineering students in learning C programming. Based on past teaching experience, it was found that engineering students have difficulty in understanding the basic programming concept and thus unable to solve task given. From the random discussion with students, most of them agreed that it was difficult to learn and understand C programming. From past observations, most of the students

spend 30 minutes to complete a simple programming task and even worst when there were some students who were unable to understand question’s needs. It was also found that some of the students were able to understand the question’s needs and able to directly solve the problem by designing the algorithm and pseudocode, but they were unable to convert it into C programming syntax. The problem encountered might be probably caused by lack of prior knowledge in programming. It became more difficult for the students to understand C programming when they lack of problem solving skills and logic skills. The research questions in this study are: what are the student’s level of prior knowledge, problem solving skills and logic skills, as well as what are the programming exercises that suit with students’ prior knowledge, problem solving skills and logic skills? This research is to identify the level of student’s cognitive specifically in problem solving and logical thinking skills as well as to show if there are any relationship in difficulty to learn C programming. At the end of the study a set of exercises will be framed out according to the students’ level in problem solving and logical thinking skills. The development of the exercise questions also will be according to Bloom’s taxonomy. 2.0 Literature Review 2.1 Learning Programming Teaching and learning involves two ways of communication between a teacher and students which engage with learning materials and suitable teaching method. However, teacher would found that not all students can comprehend the lesson taught. As a result, students cannot perform in their group project, assignment and examinations. According to reference [9], the general-purpose languages such as C and Pascal, are difficult to be understood. It is because the languages are too complex and far from the students experience. In addition, the languages are not attractive to them especially, the layout and the design of the software itself. Most of the languages are taught by using black and white screen instead of interactive and colorful design. Reference [10] discover that one of the reasons the students feel programming difficult is because they are comfortable to learn and work with programming syntax rather than understand the programming concept. This causes the students

The 35th Council of Engineering Deans of Thailand

The 11th International and National Conference on Engineering Education (INCEE-11) May 9-11, 2013 Phuket Graceland Resort and Spa Hotel, Phuket unable to solve other problems in real life environment which needs logical and conceptual thinking. Among all, we believe the main factors that make programming difficult for Malaysian school learners are as lack of prior knowledge, problem solving skills and logic skills. Reference [6] also shows that problem in learning programming is students’ lack of generics problem solving skills and many students do not have enough logical knowledge. Besides, it is also mentioned that sometimes students do not know how common programming structures work or students have misconceptions about them. For example, students confused or wrongly understand the concept between “if” statements and “if...else” statements. The two statements should be used correctly in an appropriate coding to ensure the effectiveness of the computer processing. Otherwise, the computer just wastes the time to process the unnecessary coding. In fact, the computer can save the time to process the other codings. Reference [1] mentioned students also failed to apply correctly the knowledge they have learned which means the students did not fully understand programming concept and how apply the concept they have learnt. A student can learn to explain and understand a programming concept, for example, what does a pointer mean, but they are still unable to apply it appropriately in a program[3]. 2.2 Prior Knowledge, Problem Solving and Logical Thinking Skill Prior knowledge can be referred as the basic knowledge that one particular person has. Prior knowledge is one of the important aspects to be investigated by teachers because it will be easier for them to organize a lesson plan suite with student’s prior knowledge. In addition, the prior knowledge of students determines to a large extent what each individual can learn from a particular situation and how can they relate new ideas with what they already know. Reference [1] stated that new programmers lack the knowledge and skills of programming experts. New programmers also seem to be limited to surface of knowledge of programs and generally approach programming “line by line” rather than at the level of bigger programs structure. Students dealing with programming should have skills and concepts especially logic thinking [7]. This logic thinking should be gained from their secondary school. They learnt mathematics to get skills of logic thinking. Basically, students have the skills but they are not sure how to use logic thinking in doing programming. Lecturers play an important role to facilitate the student in using their logic thinking while doing programming. What the students learnt during their primary and secondary school was important especially Mathematics. The purpose of teaching the subject is to sharpen the students’ logic thinking. In logic thinking, the students are expected to analyze information based on logic sequence. A normal serial of numbers is 1, 2, 3, 4, 5 and so on. We could not skip one number of the series unless it is a serial of something. Problem solving skills are the central to develop competency as a programmer yet these skills seems to be inadequate in the incoming students [2]. Students should be

able to use problem solving skill in managing the big problem into smaller category and solve them one by one using the correct solution. On the other hand, teacher must know the student’s level of cognitive and logic skills so that teacher can identify and assign the suitable problem solving exercises to the students. Cognitive skill is related to mind or mental process which involves how each individual use mental to process certain information. Another important skill is logic because in computer programming, generally a series of instructions is meant to provide a solution. Therefore, even if the correct instruction is given but in the wrong sequence, it is useless. Strong logic skills allow the programmer to put everything in proper order [8]. Programming is the process of translating a task into series of commands a computer will use to perform that task [4]. Before students can start to write a program, they should be able to understand the background of the program which here cognitive skill took place. Reference [5] mentioned programming problem solving is similar to Gagne’s theory which to solve programming question, first, formulate and determine the problem to be solved. Second, analyze the problem to identify the important concept in the problem. Third, design the steps according to the concepts discovered earlier where logic skill must be implemented at this stage. Fourth, translate and start writing the program code based on the steps created during design stage. 2.3 Bloom’s Taxonomy This study is focus on the cognitive domain in revised Bloom’s taxonomy. There are six levels in cognitive domain as shown in Figure 1:

Figure 1 Revised Bloom’s Taxonomy

As the pyramid moves upward, the level of each item moves from simpler to more complex. According to Reference [13], remember covers the basic concept, theories, and facts that need to know by the learner, retrieving, recalling and recognizing relevant information from long-term memory. Understanding covers ability to digest the presentation of facts, instructions including oral and written. In understanding level, learners will do comparison, summarizing, interpreting, classifying and inferring the information. At the application level, implements the information into a given situation. Next

The 35th Council of Engineering Deans of Thailand

The 11th International and National Conference on Engineering Education (INCEE-11) May 9-11, 2013 Phuket Graceland Resort and Spa Hotel, Phuket level is analysis where information is divided into few parts and it relates the information to each other to come out with a procedure or structure. Evaluation level is where judgment is made based on certain criteria which involve checking and critiquing. Final level is creation where elements are form together to produce a new product. This process involves generating, planning and producing. 3.0 Research Methods The study is a descriptive research and used quantitative method where a survey was conducted in this research. Team members of this research first get the permission from the institution to do the research. The research population is the group of students who learn C programming that was chosen using non-random sampling method which involve the students of Foundation of Engineering UiTM. A set of questionnaire has been given to each student to be answered which consists of questions that suite to answer the research objective which is to identify the level of student’s prior knowledge, problem solving skills and logic skills. This research was conducted during the first week of second semester before lesson of C programming begins and students answered the questions using past experience and knowledge in various area. While at the end of the semester, 105 students were involved in creating C programming questions. The students were discussed in a group of 5 students and came out with their own questions based on their own knowledge in C programming. The students were allowed to refer to text book while creating and discussing the formation of questions. Before the students submit their set of questions, the researcher first checked the students’ questions as to ensure they did not copy the questions from past assessments. From this stage of data collection, the data is then analyses using Statistical Package for Social Science (SPSS) to calculate the data’s percentage frequency and it is shown in the form of graph. Further analysis and discussion on the result gained is conducted to achieve the final conclusion for the research study.

Figure 2 Number of students attended to certain school

Most of the Foundation Engineering students were graduated from Mara Junior Science College (MRSM) and Daily schools with the same number of students which is 95. The numbers of students were graduated from Science schools and boarding schools are 61 and 60 respectively. The balance of 31 students was graduated from other type of schools. 4.2 Academic Background In the academic background section, students were asked to write their result of Mathematics, Additional Mathematics, Bahasa Malaysia, English, History and Engineering Drawing that they achieved in Malaysian Certificate of Education (SPM). Figure 3(a), 3(b) and 3(c) show the results achieve by samples students in subjects mentioned earlier.

4.0 Data Analysis After gathered all the data from research samples, the data analysis were carried out to get a better result before go through discussion and conclusion. 4.1 Students Background As many as 245 male and 98 female students from Foundation Engineering UiTM Puncak Alam were used in this study, which makes the total number of samples in this study up to 343 students. Figure 2 shows the number of students that went to certain school before register in Foundation Engineering course. Figure 3(a) SPM results in Mathematics and Additional Mathematics

Figure 3(a) above shows research samples where students are more excellent in Mathematics compare to Additional Mathematics. Most of the students (73%) score an A+ for The 35th Council of Engineering Deans of Thailand

The 11th International and National Conference on Engineering Education (INCEE-11) May 9-11, 2013 Phuket Graceland Resort and Spa Hotel, Phuket Mathematics, 26% score an A and only 1% scores an A-. For Additional Mathematics, most of the students (32%) score an A+, followed by A- (26%), A (23%), B+ (17%) and B (2%).

samples involved. For Engineering Drawing, most of the students (70%) score an A, followed by A- (19%). Score of B+ and B have the same percentage (4%) while least students score an A+ (3%) for this subject. 4.3 Prior Knowledge in Programming

Figure 3(b) SPM results in Bahasa Malaysia and English

Figure 3(b) shows the result of Bahasa Malaysia and English gained by research sample in SPM. Most of the research samples (47%) were excellent in Bahasa Malaysia compared to English (7.2%). The score of A for Bahasa Malaysia and English have a difference of 0.1%. The score of A-, B+, B and B- for English are higher than Bahasa Malaysia with the percentage of 24.2% - 11%, 19.7% - 5%, 12.5% - 1% and 0.3% - 0% respectively.

Figure 4 Number of students learnt programming

Figure 4 above shows the statistics of students that have learnt programming before entering Foundation Engineering course. Majority (87%) of these sample students never learnt any programming language before and there are 13% of the sample students learnt programming during their secondary school. 4.4 Questionnaires

Figure 3(c) SPM results in History and Engineering Drawing

The statistics for History and Engineering Drawing are presented in above figure. The highest score for History is A (47%), followed by A+ (35%), A-(13%), B+ (4%) and B (2%). In this study only 69 of the sample took Engineering Drawing in SPM, the percentage is calculated based on the number of

Figure 5 Mean score for problem solving, logical and cognitive thinking.

In this research students were asked to answer mathematical questions that consist of two areas of research interest which

The 35th Council of Engineering Deans of Thailand

The 11th International and National Conference on Engineering Education (INCEE-11) May 9-11, 2013 Phuket Graceland Resort and Spa Hotel, Phuket are problem solving, and logical thinking. From the data collected, the mean score for each section of questionnaire is calculated and presented in Figure 5 above. Problem solving shows the highest mean score 3.05 and logical thinking with the mean of 2.60. 4.5 Questions Created by the Students

Figure 6 Statistic of questions according to Bloom’s taxanomy

At the end of the semester, as many as 21 groups of 5 students were asked to create their own questions for a particular chapter given. By using Bloom’s taxonomy, 105 questions were analyzed and categorized to respective level as shown in Figure 6. Most of the questions (57%) created by students were fall under remember level, followed by understanding level with the percentage of 23%. Application and analysis level have the same number of questions (10%) while no question is created fall under evaluation and creation level. 5.0 Discussion And Conclusion 5.1 Discussion C programming subject requires students to have strong cognitive thinking skills, therefore this study focuses on two sub-cognitive approaches i.e: problem solving skill and logical thinking skill. To run this study, we constructed various types of questions to measure the students’ level of thinking in Problem Solving and Logical Thinking. In this research, Likert Scale [12] was used in this study: 5 for Excellent, 4 for Good, 3 for Moderate, 2 for Poor and 1 for Very Poor, to evaluate the results. Based on data analysis section, we found that Problem Solving score is 3.05 and Logical score is 2.60 out of 5. The indicator for Problem Solving is 3.05 which mean upper the moderate level. Therefore, we can conclude that the students have skill in solving problems by using their own creativity. Meanwhile,

the indicator for Logical Thinking (2.60) is below the average. This shows that the students were lack in logical thinking skill. Students’ of Foundation Engineering in UiTM Puncak Alam learnt programming in second semester. At the end of the semester, 21 groups of 5 students were asked to create 5 questions that related to C programming. Based on the graph (Figure 6), it shows that all the students created the questions related to remember, understanding, application and analysis level. According to revised Bloom’s Taxonomy, there are 6 levels of thinking [11]: remember, understanding, application, analysis, evaluation and create. Therefore, we can conclude that the students have the ability to write, expect and think of questions that related to these four levels of thinking. Majority of the students created questions related to knowledge which is 57% from 105 questions. It shows that most of the students can think on the basic level. Meanwhile, 23% were related to understanding questions, 10% related to application questions and 10% related to analysis questions. It shows that only a few students can think on the understanding, application and analysis type of questions. It proved that they were thinking up to the analysis but not to evaluation and not to creation on something. To align with the students’ thinking ability, we designed exercises on C Programming that related to the three levels of thinking there are: remember, understanding, and application, in order to help the students understand the course easily. These three levels are at the lower hierarchy in Bloom’s taxonomy and appropriate to be applied in Introductory to C Programming as the novice students were expected to be able to know the basic concept, understand the algorithm and good in applying the programming concepts. Since the students have moderate problem solving skill and lack in logical thinking skill, the exercises are designed by using ratio 2:5:3. Two (2) questions from remember level (easy), five (5) questions from understanding level (moderate) and three (3) questions from application (hard). Two questions for remember are considered as minimum, just to measure the basic knowledge of C programming. Five questions for understanding are enough for that level to measure the students’ ability on that thinking level because majority of the students are at that level. They should score at the previous 2 levels (remember and understanding). However, 3 questions for application are considered enough to strengthen the two thinking levels. These application questions are in the form of programming case-based or problem solving case. The students need to read very careful and analyze the problem and apply their knowledge and comprehension skill to solve the problem. 5.2 Discussion We hope that by producing this kind of exercises based on the students’ ability, the students could perform better in C programming. At the same time, minimize the rumors telling that programming is hard to learn especially C. It is also hope that this research can be used as a reference to other teachers in conducting the suitable exercise that accord with students’

The 35th Council of Engineering Deans of Thailand

The 11th International and National Conference on Engineering Education (INCEE-11) May 9-11, 2013 Phuket Graceland Resort and Spa Hotel, Phuket level and ability. However there are many factor that can be studied to help in teaching and learning C programming where the teacher must also take into count other factor such as teaching approach, learning skills, students’ attitude and more.

[11] Atherton, J. (2010, 10 02). Bloom’s Taxonomy. Retrieved 04 15, 2012, from Learning and Teaching: http://www.learningandteaching.info/learning/bloomtax.h tm

Acknowledgment

[12] Trochim, W. M. (2006, 10 20). Likert Scaling. Retrieved 04 15, 2012, from Research Methods Knowledge Base: http://www.socialresearchmethods.net/kb/scallik.php

Al-Hamdulillah praises to Allah with His guidance this paper is finally completed. A very high appreciation to Center of Foundation Studies for letting this research to be done to our students and sincerely sponsored the research materials and resources. Lastly, thanks to all team members who had put in full commitment in completing this research paper.

[13] Krathwol D. R. (2002). Revising Bloom's Taxonomy. Theory Into Practice. Vol 41(4). College of Education, The Ohio State University.

Author Biography

Reference [1] Ala-Mutla, K. (2002). Problem in Learning and Teaching Programming. Codewitz Needs analysis. [2] Cotelleo, E., Sherry, E., and Mages, P. (2007). Determining Areas of Weakness in Introductory Programming As A Foundation Reusable Learning Objects. Journals of e-Learning; vol 5(1); pp 21 – 30.

TEH FARADILLA ABDUL RAHMAN is a Lecturer of Foundation Computing at Center of Foundation Studies, Universiti Teknologi MARA. Her research focuses on teaching and learning methodologies in higher education. She received her B.Sc. in Netcentric Computing from Universiti Teknologi MARA, Shah Alam, and a Master in Education (Mathematics) from Universiti Teknologi Malaysia, Johor.

[3] Mohd Nasir Ismail, Nor Azilah Ngah and Irfan Naufal Umar. (2010). Instructional Strategy In The Teaching Of Computer Programming: A Need Assessment Analyses. Journal of Educational Technology; vol 9 (2); The Turkish Online Journal. [4] Evans, A., Martin, K., Poatsy, M. A. (2011). Technology in Action. (7th ed). Pearson. [5] Grant, N. S. (2003). A Study on Critical Thinking, Cognitive Learning Style, and Gender in Various Information Science Programming Classes. 16 – 18; Indiana, USA. [6] Gomes, A. and Mendes, A.J. (2007). Learning Programming - Difficulties and Solutions. International Conference on Engineering Education. [7] Kordaki, M. (2010). A Drawing and Multirepresentational Computer Environment for Beginners’ Learning of Programming using C: Design and Pilot Formative Evaluation. Journal of Computerand Education, 54, 69-87. [8] Uniblue. (2007). How to Write Computer Program. (http://www.liutilities.com/how-to/write-computerprogram obtained on 10 October 2011) [9] Brusilovsky, P. et. al. (1997). Mini-languages: a way to learn programming principles. Journal of Education and Information Technologies, 2, 65–83. [10] Butler, M. and Morgan, M. (2007). Learning challenges faced by novice programming students studying high level and low feedback concepts, Proceedings ascilite Singapore, full paper.

The 35th Council of Engineering Deans of Thailand

Suggest Documents