Difficulties Facing Students in Learning Computer Programming Skills at Tabuk University
|
|
|
- Eunice Pierce
- 10 years ago
- Views:
Transcription
1 Difficulties Facing Students in Learning Computer Programming Skills at Tabuk University MAHMOUD M. MHASHI AND ALI M. ALAKEEL Department of Computer Science Faculty of Computers and Information Technology University of Tabuk, Tabuk 71491, P.O.Box 741 Kingdom of Saudi Arabia Abstract: - Learning programming skills is not an easy task as supported by many research studies. Like other students around the world, the students of the University of Tabuk struggle through computer programming courses. This research investigates and analyzes the problems faced by computer programming students at the University of Tabuk with two main objectives. The first objective is to find out whether the students at the University of Tabuk face problems in computer programming similar to the ones faced by the students in different corners of the world as reported in the literature. The second objective is to study the impact of sociocultural and environmental factors on learning computer programming skills by the students of the University of Tabuk. To perform our research, a case study and a questionnaire were designed. In order to ascertain whether our students face difficulties in programming, a case study with 10-questions test was performed. The results have shown that our students are in real difficulties. In the questionnaire, the questions reflect a wide range of views pertaining to educational facilities such as curriculum and teaching materials, lab equipments and class rooms environment, and the adequacy and proficiency of the professors and teaching assistants. This paper analyses the results of the questionnaires. The questionnaires provide insight into the environmental and socio-cultural effects and the difficulties experienced while learning and teaching programming.. Key-Words: - Programming difficulties, learning, teaching, novices, and environmental and socio-cultural effects. 1 Introduction Computer programming skills are very fundamental to the computer related fields of studies. Most of the students are required to take an introductory programming course and the basics of it. Programming is an academic discipline. Furthermore, programming is a skill requiring novice programmers to utilize multiple types of learning simultaneously [1]. Novice programmers lack the knowledge and skills of programming experts. The knowledge of novices tends to be context specific rather than general [2]. Winslow [3] have concluded that novices are limited to surface and superficially organized knowledge, lack detailed mental models, fail to apply relevant knowledge, and approach programming line by line rather than using meaningful program chunks or structures. Novices spend little time in planning and testing code, and try to correct their programs with small local fixes [4]. The computer programming learning is very complicated for many novice students at university level [5]. Computer programming is not difficult only because of the abstract concepts, but also students have problems in different issues related to program construction. The main source of difficulty does not seem to be the syntax or understanding of concepts, but rather basic program planning [6]. The introductory programming courses have a relatively high fail rate. Hagan in [7] indicates that programming was considered the most difficult and least interesting subject by most first year students in all computing courses. Many institutes report dropout rates of percent [8-14]. Because of the importance of computer programming and the difficulties faced by the novice students, many authors have investigated this topic in one form or another [15-27]. The organization of this paper is as follows. Section 2 contains the design, the collected data, and the analysis of the 10 questions to test the current level of programming for our students. The survey design and methodology will be introduced in Section 3 and the analysis of the results in Section 4. The results of both the case study and the survey ISBN:
2 will be discussed further in Section 5, followed by the conclusions in section 6. 2 Testing students abilities case study In order to make sure that our students facing difficulties in computer programming, they were tested on their ability to select the correct answer from a set of possibilities. 2.1 Questions Design and Results The questions design covers three styles of questions which include 1) the prediction of the outcome of a short piece of code and choice of the correct option, 2) the selection of the correct functionality of a given piece of code from a set of possible options, and 3) the selection of one or more missing code segments from a set of possible segments of code suitable for the required functionality according to the description provided to the students. The data was collected by asking students to answer 10 multiple choice questions. The programming code was given in C#. The questions were intended to test students knowledge and skills for generic, loops, and iterative processes on arrays. The students volunteered to participate in this case study. The students were allowed to make drawings and calculations on their respective questions papers. The students answered all the questions in 25 to 65 minutes. The students were not trained earlier therefore they were not well prepared to do well on the type of multiple choice questions used in this study. The following is a statistical analysis of the performance data. Figure 1 shows a histogram of scores (out of 10) of 165 students who were given all ten questions. The scores cover the complete range, from 0 to 10. Table 1 shows the boundaries for these students. Number of students Score on the 10 Questions Figure 1: Distribution of scores for students who were given all 10 Questions (N=165). Range Score No. of Percentage No. Range students % % % Table 1: The boundaries for students who were given all 10 Questions (N=165). 2.2 Questions Discussion Table 2: shows the percentage of students who answered each of the 10 questions correctly. The relative difficulty of each question can be defined by the percentage of students who answered the question correctly. The hardest questions are 1, 2, 5, and 7. At first glance, question 1 might appear to count the number of elements added in the summation of the elements in the array, which is value 5 (choice d). However, on closer inspection of the code, it can be seen that the elements in the array will be added till the total becomes equal to the value of size, so the correct answer is 3 (choice c). ISBN:
3 Question no. Percentage Correct No. of Students 1 09% % % % % % % % % % 50 Table 2: Percentage of students who answered each of the 10 Questions correctly. The same idea is repeated in question 7 in another form. In Question 2, the code might appear to count the number of swaps between the smaller elements in the first array with the corresponding elements in the second array, which is 2 (choice C). However, it can be seen that the elements at position 0 in the arrays are not reached, so the correct answer is 1 (choice D). In question 5, it might appear to test whether the data in the array are sorted in descending order. Most students got confused between the answers (choice a, and choice e). On closer inspection, the function tests whether the data in the array is sorted in descending order or not, so the correct answer is choice c. So the ability to read what the code actually does, rather than what we think it should do, is an important programming skill. Most of the students (75%) who fall within the first range, scoring 0-3 out of 10, we think they might suffer from problems in fundamentals, an inability to problem-solving, and language constructs. While these statistics will surprise many lecturers, yet these are very useful statistics for them to quote to their students. The students weakness was the inability to reason at a more abstract level to select the missing line of code. It seems that the students in this range answer the questions based on their look rather than their meaning. Furthermore, they are very weak in English. This is because in question number 3, the word including is used in a wrong answer choice (e) and the word excluding is used in the correct answer choice (d). However, most of the students selected the wrong answer choice (e). This might have happened because the students do not understand the meanings of these two words or they got confused in their meanings. Based on the previous, it is not possible to draw any firm conclusions as to the exact cause of this weakness. To explore that issue further, the rest of the paper examines the other survey gathered in this project. 3 Survey and Design Methodology In this survey, we studied the C# course to get ideas for topics and information of the preferred materials, and to find out the perceptions on the different programming phases and learning situations. The questionnaire had six different sections: course contents, programming environments, student environments, teaching aspects, materials, and instructor issues from student point of view. The questions can be seen in Appendix II. The goal of the first section was to find out difficulties in learning the course contents, including the issues in program construction and the programming concepts. The questions asked the respondents to grade programming aspects and concepts on a five-point scale from least difficulty (1) to the most difficulty (5). The second section contained questions about programming environment issues. The goal was to find out what kind of programming environment issues the students consider most effective. The scale for responses was the same as before, from 1 to 5, varying from the student feeling that he was learning never in that kind of issue (i.e., 1 is the minimum) to learning always (i.e., 5 is the maximum). The third section contained questions about student environment issues. The goal was to find out the effect of students environment on learning programming. The scale for responses was from 1 to 5, varying from the least positive effect to the most of positive effect on learning programming. Section number four contains questions about teaching programming issues. Responses are varying from 1 (minimum positive effect) to 5 (maximum positive effect) on learning programming. The fifth section contained questions about the materials. The goal was to find out the effect of teaching material on the learning programming. The scale for responses was varying from 1 - practically useless to 5 - very useful. The last section contained issues about the lecturer from the students point of view. The goal was to find out the effect of the lecturer behavior and other issues on the student achievement. The scale of responses was varying from the least positive effect to the most positive effect. ISBN:
4 4 Survey Result Analysis In all 143 students answered the survey. The results of the different sections, including course contents, programming environments, student environments, teaching aspects, materials, and instructor issues from student point of view about learning programming are presented in Table 3. The respondents perceived as the most difficult programming concepts were loop structures (C5), recursion (C6), arrays (C7), pointers (C8), passing parameters (C9), abstract data types (C10), and using the library functions (C14). Recursion, pointers, and abstract data types are abstract concepts and thus many novice programmers find them difficult to understand. In the programming environment, the students rated access to computers labs (PE2), understanding the programming syntax (PE4), designing programs (PE5), Dividing problems into sub-problems (PE6), designing functions (PE7), and finding bugs (PE9) the most difficult. Some students wrote that there are no free computer labs available at the campus for practice. The least positive effect of student environment issues were the student's opportunity to ask questions (SE2), programming experience before attending this course (SE4), and attending programming exercise (SE5). Regarding asking questions, as far as we know, the opportunity to ask questions is available. However, most students might hesitate to ask questions during the lecture. About the third issue, some students wrote that there was no time reserved to solve exercises other than the time of lectures. Table 3: Results are on the different sections about programming learning. Code Level of difficulties of programming concepts on programming learning Ave rag e C1 Declaration المتغيراتVariables C2 C3 Assignment statement 2.1 C4 Conditional statements 2.3 C6 Recursion المصفوفات C7 Arrays 4.1 المو شراتPointers C8 C9 Passing Parameters 3.2 C10 Abstract data types 3.0 C11 Input/output handling الا خطاء القواعديerrors C12 Syntax C13 Logical errors 2.3 C14 Using and understanding library functions 3.3 Programming Environment effect on programming learning PE1 Program development environment 2.5 PE2 Access to computers/networks 3.7 PE3 Learning programming structures 2.9 PE4 Understanding the programming syntax 3.5 PE5 Designing a program 3.8 PE6 Dividing problems into sub-problems 3.3 PE7 Designing functions 3.5 PE8 Dividing functionality into procedures 2.8 PE9 Finding bugs SE1 SE2 3.4 اآتشاف الخلل البرمجي Student Environment effect on programming learning Level of effort you put into the 4.0 الجهد المبذول في هذا المقرر course. The student's opportunity to ask questions. 2.1 SE3 Lecture attendance 4.8 C5 Loop structures 3.0 SE4 Level of programming experience before this course 2.5 ISBN:
5 SE5 Attending programming exercise 2.0 حضور حل التمارين SE6 Solving programming exercise, homework s and assignments 3.6 Teaching Issues effect on programming learning 3.6 المحاضرات TI1 Lectures TI2 Exercise sessions الحصص العملية TI3 Practical sessions 2.6 الدراسة لوحدك TI4 Studying alone TI5 Studying with friends 3.3 TI6 Studying with help from someone knows programming 3.9 Materials Effect on programming learning 2.7 الكتاب المقرر ME1 Course book ME2 Lecture notes صفحات الويب ME3 Web-pages ME4 Copies of transparencies 2.4 ME5 Exercise questions and answers 2.8 ME6 Programming examples 3.0 ME7 Interactive visualizations 3.0 ME8 ME9 ME1 0 ME1 1 The appropriateness of the amount of material the course attempted to cover. 3.1 The content is arranged in a clear, logical and orderly manner 3.4 The content covers most of the topics you expected to find. 3.4 The level of usefulness of examples was shown 2.4 Instructor from student point of view I1 Instructor knowledge of programming. 3.0 I2 The instructor returned examinations and papers in a timely fashion. 3.5 I3 I4 The instructor provided feedback regarding completed course assignments. 2.5 The level of benefit of the feedback you received. 2.6 I5 The size of the class. 3.1 I6 The instructor's responsiveness to student questions and ideas. 2.4 I7 The instructor's presentations impacted on my understanding of material. 3.2 I8 The instructor's ability to communicate the subject to the student. 3.1 I9 Availability of instructors (office hours, and telephone calls). 3.2 I10 The instructor's enthusiasm in talking about course material. 3.1 I11 The instructor's interest in teaching. 3.2 I12 I13 I14 I15 The instructor's use of examples or personal experience to help get points across. 3.1 The instructor's ability to relate the course concepts in a systematic manner. 2.8 The instructor is able to teach at the students level 3.0 Was the use of the board/powerpoint useful? 3.5 The least useful teaching issues were exercise sessions (TI2) and studying alone (TI4). This supports SE5 where there was no reserved time to solve exercises. Students rated studying with friends (TI5) and studying with ISBN:
6 the help of someone who knows programming (TI6) more useful than studying alone (TI4). The students were happy from the benefit they got from the lectures (ME2). This was because; they rated the usefulness from the lecture notes much higher than it was from course book (ME1), Web-pages (ME3), or copies of transparencies (ME4). The students rated the exercise questions and answers (ME5) less useful than as it was supposed to be. The usefulness of examples presented in the class (ME11) was not supported enough by the students understanding programming. Regarding the section of the instructor from the students point of view, the students were not happy with the feedback provided by the instructor regarding the completed assignments (I3). Furthermore, they were not satisfied with the usefulness of the provided feedback (I4). Similarly, the students were not convinced that the instructors were not able to relate the course concepts in a systematic manner. 5. Discussion First of all we have to bear in mind that the responses are subjective opinions of the students who answered the questions in the survey. The students do not always see their difficulties. The students might think that they well understand a specific topic but actually they do not. In the survey, the level of difficulties for loops (C5) with average (3.0) and arrays (C7) with average (3.2) were not as the same level as pointers (C8) with average (4.1). On the other hand, most of the students (75%) who answered the 10 questions (Table 1) fall within the first range, scoring 0-3 out of 10. So, one of the bigger problems of students does not seem to be the understanding of the basic concepts but rather learning to apply them. The results show that there were many structures related aspects that are difficult for the students to learn which include loops, recursion, arrays, pointers, passing parameters, and the abstract data types (Table 3). The theoretical lectures are very important in learning programming; students need practical sessions to understand the concepts. The students admitted that there were some difficulties in programming environment. These difficulties ranged from access to computer labs to finding bugs (see Table 3). However, the frequent practical exercises that are a feature of most programming courses are central in helping understanding the language features. Programmers must learn to develop tracking and debugging skills so as to model and correct their programs. In practical/laboratory based work it may be useful for instructors/teaching assistant to particularly attend and involve as in aid to designing the problems and assisting individual students to change their code. Student environments had a major effect on learning programming. It is clear from the survey that the students, even though they put in a serious effort on the course (SE1), (SE3), and (SE6), but still the results in the 10-questions were very low. Furthermore, the students opportunity to ask questions was low (SE2). This might have happened because the students were afraid and hesitant, they had lots of questions but they did not know what they had to ask, or the lecturers lacked the skills to encourage the students to ask questions. The experience of the students was low (SE4). The students were weak in English language. This was clear from their answers to the question number 3 as most of the students selected the wrong answer E. When we asked some students about that, we realized that the students did not understood the meaning of the word Excluding in the correct answer D and the meaning of the word including in the wrong answer E. So, this supports the results in the literature in that the students whose first language was not the same as that used in the course, performed less well than other students. The English background is in relation to the students performance in CS course and in CS degree in general. Poor English skills are related to the difficulties and correspondingly strong English background is related to the success both in CS course and in degree level. One of the problems in teaching programming is the exercise sessions (TI2). The students seem to be dissatisfied with their effectiveness. The exercise sessions need more attention. We think the students overestimate achievement from the lectures and the practical sessions. This is the reason why students prefer studying with friends or seeking help from paid home tutors who are good at programming instead of studying alone. The students appear to consider the lecture notes more useful than the course book (written in English language), Web-pages, and copies of transparencies. This lends support to the fact that the students were weak in the English language. The rest of the material forms were considered equally useful. Thus the students want more attention to be given to some other kind of materials. The students were not happy with the feedback provided by their lecturers on completed course assignments (I3). In addition, if that feedback was available it was not as useful as it was supposed to ISBN:
7 be (I4). It is necessary that the lecturers give enough feedback about the exercises and assignments and solve them. This might help the students to understand how the programs work and understand their code better. Increasing the number of exercises, assignments, carefully selecting them, and solving them after completion will increase the students knowledge and their skills development. The students were also not happy with the instructor's response to the students questions and ideas (I6). The lecturers must have experience in teaching programming and must have the ability to affect and control the teaching interaction in order to make interaction process more effective to help the students learn programming. 6. Conclusion Learning to program is a complex task. This paper has presented results from a case study and a questionnaire whose purpose was to make sure that our students face difficulties in programming and to rank programming issues in order of difficulties from students points of view. The students face real difficulties in programming. The students lack the ability to problem solving and design at its different stages, and general programming topics. Most of the students lack skills even to analyze a short piece of code. In addition, students are not hard working and they lack understanding. Poorly designed course, students weakness in English language, lack of practice and exercises feedback, and lecturers insufficient skills in organizing the material and lack of support by the university (large number of students in labs, and availability of assistant lecturers), were seen as possible factors related to the difficulties. Finally, one of the difficulties was the students level of maturity. This category included students conduct: need for hard work, class and lab attendance, solving home works and exercises, getting feedback from the lecturers, and involvement in class interactive visualizations. 7. REFERENCES [1] C. Bereiter and E. Ng. (1991) Three Levels of Goal Orientation in Learning. Journal of the Learning Sciences, Vol. 1, pp [2] Pat Byrne and Gerry Lyons. (2001) The Effect of Student Attributes on Success in Programming. Proceedings of ITiCSE 2001, pp [3] John Davy and Tony Jenkins. (1999) Research-Led Innovation in Teaching and Learning Programming. Proceedings of ITiCSE '99, pp 5-8. [4] Edsger W. Dijkstra. (1989) On the Cruelty of Really Teaching Computing Science. Comm. ACM, Vol.32, pp [5] Gerald E. Evans and Mark G. Simkin (1989) What Best Predicts Computer Proficiency? Comm. ACM, Vol. 32, pp [6] Ala-Mutka, K., "Problems in Learning and Teaching Programming", Codewitz Needs Analysis: Institute of Software Systems, Tampere University of Technology. [7] Dianne Hagan and Selby Markham. (2000) Does it help to have some programming experience before beginning a computing degree program? Proceedings of ITiCSE 2000, pp [8] Lawrence J. Mazlack., (1980) Identifying Potential to Acquire Programming Skill. Comm. ACM, Vol. 23, pp [9] D. N. Perkins, Schwartz S., and Simmons R. (1988) Instructional Strategies for the Problems of Novice Programmers. In R. E. Mayer (ed), "Teaching and Learning Computer Programming", pp , Lawrence Erlbaum Associates. [10] Cheng Wing Fat Johnny, (2010) Teaching and Learning to Program: A Qualitative Study of Hong Kong Sub-Degree Students, University of Technology, Sydney. [11] McCracken, M., Almstrum, V., Diaz, D., Guzdial, M., Hagan, D., Kolikant, Y. B.-D., Laxer, C., Thomas, L., Utting, I., and Wilusz, T. (2001). "A multi-national, multiinstitutional study of assessment of programming skills of first-year CS students." SIGCSE Bull., 33(4), [12] Bennedsen, J. & Caspersen, M. E. (2007), Failure Rates in Introductory Programming, ACM SIGCSE Bulletin, Volume 39 Issue 2, pp [13] Bruce, K. B. (2005), Controversy on how to teach CS 1: a discussion on the SIGCSEmembers mailinglist, ACM SIGCSE Bulletin, Volume 37 Issue 2, pp [14] Crawford, S. & Boese, E. (2006), ActionScript: a gentle introduction to programming, Journal of Computing ISBN:
8 Sciences in Colleges, Volume 21 Issue 3, pp [15] Eckerdal, A., McCartney, R., Moström, J. E., Ratcliffe, M. & Zander, C. (2006), Can graduating studentsdesign software systems?, ACM SIGCSE Bulletin, Proceedings of the 37th SIGCSE technicalsymposium on Computer science education SIGCSE '06, Volume 38 Issue 1, pp [16] Giangrande, E. (2007), CS1 Programming Language Options, Journal of Computing Sciences in Colleges, Volume 22 Issue 3, pp [17] Gross, P. & Powers, K. (2005), Evaluating assessments of novice programming environments,proceedings of the 2005 international workshop on Computing education research ICER '05, pp [18] Hadjerrouit, S. (1998), Java as First Programming Language: A Critical Evaluation, ACM SIGCSE Bulletin, Volume 30 Issue 2, pp [19] Hagan, D., Sheard, J. & Macdonald, I. (1997), Monitoring and evaluating a redesigned first year programming course, ACM SIGCSE Bulletin, Proceedings of the 2nd conference on Integrating technology into computer science education ITiCSE '97, Volume 29 Issue 3,, pp [20] Huet, I. Pacheco, O. R., Tavares, J. and Weir, G. (2004), New Challenges in Teaching Introductory Programming Courses: a Case Study, 34th ASEE/IEEE Frontiers in Education Conference (pp. T2H-5- T2H-9) [21] Lahtinen, E., Ala-Mutka, K. & Järvinen, H. (2005), A study of the difficulties of novice programmers, ACM SIGCSE Bulletin, Proceedings of the 10th annual SIGCSE conference on Innovation and technology in computer science education ITiCSE '05, Volume 37 Issue 3 pp [22] Lister, R., Berglund, A., Clear, T., Bergin, J., Garvin-Doxas, K., Hanks, B., Hitchner, L., Luxton-Reilly, A., Sanders, K., Schulte, C. & Whalley, J. L. (2006), Research perspectives on the objects-early debate, Annual Joint Conference Integrating Technology into Computer Science Education, Workinggroup reports on ITiCSE on Innovation and technology in computer science education pp [23] Powers, K., Gross, P., Cooper, S., McNally, M., Goldman, K. J., Proulx, V. & Carlisle, M. (2006), Tools for teaching introductory programming: what works?, ACM SIGCSE Bulletin, Proceedings of the 37th SIGCSE technical symposium on Computer science education SIGCSE '06, Volume 38 Issue 1pp [24] Schulte, C. & Bennedsen, J. (2006), What do teachers teach in introductory programming?, Proceedingsof the 2006 international workshop on Computing education research ICER '06 pp [25] Winslow, L. E. (1996), Programming pedagogy - a psychological overview, ACM SIGCSE Bulletin, Volume 28 Issue 3, pp [26] Butler M., and Morgan M., (2007)Learning challenges faced by novice programming students studying high level and low feedback concepts, Proceedings ascilite Singapore 2007, pp [27] Lister R., Adams E., Fone W., Hamer J., Lindholm M., McCartney R., Mostrom J., Sanders K., Seppala O., Simon B., and Thomas L., (2004), A Multi-National Study of Reading and Tracing Skills in Novice Programmers, SIGCSE Bulletin, Volume 36, Issue 4, pp [28] Tony Jenkins. (2001) The Motivation of Students of Programming. Proceedings of ITiCSE 2001, pp Appendix (1) Faculty of Computes and Information Technology Teaching Evaluation Questionnaire Please circle the correct answer for each one of the following ten questions. Q1. You are given the following segment of code: int[] arr = {1, 2, 3, 4, 6}; int size = 6; for( int count= 0, total = 0; total<size; count++) total += arr[count]; What is the value of the variable count after executing the above code? a) 4 b) 2 c) 3 d) 5 e) 6 ISBN:
9 Q2. You are given the following segment of code: int[] arr1 = {5, 3, 10, 4}; int[] arr2 = {6, 2, 9, 7}; int i = arr1.length-1; int j = arr2.length-1; int count = 0, temp; while (i > 0 ) { if ( arr1[i] < arr2[j] ) {count++; temp = arr1[i]; arr1[i] = arr2[j]; arr2[j] = temp; } i--; j--; } After the execution of the above code, the value of count is: a) 5 b) 4 c) 2 d) 1 e) 9 Q3 What is the function of the following segment of code? int grade, sum = 0; For( int i = 1; i<= 10; ++i){ grade = Console.ReadLine(); While ( grade < 35) grade = Console.ReadLine(); sum += grade; } a) Find the sum of 10 grades b) Find the sum of grades from 1 to 10 c) Find the sum of grades < 35 d) Find the sum of 10 grades excluding grades < 35 e) Find the sum of 10 grades including grades < 35 Q 4. You are given the following segment of code: int [] arr1 = {2, 4, 4, 2, 2, 4}; int [] arr2 = {0, 0, 0, 0, 0,0}; for ( int i = 0; i < arr1.length; ++i ) arr2[ arr1[i] ] = 1; int count = 0; for (int i = 0; i < arr2.length; ++i ) if ( arr2[i] == 1 ) ++count; After the execution of the given code, what is the value of count : a) 1 b) 2 c) 3 d) 4 e) 5 Q 5. The following method isdescending returns true if the array is sorted in descending order and return false Otherwise. public static boolean isdescending (int []arr) { //missing code } The missing code is: (a) for (int i=0;i<arr.length-1;i++) { if (arr[i ] < arr[i+1] ) return true; } return false; (b) boolean flag = false; for (int i=0; i<arr.length-1; i++) { if (arr[i] < arr[i+1] ) flag = false; } return flag; (c) for (int i=0; i<arr.length-1; i++) { if (arr[i ] < arr[i+1] ) return false; } return true; (d) boolean flag = false; for (int i=0;i<arr.length-1;i++) { if (arr[i ] < arr[i+1] ) flag = true; } return flag; (e) boolean flag = true; for (int i=0 ; i<arr.length-1; i++) { if ( arr[i ] < arr[i+1] ) flag = false; else flag = true; } return flag; Q6 Consider the following code fragment: int[ ] x = {6, 4, 2, 1}; int temp; int j = 0; int i = x.length-1; while (i > j) { temp = x[i]; x[i] = x[j]; x[j] = 2*temp; i--; j++; } After this code is executed, array x contains the values: a) {2, 4, 4, 6} b) {6, 4, 4, 2} c) {12, 8, 2, 1} d) {1, 2, 8, 12} e) {2, 4, 8, 12} Q7 You are given the following segment of code: int[] arr = {2, 2, 3, 4, 4, 4}; int limit = 4, i = 0, size = arr.length, total = 0; while ( (total<limit) && (i<size) ) { total += arr[i]; ++i; } The function of the above code is: a) Sum all the values in the array. b) Sum the first 4 values in the array. c) Sum values in the array till it finds the value 4. d) sum the values in the array till the last occurrence of 4 e) sum the values in the array till total becomes 4. Q 8. Any two numbers in an array of integers are called inversion if the number that occurs first in the array is larger than the number that occurs next in another place. For example, consider an array arr that contains the following 4 numbers: There are 5 inversions in that array, as: arr[0]=4 > arr[2]=3 arr[0]=4 > arr[3]=2 arr[1]=5 > arr[2]=3 arr[1]=5 > arr[3]=2 arr[2]=3 > arr[3]=2 The code fragment below is intended to count the number of inversions in an array arr : int Count = 0; for ( int i=0 ; i<arr.length-1 ; i++ ) { for /*missing code*/ { if ( arr[i] > arr[j] ) ++Count; } } the /*missing code*/ is: a) ( int j=0; j<arr.length; j++ ) ISBN:
10 b) ( int j=0; j<arr.length-1; j++ ) c) ( int j=i+1; j<arr.length; j++ ) d) ( int j=i+1; j<arr.length-1; j++ ) Q9 You are given the following segment of code int count = 0; for (int i = 5; i<= 19; i+= 7) for (int j = 1; j < 2; j += 4) count++; After the execution of the above code the value of i, j, and count, respectively are: a) 19, 2, 3 b)19, 1, 3 c)12, 5, 3 d) 26, 5, 3 e) 26, 5, 38 Q 10. The segment of code below is intended to copy into an array of integers called arr2 any numbers in another integer array arr1 that are multiple of 7. For example, if arr1 contained the numbers: 4, 14, 6, 21, 1, 7 then after the copying process, array2 should contain: 14, 21, 7 int j = 0; for ( int i=0 ; missing_cod_1 ; i++ ) { if ( arr1[i] % 7 == 0 ) { missing_cod_2; missing_cod_3; } } The missing code missing_cod_1, missing_cod_2 and missing_cod_3 respectively are: a) i<arr1.length ++j; arr2[j] = arr1[i] b) i<arr1.length arr2[j] = arr1[i] ++j c) a1<=array1.length array2[a2] = array1[a1]; ++a2 d) a1<=array1.length ++a2 array2[a2] = array1[a1] ISBN:
Investigating Difficulties of Learning Computer Programming in Saudi Arabia
Universal Journal of Educational Research 3(9): 567-577, 215 DOI: 1.13189/ujer.215.391 http://www.hrpub.org Investigating Difficulties of Learning Computer Programming in Saudi Arabia Ali M. Alakeel Department
Improving learning outcomes for first year introductory programming students
Improving learning outcomes for first year introductory programming students Sven Venema School of Information and Communication Technology, Griffith University, Brisbane, Australia Abstract Andrew Rock
A Categorization of Novice Programmers: A Cluster Analysis Study
A Categorization of Novice Programmers: A Cluster Analysis Study Essi Lahtinen Tampere University of Technology Institute of Software Systems Tampere, Finland [email protected] Abstract. Beginning software
- a literature study for developing visualizations in the Codewitz-Minerva project
PROBLEMS IN LEARNING AND TEACHING PROGRAMMING - a literature study for developing visualizations in the Codewitz-Minerva project Kirsti Ala-Mutka, Institute of Software Systems, Tampere University of Technology,
IMPROVING STUDENTS FOCUS IN INTRODUCTORY PROGRAMMING COURSES
DAAAM INTERNATIONAL SCIENTIFIC BOOK 2015 pp. 165-172 Chapter 15 IMPROVING STUDENTS FOCUS IN INTRODUCTORY PROGRAMMING COURSES KONECKI, M. Abstract: Introductory programming courses struggle with low passing
PROBLEMS IN PROGRAMMING EDUCATION AND MEANS OF THEIR IMPROVEMENT
DAAAM INTERNATIONAL SCIENTIFIC BOOK 2014 pp. 459-470 Chapter 37 PROBLEMS IN PROGRAMMING EDUCATION AND MEANS OF THEIR IMPROVEMENT KONECKI, M. Abstract: Programming courses are very important and challenging
Scratch: Applications in Computer Science 1
Scratch: Applications in Computer Science 1 Inés Friss de Kereki ORT Uruguay University, [email protected] Abstract - Programming is a complex intellectual activity. We observed through the years that
Using Visual Logic with Pseudocode to Teach an Introductory Programming Course
Using Visual Logic with Pseudocode to Teach an Introductory Programming Course G. Cooper, PhD Engineering and Information Sciences, Devry University, Downers Grove, IL, USA Abstract - Introductory programming
Failure Rates in Introductory Programming
Failure Rates in Introductory Programming Jens Bennedsen IT University West Fuglesangs Allé 20 DK-8210 Aarhus V Denmark [email protected] Michael E. Caspersen Department of Computer Science University of
Simulated learners in peers assessment for introductory programming courses
Simulated learners in peers assessment for introductory programming courses Alexandre de Andrade Barbosa 1,3 and Evandro de Barros Costa 2,3 1 Federal University of Alagoas - Arapiraca Campus, Arapiraca
Rethinking the First Year Programming Course
Rethinking the First Year Programming Course William David Lubitz Assistant Professor, School of Engineering, University of Guelph [email protected] Abstract The use of microcontrollers in beginning
Classification of Cognitive Difficulties of Students to Learn Computer Programming
Classification of Cognitive Difficulties of Students to Learn Computer Programming Renumol V. G., Jayaprakash S., Janakiram D. Department of Computer Science, Indian Institute of Technology, Madras, India.
Designing Programming Exercises with Computer Assisted Instruction *
Designing Programming Exercises with Computer Assisted Instruction * Fu Lee Wang 1, and Tak-Lam Wong 2 1 Department of Computer Science, City University of Hong Kong, Kowloon Tong, Hong Kong [email protected]
A simple time-management tool for students online learning activities
A simple time-management tool for students online learning activities Michael de Raadt Department of Mathematics and Computing and Centre for Research in Transformative Pedagogies University of Southern
LEARNING OBJECTS FOR JAVA PROGRAMMING LANGUAGE
LEARNING OBJECTS FOR JAVA PROGRAMMING LANGUAGE Ion MIERLUS MAZILU Department of Mathematics and Computer Science Technical University of Civil Engineering, Bucharest B-ul. Lacul Tei, Nr. 122-124, Sector
Applying GQM Approach towards Development of Criterion-Referenced Assessment Model for OO Programming Courses
Applying G Approach towards Development of Criterion-Referenced Assessment odel for OO Programming Courses Norazlina Khamis, Sufian Idris, and Rodina Ahmad Abstract The most influential programming paradigm
Exploring Computer Science A Freshman Orientation and Exploratory Course
Exploring Computer Science A Freshman Orientation and Exploratory Course Stephen U. Egarievwe and Vivian J. Fielder Center for Internet Based Education and Research Department of Mathematics and Computer
Measuring the response of students to assessment: the Assessment Experience Questionnaire
11 th Improving Student Learning Symposium, 2003 Measuring the response of students to assessment: the Assessment Experience Questionnaire Graham Gibbs and Claire Simpson, Open University Abstract A review
Curriculum Map. Discipline: Computer Science Course: C++
Curriculum Map Discipline: Computer Science Course: C++ August/September: How can computer programs make problem solving easier and more efficient? In what order does a computer execute the lines of code
Guided Debugging Practices of Game Based Programming for Novice Programmers
Guided Debugging Practices of Game Based Programming for Novice Programmers Chiung-Fang Chiu and Hsing-Yi Huang Abstract The objective of this study is to use game based programming to facilitate the teaching
Performance of Students in Computer Programming: Background, Field of Study and Learning Approach Paradigm
Performance of Students in Computer Programming: Background, Field of Study and Learning Approach Paradigm Prince Yaw Owusu Amoako Kofi Adu-Manu Sarpong John Kingsley Arthur Charles Adjetey ABSTRACT Many
Canisius College Computer Science Department Computer Programming for Science CSC107 & CSC107L Fall 2014
Canisius College Computer Science Department Computer Programming for Science CSC107 & CSC107L Fall 2014 Class: Tuesdays and Thursdays, 10:00-11:15 in Science Hall 005 Lab: Tuesdays, 9:00-9:50 in Science
Causes of Failure of Students in Computer Programming Courses: The Teacher Learner Perspective
Causes of Failure of Students in Computer Programming Courses: The Teacher Learner Perspective Kofi Adu-Manu Sarpong Valley View University P.O. Box AF 595 Adentan-Accra, Ghana John Kingsley Arthur Valley
TEACHING OF INDEPENDENT STUDY CLASSES: RESULTS FROM THE FACULTY SENATE SURVEY
Findings for All Colleges TEACHING OF INDEPENDENT STUDY CLASSES: RESULTS FROM THE FACULTY SENATE SURVEY A large minority of respondents (39.82%) report teaching independent study classes. A large majority
Visual teaching model for introducing programming languages
Visual teaching model for introducing programming languages ABSTRACT Ronald Shehane Troy University Steven Sherman Troy University This study examines detailed usage of online training videos that were
A Technical Writing Program Implemented in a First Year Engineering Design Course at KU Leuven
A Technical Program Implemented in a First Year Engineering Design Course at KU Leuven C. Heylen & E. Londers Tutorial Services Faculty of Engineering Science, KU Leuven, Leuven, Belgium [email protected]
The Effectiveness of Games as Assignments in an Introductory Programming Course
The Effectiveness of Games as Assignments in an Introductory Programming Course Abstract - Computer games are an often cited motivational tool used as assignments in introductory programming courses. This
Introductory Problem Solving in Computer Science
Introductory Problem Solving in Computer Science David J. Barnes, Sally Fincher, Simon Thompson Computing Laboratory, University of Kent at Canterbury, Kent, CT2 7NF, England E-mail: [email protected]
GAME: A Generic Automated Marking Environment for Programming Assessment
GAME: A Generic Automated Marking Environment for Programming Assessment Michael Blumenstein, Steve Green, Ann Nguyen and Vallipuram Muthukkumarasamy School of Information Technology, Griffith University
CodeSkelGen A Program Skeleton Generator
CodeSkelGen A Program Skeleton Generator Ricardo Queirós CRACS & INESC-Porto LA & DI-ESEIG/IPP, Porto, Portugal [email protected] Abstract Existent computer programming training environments help
CALCULUS COURSES AT THE COMPUTER SCIENCE FACULTY, THE UNIVERSITY OF INDONESIA
CALCULUS COURSES AT THE COMPUTER SCIENCE FACULTY, THE UNIVERSITY OF INDONESIA Kasiyah MACHMUDIN Department of Mathematics, University of Indonesia Computer Science Faculty, University of Indonesia [email protected]
Predicting Academic Performance in the School of Computing & Information Technology (SCIT)
Predicting Academic Performance in the School of Computing & Information Technology (SCIT) Paul Golding and Sophia McNamarah University of Technology, Jamaica [email protected], [email protected]
Functional Modelling in secondary schools using spreadsheets
Functional Modelling in secondary schools using spreadsheets Peter Hubwieser Techn. Universität München Institut für Informatik Boltzmannstr. 3, 85748 Garching [email protected] http://ddi.in.tum.de
Bridging the Gap for First Year Students with the Use of Peer Tutoring*
Bridging the Gap for First Year Students with the Use of Peer Tutoring* Georgina Carmody University of Technology, Sydney [email protected] Leigh Wood University of Technology, Sydney [email protected]
VIP, a Visual Interpreter for Learning Introductory Programming with C++
VIP, a Visual Interpreter for Learning Introductory Programming with C++ Antti T. Virtanen Tampere University of Technology Institute of Software Systems Tampere, Finland [email protected] Essi Lahtinen
Animating Programs and Students in the Laboratory
Animating Programs and Students in the Laboratory James F. Korsh Paul S. LaFollette, Jr. Department of Computer and Information Sciences Temple University Philadelphia, PA 19122 Raghvinder Sangwan Department
Passaic County Technical Institute. Curriculum of Instruction. Computer Science IV. Grade 12
Passaic County Technical Institute Curriculum of Instruction Computer Science IV Grade 12 2014 2015 Prepared by Anjali Wahi Computer Science IV COURSE DESCRIPTION Concentration: Object Oriented Programming
STUDENT S TIME MANAGEMENT AT THE UNDERGRADUATE LEVEL Timothy W. Johnson
STUDENT S TIME MANAGEMENT AT THE UNDERGRADUATE LEVEL Timothy W. Johnson This paper was completed and submitted in partial fulfillment of the Master Teacher Program, a 2-year faculty professional development
Important Steps to Becoming an MA/MS or PhD in Engineering Psychology and Human Factors
Important Steps to Becoming an MA/MS or PhD in Engineering Psychology and Human Factors 1. Take the right courses Courses to take as an undergraduate, besides typical PSY courses (Intro, Research Methods,
Putting It All Together
15 Putting It All Together Now that we ve taken a look at all the tools available in Moodle, I want to take a step back and look at the big picture. Moodle has a lot of nifty capabilities, but they are
An online Peer-Tutoring Platform for Programming Languages based on Learning Achievement and Teaching Skill
An online Peer-Tutoring Platform for Programming Languages based on Learning Achievement and Teaching Skill Yu-Chen Kuo Department of Computer Science and Information Management Soochow University Taipei,
CS 106 Introduction to Computer Science I
CS 106 Introduction to Computer Science I 01 / 21 / 2014 Instructor: Michael Eckmann Today s Topics Introduction Homework assignment Review the syllabus Review the policies on academic dishonesty and improper
Teaching Non-majors Computer Programming Using Games as Context and Flash ActionScript 3.0 as the Development Tools
Teaching Non-majors Computer Programming Using Games as Context and Flash ActionScript 3.0 as the Development Tools Yue-Ling Wong Wake Forest University Computer Science Department Winston-Salem, NC 27109
If your schedule allows you might consider joining ROTC.
Important Steps to Becoming an MA/MS or PhD in Military Psychology 1. Take the right courses Courses to take as an undergraduate, besides typical PSY courses (Intro, Research Methods, Stats): Personality
Program Visualization for Programming Education Case of Jeliot 3
Program Visualization for Programming Education Case of Jeliot 3 Roman Bednarik, Andrés Moreno, Niko Myller Department of Computer Science University of Joensuu [email protected] Abstract:
How To Improve Your Knowledge Of Psychology
I. Introduction History Assessment Report Applied Psychology Program 2011-2012 The Department of Humanities and Social Sciences added the Bachelor of Science in Applied Psychology in 1997. The program
Student Preferences for Learning College Algebra in a Web Enhanced Environment
Abstract Student Preferences for Learning College Algebra in a Web Enhanced Environment Laura Pyzdrowski West Virginia University Anthony Pyzdrowski California University of Pennsylvania It is important
Performance and progression of first year ICT students
Performance and progression of first year ICT students Judy Sheard, Angela Carbone, Selby Markham, A J Hurst, Des Casey, Chris Avram Caulfield School of Information Technology Faculty of Information Technology
Management Information Systems 260 Web Programming Fall 2006 (CRN: 42459)
Management Information Systems 260 Web Programming Fall 2006 (CRN: 42459) Class Time: 6:00 8:05 p.m. (T,Th) Venue: WSL 5 Web Site: www.pbvusd.net/mis260 Instructor Name: Terrell Tucker Office: BDC 127
A Web-Based System for Course and Program Assessment: Prototype to Product
A Web-Based System for Course and Program Assessment: Prototype to Product Sofya Poger Computer Science Department Iona College New Rochelle, NY 10801, USA [email protected] Frances Bailie Computer Science
Developing a Sustainable Assessment Plan for EAC-ABET Accreditation
Eleventh LACCEI Latin American and Caribbean Conference for Engineering and Technology (LACCEI 2013) Innovation in Engineering, Technology and Education for Competitiveness and Prosperity August 14-16,
CLASS PARTICIPATION: MORE THAN JUST RAISING YOUR HAND
STUDENT LEARNING SUPPORT TUTORIAL PRODUCED BY THE CENTER FOR TEACHING AND FACULTY DEVELOPMENT CLASS PARTICIPATION: MORE THAN JUST RAISING YOUR HAND CHAPTER 1: LEARNING THROUGH CLASS PARTICIPATION CLASS
The Role of Information Technology Studies in Software Product Quality Improvement
The Role of Information Technology Studies in Software Product Quality Improvement RUDITE CEVERE, Dr.sc.comp., Professor Faculty of Information Technologies SANDRA SPROGE, Dr.sc.ing., Head of Department
Not agree with bug 3, precision actually was. 8,5 not set in the code. Not agree with bug 3, precision actually was
Task 1 Task 2 Task 3 Feedback Presence SUM Matrikkel Rühm [5] [1] [2] [1] [1] [10] Feedback to students A64129 1. rühm 0 0 No submission found A72068 1. rühm 5 1 2 1 1 For Bug 3. Actually the variable
MSc Computer Security & Resilience 2015-16. Steve Riddle Degree Programme Director
MSc Computer Security & Resilience 2015-16 Steve Riddle Degree Programme Director Welcome! 1. Computer Security & Resilience 2. Computing Science at Newcastle our School 3. Principles of Study at MSc Level
Report on the Examination
Version 1.0 0712 General Certificate of Education (A-level) June Computing COMP2 (Specification 2510) Unit 2: Computer Components, The Stored Program Concept and The Internet Report on the Examination
CURRICULUM VITAE. Amardeep Kahlon +1 (512) 223-2069 Email: [email protected]
CURRICULUM VITAE Amardeep Kahlon +1 (512) 223-2069 Email: [email protected] EDUCATION HISTORY Doctor of Philosophy Higher Education Administration University of Texas at Austin Major area of research
The Application of Statistics Education Research in My Classroom
The Application of Statistics Education Research in My Classroom Joy Jordan Lawrence University Key Words: Computer lab, Data analysis, Knowledge survey, Research application Abstract A collaborative,
