• Sonuç bulunamadı

UNIVERSITY STUDENTS’ METACOGNITIVE AND PROBLEM SOLVING SKILLS TOWARDS LEARNING A PROGRAMMING LANGUAGE A THESIS SUBMITTED TO THE GRADUATE SCHOOL OF APPLIED SCIENCES OF NEAR EAST UNIVERSITY BY RAJAA. JAWADI. H. FOURTI

N/A
N/A
Protected

Academic year: 2021

Share "UNIVERSITY STUDENTS’ METACOGNITIVE AND PROBLEM SOLVING SKILLS TOWARDS LEARNING A PROGRAMMING LANGUAGE A THESIS SUBMITTED TO THE GRADUATE SCHOOL OF APPLIED SCIENCES OF NEAR EAST UNIVERSITY BY RAJAA. JAWADI. H. FOURTI"

Copied!
94
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

UNIVERSITY STUDENTS’ METACOGNITIVE

AND PROBLEM SOLVING SKILLS

TOWARDS

LEARNING A PROGRAMMING LANGUAGE

A THESIS SUBMITTED TO THE GRADUATE

SCHOOL OF APPLIED SCIENCES

OF

NEAR EAST UNIVERSITY

BY

RAJAA. JAWADI. H. FOURTI

In Partial Fulfilment of the Requirements for

the Degree of Master of Science

in

Computer Information Systems

NICOSIA, 2017

R A JA A J A W A D I . H T H E E FFECT O F M E T AC OG NITI VE S KIL L S T OWARD S PROBL E M S OL VIN G IN PROG RA M M ING L E AR NIN G NEU 2017

(2)

UNIVERSITY STUDENTS’ METACOGNITIVE AND

PROBLEM SOLVING SKILLS

TOWARDS

LEARNING A PROGRAMMING LANGUAGE

A THESIS SUBMITTED TO THE GRADUATE

SCHOOL OF APPLIED SCIENCES

OF

NEAR EAST UNIVERSITY

BY

RAJAA JAWADI.H.FOURTI

In Partial Fulfilment of the Requirements for

The Degree of Master of Science

in

Computer Information Systems

(3)

I hereby declare that all information in this document has been obtained and presented in accordance with academic rules and ethical conduct. I also declare that, as required by these rules and conduct, I have fully cited and referenced all material and results that are not original to this work.

Name, Last name: Rajaa Jawadi Fourti Signature:

(4)

I

ACKNOWLEDGEMTS

My deepest gratitude goes to Prof. Dr. Nadire Çavuş, for her constant encouragement and guidance. She has walked me through all the stages of the writing of my thesis. Without her consistent and illuminating instructions, this thesis could not have reached its present form.

I would like to thank Prof. Dr. Dogan Ibrahim and Assist. Prof. Dr. Seren Başaran who have been very helpful through the duration of my thesis, this thesis could not have been achieved without their generous and professional assistance. Also, I want to thank to all jury members for their valuable comments.

This thesis is dedicated to my beloved family with unlimited thanks and heartfelt love, for they have believed in me and have sustained me throughout my life. A special feeling of gratitude to my hero, my brother Faraj Aljwadi who is indeed my inspiration and the man who led me into the treasures of knowledge. I would like to thank my husband for his unlimited and unconditional love, and to my parents who support me in everything all the time. I would like to thank my mother for her unlimited and unconditional love, and to my father who taught me how to be a real man before everything, and taught me that knowledge must be learned for its own sake. I would like to thank my sisters and brothers for their encouragement and constant love they gave me.

Eventually, to that long list of friends who have supported me all over the way from the early stage of my study until the last word of this thesis, thank you all for all the love and help you gave me, I couldn't be here without your existence in my life, this thesis would not have been possible.

(5)

ii

(6)

iii

ABSTRACT

The complexity of the educational processes made it necessary to look for new appropriate strategies. It is important that students acquire metacognitive skills so that they can keep abreast of the great progress in Science and Technology. Educational methods should be questioned about their role in preparing a student to possess not only thinking but being able to have metacognitive skills. Computer programming skills require a good quality of education through a comprehensive development of the educational processes and the knowledge of the latest approaches which require the preparation of students’ abilities to choose the most appropriate strategies. Metacognitive skills increase students’ abilities to understand how to think positively, and how to solve the problems they face in Computer Science. The Thesis attempts to provide an understanding of the metacognitive skills towards problem solving in programming language learning amongst university students in North Cyprus. Research based model and questionnaire were used in the study where data were collected randomly from 300 volunteered students. The students were chosen from departments of Computer Information Systems, Computer Engineering, Information Technology and Management Information Systems during 2016-2017 Fall semester. The dependent variable in the study is metacognitive skills for computer programming, and the independent variable is problem solving skills. SPSS was used to analyze the data, the descriptive statistics were used to analyze the characteristics of the study sample and the estimates of their responses. Pearson’s correlation was used to study the effect of use metacognitive skills towards problem solving skills that students face when learning programming languages. After statistical analysis of the collected data, there was a negative correlation between metacognitive skills and problem solving skills. This study also showed a strong point among students in the skills of planning and monitoring, and a weakness among students in the skills of regulation.

Keywords: Programming learning; programming; metacognitive skills; problem solving; problem solving skills

(7)

iv ÖZET

Eğitim süreçlerindeki karmaşa, uygun yeni stratejiler aramayı zorunlu kılmıştır. Öğrencilerin Bilim ve Teknoloji alanındaki büyük ilerlemelere ayak uydurabilmeleri için bilişsel becerileri kazanmaları büyük önem arzetmektedir. Bu nedenle, eğitim metodları öğrencileri sadece düşünmeye değil, üstbiliş becerileri geliştirmeye hazırlamalıdır. Bilgisayar programlama becerileri, öğrencilerin en yeni ve en uygun stratejiler seçebilme becerilerini kazanmalarını sağlayan iyi bir eğitim gerektirir. Üstbiliş becerileri, öğrencilerin pozitif düşünme kabiliyetlerini artırır ve bilgisayar bilimindeki konularda problem çözebilme becerilerini geliştirir. Tezde, Kuzey Kıbrıs’ta üniversite öğrencilerinin bilgisayar programlama dili öğreniminde üstbiliş becerilerinin problem çözme becerilerindeki önemi araştırılmıştır. Araştırma tabanlı model ve anket kullanılarak 300 gönüllü öğrenciden veri toplanmıştır. Ankete katılanlar, Kuzey Kıbrıs’ta 2016-2017 Sonbahar döneminde Bilgisayar Enformatik Sistemleri, Bilgisayar Mühendisliği, Bilişim Teknolojileri ve Yönetim Bilişim Sistemleri bölümlerinde eğitim gören öğrencilerden seçilmiştir. Çalışmada bağımlı değişken olarak bilgisayar programlamada üstbiliş becerileri alınmıştır. Bağımsız değişken olarak ise problem çözme becerileri alınmıştır. Toplanan verilerin analiz ve yorumlanmasında SPSS programı kullanılmıştır. Üstbiliş becerilerinin programlama dili öğrenirken problem çözmedeki katkılarını öğrenmek için Pearson Korelasyonu kullanılmıştır. Toplanan veriler istatiksel olarak analiz edildikten sonra üstbiliş ve problem çözme becerileri arasında negatif korelasyon olduğu belirlenmiştir. Çalışmada ayrıca öğrencilerin planlama ve izleme becerileri arasında yüksek korelasyon olduğu ve düzenleme becerilerinde düşük korelasyon olduğu ortaya çıkmıştır.

Anahtar kelimeler: Programlama öğrenme; programlama; üstbiliş becerileri; problem çözme; problem çözme becerileri

(8)

v TABLE OF CONTENTS ACKNOWLEDGEMENTS………. i ABSTRACT………..……... iii ÖZET……….. iv TABLE OF CONTENTS………. v

LIST OF TABLES……… viii

LIST OF FIGURES………. ix

LIST OF ABBREVIATION……… x

CHAPTER 1: INTRODUCTION……….... 1

1.1 Overview……….……. 1

1.2 The Problem……….… 4

1.3 The Aim of the Study……….………... 4

1.4 Importance of the Study ……….………..………….. 5

1.5 Limitations of the Study……….………... 5

1.6 Overview of the Thesis………... 6

CHAPTER 2: RELATED RESEARCH ……… 7

2.1 Research on Difficulties in Programming ………...………. 7

2.2 Effects of Metacognitive Skills on Problem Solving……….... 8

CHAPTER 3: THEORETICAL FRAMEWORK……… 10

3.1 Computer Programs……….…………..……... 10

3.2 Computer Programming……….. 11

3.3 Importance of Learning Programming………...…….…… 12

3.3.1 Advantages of object-oriented programming………... 12

3.3.2 Disadvantages of object-oriented programming……….……….... 13

(9)

vi

3.5 Programming Language Features……….…...….….... 15

3.6 Educational Programming Environments………...………….………... 16

3.7 Programming Learning Strategies………..………. 19

3.8 Problem Solving Approach………..…... 24

3.8.1 Steps in problem solving………..…………. 24

3.8.2 Problem solving strategies for programmers…..………... 25

3.9 Metacognitive Skills ………... 26

3.9.1 Metacognitive skills for programmer………... 27

3.9.2 Metacognitive steps for problem solving ……….……... 29

3.9.3 Metacognitive components for problem solving……….……….….……… 31

CHAPTER 4: RESEARCH METHODOLOGY……….. 35

4.1 Research Model……….. 35

4.2 Participants………. 37

4.3 Data Collection Tools………... 39

4.4 Data Analysis ………..………... 41

4.5 Procedure …..………... 42

4.5.1 Ethical considerations………. 43

4.6 Research Schedule ………... 44

CHAPTER 5: CONCLUSION AND RECOMMENDATIONS……….…... 46

5.1 Know Programming Language of Students ……….. 46

5.2 Difficult of Stuents on Learning Programming Language………. 47

5.3 Metacognitive Skills of Students for Computer Programming ………... 50

5.3.1 Planning ………...………... 51

5.3.2 Monitoring ………... 52

5.3.3 Regulation ………... ………... 53

5.4 Problem Solving Skills of Students for Computer Programming………... 54

5.4.1 System ……….. ………..…………... 56

5.4.2 Design ………...………...…………..….. 56

(10)

vii

5.4.4 Testing ……….…... 58

5.5 Relationship between Sub-Dimensions of Metacognitive and Problem Solving Skills..59

5.6 Relationship between Metacognitive Skills and Problem Solving Skills……… 62

CHAPTER 6: CONCLUSION AND RECOMMENDATIONS……….... 65

6.1 Conclusion………... 65

6.2. Recommendations………... 66

REFERENCE……… 67

APPENDICES……… 75

Appendix A: Rapporteur of the Scientific Research Ethics Committee………. 76

Appendix B: The Questionnaire …..……….. 77

(11)

viii

LIST OF TABLES

Table 3.1 Showing different metacognitive components and implications in

problem solving ……… 33

Table 4.1 Important about chosen universities ……… 37

Table 4.2 Important demographic data of participants... 38

Table 4.3 Problem solving skills……… 41

Table 4.4 Score boundaries of the 5 Likert scale of level of knowledge of programming language……… 41

Table 4.5 Score boundaries of the 5 Likert scale of level of difficulties faced by student………. 42

Table 4.6 Score boundaries of the 5 Likert scale of level of problem solving skills 42 Table 5.1 Mean and standard deviation programming language that the students know……... 47

Table 5.2 Mean and standard deviation for each items of difficult do students in programming language are to learn... 49

Table 5.3 Mean and standard deviation for metacognitive skills of students for computer programming questionnaire………... 51

Table 5.4 Mean and standard deviation for every item of the planning dimension 52 Table 5.5 Mean and standard deviation for every item of monitoring dimension.. 53

Table 5.6 Mean and standard deviation for every item of regulation dimension… 54 Table 5.7 Mean and standard deviation for problem solving skills of students for computer programming of the questionnaire……….. 55

Table 5.8 Mean and standard deviation for each item of system analysis dimension 56 Table 5.9 Mean and standard deviation for every item of design dimension……… 57

Table 5.10 Mean and standard deviation for every item of coding dimension……... 58

Table 5.11 Mean and standard deviation for every item of testing dimension…….. 59

Table 5.12 Relationship between sub-dimensions of metacognitive skills and problem solving skills………. 62

(12)

ix

LIST OF FIGURES

Figure 3.1 Object-oriented programming concepts………... 15

Figure 3.2 Programming environment for Object Karel………... 17

Figure 3.3 Screenshoot of Raptor visul programming environment ……….... 18

Figure 3.4 An example of BlueJ project people………... 20

Figure 3.5 Shows a screenshot of Alice development environment... 22

Figure 3.6 Screenshot of a source code for calculating compound interest……... 24

Figure 3.7 Stages in metacognitive skills for solving programming problems………. 32

Figure 3.8 A model of metacognitive skills and how to effectively solve problems………... 34

Figure 4.1 The effect of metacognitive skills towards problem solving in programming learning………. 36

Figure 4.2 Structure of the questionnaire……….. 39

Figure 4.3 Research procedure……….. 43

Figure 4.4 Research schedule of the study………... 44

Figure 4.5 Gantt chart for the thesis………. 45

Figure 5.1 Scatter Plot between planning dimension and problem solving skills …... 60

Figure 5.2 Scatter Plot between monitoring dimensions and problem solving skills... 60

Figure 5.3 Scatter Plot between regulation dimension and problem solving skills….. 61

Figure 5.4 Scatter Plot for relationship between metacognitive skills and problem solving skills……… 63

(13)

x

LIST OF ABBREVIATIONS

ANNOVA: Analysis of Variance

MS: Metacognitive skills

PS: Problem solving

OO: Object-oriented

CIS: Computer information system

IT Information technology

CE Computer engineering

MIS Computer information system

NEU: Near east university

CIU: Cyprus international university

EMU: Eastern mediterranean university

EUL: European university of lefke

M Mean

(14)

1 CHAPTER 1 INTRODUCTION

This chapter describes the problem, aim of the research, importance of the research, limitations of the research and overview of the Thesis.

1.1 Overview

Programming language is an extremely helpful skill and maybe a rewarding profession, it has recently become the interest for software engineers and understudies enthusiasm for programming have developed quickly, and basic programming courses are getting well known unlike before (Wang & Hwang, 2017)

Myers et al. (2016) conducted a research to find out the problems faced by students in programming. The results of the study showed that changing the design was more hard to comprehend than testing the variables and refreshing them. Strikingly, scientists discovered that novices thought that it was simple and easy to compose recursive capacities subsequent to finding out about iterative capacities. Other researchers, Luxton-Reilly and Petersen (2017) discovered that pointers were positioned at the highest difficulty in addition to expressions and language differences, particularly in C dialect. Also, the scientists additionally found that polymorphism, the giving was additionally arranged as difficulty. The one of most complex human conduct is the way toward taking care of the problem solving, which requires aptitudes and high subjective abilities to control the issue and find proper answers for it. The problem-solving process located at the top of the hierarchy of education (Mahmoud, 2013).

Rum and Ismail (2014) computer programming language is a difficult and intricate operation for many students which places a heavy burden on students. Studying programming courses is the main defy, for students, especially novices because of the difficulties in learning programming skills that are out their capacities (Apiola et al., 2011). Learning computer programming is not a difficult process because of basic concepts but the most difficult aspects lie in planning to write the program (Fu et al., 2017).

The main purpose of solving software problems is to enable students to think and develop their skills in front of the problem and to judge these skills and their impact on flexibility

(15)

2

and refinement of thinking (Avargil et al., 2018). Although, metacognition skills contain how an individual can investigate thoughts, locate the perfect strategy for access to a suitable way and how to apply them to the learning process. To take care of the issue, the students must acknowledge and comprehend their capacities and how to perform subjective aptitudes, for example, learning and problem solving skills (Özsoy & Ataman, 2017). And then point students to efficient strategies for the computer programming process (Kasemsap, 2017). The former studies carried out on metacognition and problem-solving studies have shown that metacognitive education boost students capacity to resolve problems best because metacognitive strategies develop students ability to solve difficulties that they faced when learning programming (Mokos & Kafoussi, 2013). The problem-solving skills process don’t demand just that the students know about the helpful knowledge components, additionally, should be able to arrange and control these cognitive components any assignment to problem solving (Wang & Hwang, 2017). In this, Sarver (2006) points out that the knowledge skills include planning, monitoring, and evaluation through which the learner can control his knowledge of the good method through improving his ability in solving the problem, and the metacognitive skills allow self-learning as it helps students to Self-perception of their thinking.

The main purpose of educational establishment is teaching students how to make use of processes such as planning, how to apply the knowledge, how to monitor, how to regulate and reflect (Azevedo, 2009). Metacognition indicates to higher thinking in disposition including the active control of the knowledge process involved in learning. Activities such as planning how to handle a particular learning task, monitoring the understanding, and evaluating progress towards completing the task are beyond the cognitive nature (Flavell, 1979). Because knowledge skills is a key factor in successful education, it is important to identify the activity that goes beyond the cognitive process to reach the ideal way to improve students thinking through cognitive control (Avargil & Lavi, 2018). Therefore, Ali et al. (2016) stated that metacognitive thinking makes individual think in a state of continuous research and investigation and conscious observation that help them to better deal with situations and problems.

Tas et al. (2014) defined that metacognition is a composite activity of skills that refers to knowledge control, and planning for learning through the choice of appropriate strategies,

(16)

3

and monitoring processes, and to evaluate these processes. Other researchers, (Costa and Kallick, 2001) a pyramid model was introduced to explain the skills of metacognition where they reached a conclusion that metacognition is a composite activity of skills that refers to knowing metacognition skills and control it, and planning for learning by selecting appropriate strategies, monitoring knowledge processes, and evaluating these processes. On the other hand, Dawson et al. (2008) defined that metacognition as a process that co-ordinates data, practices, goals, and plans. Metacognition, which basically means thinking, generally includes various skills that are related to acquiring knowledge and thinking, which are critical thinking, contemplative thinking, problem solving (PS), and making decisions. People, who have skills beyond the most advanced knowledge, are also the best problem solvers, decision-makers, and critical thinking of other people in general. In fact, the more complex the programming problem, the greater the need for metacognitive knowledge, meaningful reflection and positive reactions (Havenga, 2011). Montague et al. (2014) pointed out that beyond knowledge means thinking about a thinking process, and therefore it is due to a high mental capacity that interferes with the process of learning in terms of finding a learning plan, using appropriate skills and strategies to solve problems, studies show that meta-knowledge skills are important in predicting the academic achievement of learners, it helps them effectively distinguish between information they know and do not know.

Kafadar (2012) Stated that the definition of a problem solving process involves the individual's use of all of his practical and cognitive skills, including cognitive activities such as planning, evaluation, and monitoring. Solving the problem requires three main conditions: Firstly think about the problem and guide the behavior towards the goal, then find a law or strategy that can help achieve the desired goal and finally treat these laws or strategies by putting them in action. At this stage, it is necessary to identify and define the sub-objectives according to the type of problem, then solve the problem and reach the objective. Furthermore, Ramesh and Anandaraj (2014) have found out that there is a major correlation between students’ metacognition and problem solving skills. Nevertheless, problem solving requires the individual to use all his cognitive and reflective abilities, which involve the skills of knowledge such as planning, organization, and exploitation in the direction required to overcome the problem (Kafadar, 2012). Problems occur when there is a gap between the individual and the goal to be achieved and is also a complex

(17)

4

process in our lives (Baars et al., 2017). Therefore, problem solving is also a complex process that exists in everyday practice(Ali et al., 2016). Therefore, solving the problem is not only in the field of computer programming but it exists in all areas that affect the daily experiences and therefore can be defined as knowledge and mental processes which can be directed to arrive at the appropriate strategy to solve the problem (Marjorie et al., 2014)

In this thesis, we have focused on the effect of metacognitive skills towards problem solving in programming learning, and the strategies to use in problem solving and improve performance towards thinking and regulation. Also, enable all students to have strategic thinking and examine the relationship between metacognitive knowledge and performance on the task to problem solving.

1.2 The Problem

In the literature, many researchers (Siswati & Corebima, 2017; Anandaraj & Ramesh, 2014; Safari & Meskini, 2015) have pointed out that metacognition is important when dealing with problem solving. Arslan et al. (2013) conducted a research in Turkey to find the important factors that lead students to use metacognitive skills in computer programming. Despite the proliferation of computer programming, students are still encountering difficulties in learning programming languages. Moström (2011) hoped to reveal the right solutions that will help students improve their skills on enhancing creative thoughts and problem solving within a metacognitive framework and overcoming difficulties. Furthermore, students have the problem to learn programming languages and they think is difficulties but learn programming is useful and requirements for real life. Therefore, suggestions to improve teaching methods will be helpful for universities developing in countries especially in North Cyprus.

1.3 Aim of the study

The foremost aim of this study is to find out about the effect of metacognitive skills on problem-solving skills in programming among university students. To achieve the main aim, we examine the following research questions:

1. Which programming language do students know?

2. How difficult do students believe each of the topics in a programming language are to learn?

(18)

5

3. What are metacognitive skills of students for computer programming? 4. What is problem solving skills of students for computer programming?

5. Are there any relationships between sub dimensions of metacognitive and problem solving skills among students?

6. Is there any relationship between metacognitive and is problem solving skills of students?

1.4 Importance of the Study

Solving problems has always been a challenge as well as teaching students programming languages. This study is important to educational institutions mainly targeting computer science and other technical disciplines which offer programming courses. Solving problems has always been a challenge for teachers teaching students programming languages and knowing how to apply their knowledge to improve their programmming skills and enhancing critical thinking. One of the biggest problems for programming novices is that there is a huge gap between the intuitive way in which they think and the way of thinking that has to be suitable for computers. Most students do not have enough level of software knowledge and they have difficulties in understanding of programming tasks and in designing of appropriate algorithms most students start to learn to programme in single context before learning structure and style (Churchill et al., 2013). Moreover, teachers don’t use new technologies or new methods of teaching (Hu, 2004). Most efforts are aimed at bringing the user closer to the system and increase students’ performance and learn to programme by use new way of thinking to enable them to use a programming language in order to solve problems. Therefore, the metacognition is important and proper process for solving the problem. In this study, a survey will be carried out to discuss the impact of metacognitive education on problem solving in learning programming languages. Findings from the study will be beneficial to researchers who are interested in the same area of study as well as authors who are keen to address the challenges students face in learning programing.

1.5 Limitations of the Study

There are quite a number of limitations that have been noted in this study. These limitations should be considered for future research. The research was conducted over a short period of time during the spring semester, a longitudinal research should be

(19)

6

considered in future that is done over a longer period of time. The research only focus on four universities in Northern Cyprus namely Near East University (NEU), Cyprus International University (CIU), European University of Lefka (EUL), and Eastern Mediterranean University (EMU). The study consists of 300 students from four universities in North Cyprus and because the study period was not enough to collect data from a larger community. A larger target group should be considered for future research to yield generalized results of the difficulties in learning programming language in North Cyprus as a whole

1.6 Overview of the Thesis

This study is divided into six chapters as follows:

Chapter 1: This chapter is the first chapter of the thesis and this chapter includes the problem statement, aim of the study, and the importance of the study, research questions and an overview of other chapters to follow.

Chapter 2: It discusses previous research that has been done by other researchers interested in understanding the effect of metacognitive skills towards problem solving in programming learning. This chapter explains research student’s difficulties, effects of metacognitive skills on problem solving.

Chapter 3: This chapter is designed as a medium to help institutions improve the delivery of programming courses. The chapter explains the theoretical framework of the topic under research.

Chapter 4: Research model, participants, sample selection, data collection and tools, data analysis and the research procedure were explained in detail in this chapter. Reliability tests are also shown for the survey tool used.

Chapter 5: The chapter reveals the results found. Results are then discussed with respect to the fundamental objectives of the research

Chapter 6: It is about the conclusion of the entire research study and recommendations of the thesis, suggestions, and for future studies

(20)

7 CHAPTER 2

RELATED RESEARCH

2.1 Research on Difficulties in Programming

Bouvier et al. (2016) emphasized that learning programming skills is generally considered hard, and programming courses often have high dropout rates. That it takes about 10 years for a novice to become an expert programmers. Kirsti (2004) pointed out that students find it difficult to understand program execution since it takes a long time for a beginner to understand the mechanism and the operation taking place behind the code. Students indicated that they find it difficult to understand that the instructions being executed are the ones created in the previous instructions. Milne and Rowe (2003) also indicated that students found virtual functions as moderately difficult contrary to what teachers perceived. Teachers indicated that it was one of the main challenges students face.

Madden and Chambers (2002) found out that Java was easier to learn for novices compared to C language due to the absence of pointers in Java however, the researchers did not phase out the assumption that object oriented programming is difficult. In addition to these findings, the researchers conducted a research at Anna University for undergraduate students of Engineering and Technology who were doing Java courses. Students indicated that they prefer to learn through assignments and tutorials rather than class lectures. In the survey, 195 students participated. Findings showed that 67% of the students have a personal computer to practice with. Among the ten listed programming topics, students were asked to rank the topics in their level of difficulty. Starting from the most difficult topic to the least difficult topic, the order was concurrent programming, UI components with swings, generic programming, exceptions and assertions, event handling, interfaces and inner classes, graphics programming, object oriented access controls, object orientation and fundamental programming structure in Java.

Kirsti (2004) conducted a study in Bulgaria to find out challenges that teachers face when teaching programming. The majority of the respondents indicated that students who are taught procedural programming first find it difficult to switch and understand how object oriented programming work. Kunkle (2010) suggested that universities and other academic institutions should consider teaching students the principles of object oriented

(21)

8

programming first as an introductory course before they are taught procedural programming. Studies have shown that student’s master object oriented programming faster when it is introduced first (Kirsti, 2004). Maheswari et al. (2017) highlighted that apart from introducing object oriented programming, it is also crucial for students and teachers to understand that programming is for scholars, it requires abstract thinking.

Milne and Rowe (2002) conducted a study to find out the difficulties of C++ programing for teachers and students. Findings revealed that students rated having less difficulties compared to the rating that teachers indicated. Analysis of these ratings showed that the reason lies in that students tend to believe in themselves that they have understood yet on the other hand, teachers see the remaining flaws that in programming coursework and examinations.

2.3 Effects of Metacognitive Skills on Problem Solving

Safari and Meskini (2015) conducted a research in Iran to find out the effect of metacognition instruction on problem solving for students doing health sciences. The sample size constituted of 40 students in their second semester who were enrolled at Kermanshah University of Medical Sciences. Findings revealed that there was a significant effect between metacognitive instruction and problem solving skills. Similar findings were also found by Ramesh (2014) who also found out that there was a significant correlation between metacognition and problem solving. In addition, Mokos and Kafoussi (2013) also pointed out that metacognitive approach to learning helps students improve their problem solving skills. Harandi et al. (2013) also found out that metacognitive skills have a significant effect on problem solving skills, however, the researchers did not found any difference between orientation-avoidance and personal control components.

In the literature, many researchers (Aurah et al., 2014; Hong et al., 2017) also conducted studies to find out the effect of metacognitive skills on improving problem solving skills among university students. They all found out that in the control group, the effect of conventional teaching was evident on problem solving. In addition, they also found out that orientation-avoidance and personal control components are part of problem solving skills. There was not much difference between the experimental group and the control group, however emphasis was put by all the researchers that problem solving confidence in the control group was greatly affected by conventional teaching methods.

(22)

9

Annemieke et al. (2012) conducted a study to find an efficient measurement of metacognition in mathematical problem solving. The sample constituted of 42 students who were randomly selected from a grade 5 class. The study involved a series of steps which were measured. Firstly the students were given a word problem and had to rate their confidence in tackling the problem first. Secondly, the students had to make a sketch map which would help them in solving the problem. Thirdly, the problem had to be solved and lastly the student was required to rate his/her performance before the results were shown. Results showed that metacognitive was relatively low on all measures which show that metacognitive skills are still in the early development stage among elementary students.

In addition, the literature, many researchers (Arslan, 2014; Arslan & Akin, 2014; Arslan et al., 2013) pointed out that important factors that constitute to academic success are metacognitive and self-regulation. Arslan (2014) conducted a research in Turkey to examine the relationship between metacognition and self-regulation in web based teaching environments. Findings revealed that metacognitive skills in web learning environments had a positive effect on problem solving skills and overall academic success. In conclusion, the researcher pointed out that students with high levels of self-regulation had higher levels of metacognition.

Anandaraj and Ramesh (2014) conducted a study in India to find the relationship that exists between metacognition and problem solving among students studying physics. Findings revealed that the level of metacognition among students varied between gender and college. Furthermore, results also showed that there was a significant difference between students studying physics with regard to gender. In addition to that, results also showed that female students were better than male students in their level of metacognition and urban students had higher metacognition levels compared to rural students. In conclusion, the findings showed that there was a significant relationship between the metacognition levels of students studying physics and their problem solving ability.

(23)

10 CHAPTER 3

THEORETICAL FRAMEWORK

This chapter explains the theoretical construct of this research. The chapter explains computer programs, computer programming, importance of learning programming, the programming difficulties, Programming Language Features, Educational Programming Environments, Programming Learning Strategies, Problem Solving Approach, Metacognitive skills.

3.1 Computer Programs

Biju (2013) defined a computer program as a list of instructions that are responsible for telling a computer what to do. In addition, the researcher stated that all processes done by computers and other electronic devices are controlled by computer programs which are written in different programming languages. Computer programs are used in our everyday life to run and operate different devices as well as view web pages. Notable examples of everyday use of computer programs include web browsers such as Google Chrome, Mozilla Firefox, spreadsheet documents and video games. Castro et al. (2016) described how computer programs function. The researchers, describes a computer program as a file that resides in the computer’s hard drive. When users run applications on digital devices, the file is read and processors located in the device interprets the instructions and executes the desired output. Computer programs are written by programmers using programming languages such as C++, Java, Python and many more languages available in the market. In order for computers to understand the code written, programmers make use of compilers which are responsible for translating the code into machine readable format which is in binary form. Furthermore, the researchers pointed out that it is crucial for researchers and users to note that there are also bad computer programs that are developed illegally by users who plan to destruct the functioning of computer systems which are known as malware and spyware used to steal important user information.

Computer programs have become crucial in every business industry ranging from education, finance, manufacturing, agriculture and many other sectors. It is important for users to understand that computer programs are not only used in programming classes by programmers but they form a part of our everyday life. Crowfoot (2012) focused on explaining the four main computer programs that are used in everyday life by users in

(24)

11

different sectors. The 4 common computer programs and their applications are explained in detail below:

Web browsers: This is the main computer program used every day. Examples include Google Chrome, Mozilla Firefox, Internet Explorer and other web browsers available. Millions of users access Facebook, Google, Twitter etc. every day, without web browser computer programs, users would not be able to access the different websites they access on a daily basis.

Microsoft Office and Outlook: In order to solve every day problems users make use of computer programs such as Microsoft word, PowerPoint, Excel and outlook for communication purposes. Spreadsheets are used to save data in different work places.

Antivirus: Anti-virus are computer programs that are developed to protect computers and other devices from viruses that are available on the web. These computer programs operate in the background, preventing malicious software from entering the computer.

PDF Readers: These computer applications include Adobe Reader and many others and are the most popular and preferred format of distributing files on email platforms. These computer programs are embedded with security features that check viruses in documents to be sent via the web.

3.2 Computer Programming

Computer programming is the evolving process involving the implementation of various sets of instructions to permit a computer to do a certain task by means of programming language to solve problem. Özgür (2017) explained the classification of programming languages as described in the section below:

Web languages: Used in creating as well as editing pages on the web which involves putting plain text on webpages, to access as well as retrieving data from a database. Web languages include HTML XML, JavaScript, VBScript, PHP, Java, and ASP.

Procedure-oriented: Style of programming in which single operations are used in a program and are grouped in logical units which are called procedures or functions

(25)

12

Object oriented programming: Style of programming involves combining or encapsulating data into a solo program entity called object. Examples of these languages include C, C++, Java and PHP. The programs organize data and is collected using a group of interacting objects, each has its very own data space and functions. It is possible to make objects reusable through encapsulating the whole thing needed to operate.

Software development: Languages are used for creating executable programs. In addition, these languages are capable of creating simple console programs that are capable of printing text to the screen. It varies greatly in terms of power and complexity. Such as C, C++, C#, Pascal, Delphi, Visual Basic.

Object-oriented programming languages are the most used programming languages. The main advantage for Object-oriented programming is that it is easy to maintain as well as modifying existing codes (Henry, 2013). Development time is cut considerably and this makes adjustments of program much simpler.

3.3 Importance of Learning Programming

In the literature many researchers (Todorova & Donchev, 2004; Kirsti, 2008; Kunkle, 2010) have stated the importance of object-oriented programming and Kunkle (2010) went on further to explain the advantage and disadvantages of object-oriented programming as follows:

3.3.1 Advantages of object-oriented programming:

In the literature, many researchers (Henry, 2013; Butler & Morgan, 2001) explained the various benefits that come with using object-oriented programming language. The main advantages are described below:

Improved software-development productivity: Object-oriented (OO) programming is extensible and modular therefore, it provides separation of duties in programs and new attributes and behaviours can be added. Compared to procedural programming, with object-oriented programming software development is improved due to extensibility, reusability and modularity factors that object-oriented programs exhibit.

(26)

13

Improved software maintainability: Due to modular properties that object-oriented programs exhibit, software is easier to maintain and updates which can be done easier without making large-scale changes.

Faster development: Reusability properties exhibited in object-oriented programs enable faster development through the use of rich libraries of code embedded in the programs.

Lower cost of development: The overall cost of software development is lowered since software can be reused therefore more effort is diverted to object-orientation analysis and design.

Higher quality software: It has been reported that object-oriented programming results in high quality software contrary to using procedural languages (Donchev & Todorova, 2008).

3.3.2 Disadvantages of object-oriented programming

Although Object Oriented (OO) Programming has been seen as a favourable programming language by many researcher and developers who have created good systems in the past, the same language has pitfalls which are explained bellow:

Steep learning curve: Due to the nature of object-oriented programming, many programmers find it challenging especially in understanding key programming concepts such as polymorphism and inheritance. The interaction of objects makes it complex to create programs.

Larger program size: Programming using object-oriented languages involves more lines of code which is contrary to procedural languages.

Slower programs: Due to several lines of code instructions are executed in object-oriented programming therefore, it makes the programs slower compared to procedural based programs.

3.4 Programming Difficulties

Butler and Morgan (2007) explained that enhancing the programming teaching industry is crucial to identify and understand the challenges that learners face in programming courses. In addition, it is also important to identify the challenges that teachers encounter in teaching programming courses. Gomes and Mendes (2007) explained some difficulties to learning programming language in following points:

(27)

14

Teaching is not personalized: Personalized supervision is more ideal where there is a teacher. Direct feedback explaining the problems which students find difficult could help. However, it may be straining to give such feedback.

Teacher’s strategies doesn’t apply to all students learning styles: Individuals tend

to approach new materials in different ways as they learn in several ways. Programming techniques tend to differ from student to student as learning styles are different and numerous ways can be used to arrive at the same conclusion or solve the same problem. The learning style differ from students as students are been taught through several means and tend to have different approach when it comes to learning new theory

The teaching of dynamic theory with the aid of static materials: Programming consists some dynamic perception which are thought with the aid static objects such as (projected presentations, verbal explanations, tables, texts, and so on).

Students use inaccurate study technique: Most students prefer to answering equations from memorized formulas, without a thorough understanding of many concepts as well as mastering many study options for programming.

Most Students don’t work hard enough to comprehend programming proficiency: Intense work is required for programming languages, solo study and textbook alone may not be sufficient.

Most students lack knowledge in tackling programming: Without knowledge of solving problems, it is difficult for students to create algorithms. Finding solutions to problems requires adequate knowledge of programming which most student’s lack.

Many Students lack programming knowledge: It has been observed that many students face difficulty in programming due to misconceptions.

Students lack mathematical and logical knowledge: The surrounding causes much objections which includes tacit or distinct mathematical concepts, particularly the theory which are essential for regular programming problems.

Students lack insufficent programming knowlegde: Apparently, in most cases there is a blank space missing inbetween generic problem solving and programming problem solving. So therefore, it is important that the environment aids programmer to make this transition phase much lighter.

(28)

15

Programming demands a high level of abstraction: The student’s abstraction capacity must be developed.

Programming languages have very heterogenous structure: The context lessen aspects inherent to language structure, stressing the algorithmic and problem solving progress. Students are more likely to concentrate basically in solutions which do not involve complex syntaxes.

3.5 Programming Language Features

In the literature the researchers (Madden & Chambers, 2002) have described the structure of object-oriented programs as depicted in Figure 1 below:

Figure 3.1: Object-oriented programming concepts (Madden & Chambers, 2002)

The structure of object-oriented programs is divided into six elements that Madden and Chambers (2002) explained below:

Objects: An instance of a class is referred to as an object and form the basic run-time entity in an object-oriented system. Objects interact with each other by sending messages to each other during run-time as well as interaction without knowledge of underlying source code.

Classes: This refers to group of objects of similar type and forms the basic entity of an object-oriented system. It is in this class that methods and variables of an object are defined.

(29)

16

Data Abstraction and Encapsulation: The act of representing essential features is called abstraction and it does not include explanations and background details. Classes are referred to as a list of abstract attributes and they also use the some concept of abstraction. Encapsulation refers to the process of storing data and functions in a single unit. Data can only be accessed by functions which are stored in a class.

Inheritance: This refers to the process whereby properties that objects of other classes are exhibit are acquired. Re-usability in inheritance enables additional features to be added to existing classes without any modification of the classes. Anew class is derived from an existing class and the output will be a new class that has features of the combined classes.

Polymorphism: This refers to a programs ability to exhibit more than one form. In different instances, an operation may have different behaviours based on the data type used in the operation. Polymorphism is mainly used in implementing inheritance.

3.6 Educational Programming Environments

Programming environments have been devised as a strategy to help students learn programming easier and help eliminate the negative mind set portrayed about programming. Jimenez-Peris et al. (2000) highlighted the basic requirements for any professional educational programming environment that are listed below:

 Programming environments must be up-to-date. Compilers, user interface and environment functionality must be up-to-date.

 Programming environments must provide higher working models that do not complicate explanations by simply mirroring the implementation.

 Programming environments must draw attention on understanding not merely assistance in development. When errors occur, explanations should be understandable.

 Programming environments must cater for non-academic activities which include group work, written and oral communication.

On the Internet there are much more environment for programming learning. Some of them explained as follows:

(30)

17 a. Object Karel Programming Environment

Xinogalos et al. (2006) described Object Karel as an educational programming environment based on a special object-oriented mini-language. The environment has several features which are important for analogous environments. The editor is structured in a way that supports program development more than syntactic details. In addition, the environment provides a step by step process of program execution as shown on Figure 3.2 below. Furthermore, the structure editor supports program development rather than a detailed focus on the programming language. It is designed in such a way that supports in understanding programming structures and flow of control. In addition, it has built-in tutorials to aid as a teaching and learning tool.

Figure 3.2: Programming environment for Object Karel (Xinogalos et al., 2006)

b. Raptor: An optic programming circumabient for tutoring object-oriented programming

Raptor is programming environment created to assist students in visualizing classes and methods by combining UML and flowcharts. Programs can be carried out manually and

(31)

18

then written as an object oriented programming language such as Java. The environment is designed in such a way that help students create algorithms by combining graphical symbols. This environment is good for novice programmers who possess little programming knowledge. In addition, the environment has built-in features for problem solving which are executed when algorithms are created visually as shown on Figure 3.3 below. After creating designs in Raptor, the output can be converted to Java language and the UML inventor allows students to create interfaces, teaching rooms and enumeration types. Comments can also be added on the UML diagram. The environment supports more than 80 built-in functions for students to generate random numbers, draw graphical designs, perform trigonometric computations and generate random numbers (Carlisle, 2009).

(32)

19 3.7 Programming Learning Strategies

In the literature, many researchers (Chetty & Westhuizen, 2014; Kunkle, 2010; Young & Fry, 2012) have described the three main approaches that can be used as a teaching aid for introductory object-oriented programming. One of the approaches focus on writing source code whilst the other two approaches aims at establishing and on creating and shapping various classes and objects. The approaches explained by Chetty and Westhuizen (2014) are explained as follows:

a) Objects-First Approach Using BlueJ

BlueJ is an integrated development environment that allows novice programmers of Java to interact and visualise with classes and objects before writing lines of code (Barnes et al., 2017; Valdecantos, 2017). This approach introduces students to concepts such as classes, objects and methods at the introductory lessons and encourages students to interact with methods and objects before writing code. BlueJ was developed to run on Sun Microsystems’ Java 2 Standard Edition (J2SE) Development Kit and it is an integrated development tool for java programmers. Kunkle (2010) pointed out that, by using BlueJ the shortcomings of many development environments are addressed which are listed below:

 The object-oriented paradigm is not reflected in other development environments.

 Most development environments are too complex for novice programmers and this makes learning programming difficult for novice programmers since the environments are designed for professionals.

 Other development environments focus mainly on building Graphical User Interface at the expense of allowing users to interact with objects and classes.

To address the above mentioned shortfalls of existing object-oriented development environments, the BlueJ development environment was developed (Kunkle, 2010). The following are the features of the BlueJ environment:

 BlueJ enables students doing introductory courses in object-oriented programming to interact with objects and classes making it easier for them to visualise what happens when programs are executed.

(33)

20

 Embedded UML diagrams support visualization and pop-up menus as well as dialogue boxes enable interaction between the environment and the user templates are also used to support easy code generation for novice programmers.

 BlueJ allows instructors to shield/hide more advanced concepts from students until a suitable time when the instructor feels it’s now the right time to introduce these concepts.

A screenshot of BlueJ is shown on Figure 3.4 below. The screenshot is one of the default projects named “people “ that is embedded in the development environment.

(34)

21

BlueJ is a tool that enables students to visualize what happens during program execution by developing a software environment that enables students to interact with objects and classes by building Graphical User Interface.

b) Objects-First or Objects-Early Approach Using Alice

This second approach uses a development environment called Alice. Alice allows students to build virtual world using 3D graphics by dragging and leaving objects, techiques as well as restrained structures (Alice, 2015). The distinction between the “objects-first” approach and the “objects-early” approach lies in the timeframe that is taken before students are actually introduced to coding. Objects-first has a longer time frame compared to the objects-early approach. Alice was initially designed for undergraduate students with no programming and 3D experience. Alice has enhanced students’ interest in object-oriented programming by providing the following:

Less frustration: Syntax errors are minimised by allowing students to create programs in 3D without typing a single line of code. Programs, often referred to as worlds in Alice are created by dragging and dropping objects and methods.

Friendly environment: Novice programmers are provided an environment where they can create compelling programs. Computer programs that take the form of 3D movies and games can be developed by using the storyboard as a metaphor and students can test the programs at any point during the design phase.

(35)

22

Figure 3.5: Shows a screenshot of Alice development environment (Alice, 2015)

In studying about programs most students have difficulties learning to program, most students problems with creating algorithms, discovering out how to use problem solving techniques in their programs, and making use of simple programming tools. The Alice, a 3-D tool interactive animation environment. A new construct that prepares a feasible approach to actively involving students in increasing their knowledge in many areas

Alice (2015) is an inventive block-based programming environment that enables user to create with easy animations, design interactive narratives, or program simple games in 3D. Contradicting many concept of the puzzle-based coding applications, Alice inspires learning through creativity expedition. Alice was built to teach logical and computational thinking skills, basic principles of programming and exposing first object-oriented programming. The Alice Project demands use of supplemental skills and materials for tutoring using Alice across a spectrum of ages and subject matter with theorical benefits in endulging and retaining different and underserved groups in computer science education (Costa & Miranda, 2017).

(36)

23 c) Imperative-First Approach Using Python

This approach has a traditional background in that it introduces programming first using python. Python is well known as an object-oriented scripting language used for introductory programing courses due to its nature of being simple, it provides flexible syntax and supports feedback (Kunkle, 2010). Students are introduced to imperative aspects first, which include expressions, control structures, functions and procedures that are the basics for procedural programming. Once mastered, students are then introduced to object-oriented techniques (Biju, 2013). Python is used when embedded in a host environment such as a web page. Below are the features of python that make the language more appealing for beginning programmers as stated by Kunkle (2010):

 Python uses simple syntax that is appropriate for beginners.

 Programs in python are enforced allowing the python container object to hold objects of any type or list.

 Python provides dynamic typing of variables.

 Python has embedded built-in types such as lists.

 Provides a friendly Graphical User Interface

(37)

24

Figure 3.6: Screenshot of a source code for calculating compound interest (Agarwal, 2005)

3.8 Problem Solving Approach

In the literature many researchers (Krunkle, 2010; Donchev & Todorova, 2008; Kirsti, 2004) defined an algorithm as a method for solving problems that consists of a defined set of instructions usually written in ordinary language. This process of coming with an algorithm is usually a trial-and-error process. If there are more ways of solving the same programming problem it, also means there are many algorithms. The choice of an algorithm to use ids dependent on several factors such as accuracy, reliability and ease of modification (Krunkle, 2010). The algorithm that takes the least time to execute is considered the best algorithm to use.

3.8.1 Steps in problem solving

The section bellows explains the steps that are crucial for solving problems using algorithms. The steps below describe checks that must be done before an algorithm is executed to make sure that it exhibits certain properties. Below are some steps in problem solving as described by Kirsti (2004):

(38)

25

Generality: An algorithm must be bulit for a full class of problems not just instance of a problem. It is crucial to check and verify input specifications if they meet the requirements and format that the computer will be able to execute. In addition, output specifications should also be checked to see if it complies with the format and make of the computer.

Finiteness: All algorithms to be executed must have a finite structure that means that it must terminate with either the right output or an indication that there is no solution. Since computer algorithms repeat instructions, it is very important for finiteness to be considered.

Non-ambiguity: All operations within an algorithm should be precise which means that the algorithm must be clearly stated and one has to know which step follows next. Commands used during execution may be conditional or repeated which mean they execute in loops, however for repeated commands, the algorithm should be designed to know when to stop.

Efficiency: Memory and time resources should be taken into account for the algorithms to be considered useful. Useful algorithms are the ones that require a reasonable amount of computing resources.

3.8.2 Problem Solving Strategies for Programmers

Chetty and Westhuizen (2014) explained a sequence of steps that one out to follow in solving programming problems. The steps explained are described in detail below:

1. Defining or specifying the problem: It is crucial for one to understand the problem before attempting to solve it. The student should ask him/herself the following key questions; what will the computer program do, what tasks must the program perform, what will be the output of the program, what kind of data will be used and how will the program interact with the computer user.

2. Analysing the problem: The idea behind analysis is to find an appropriate solution to solve the problem. This phase involves identifying inputs, outputs and other requirements or constraints before attempting to solve the problem.

3. Algorithm development: During this phase an algorithm is designed, that rectifies the problem through the use of a pseudocode or a flowchart. A pseudocode describes the logic and flow of the program and is written in a plain language that

(39)

26

can be understood by the user. Alternatively, a flowchart can be used during this phase as it provides graphic symbols and arrows that aid in expressing the algorithm.

4. Coding: This refers to the process of converting an algorithm into a programming language that can be understood by a computer.

5. Testing and Debugging: Testing refers to the process of executing functions by entering data to check output whereas debugging is a process of finding and correcting program errors that are produced during program execution. The errors that are corrected during debugging are syntax flaw, run-time errors and logic errors.

6. Documenting: It is important to document the program for prospective reference. An internal and external document should be kept with a detailed explanation of how the problems were solved. This serves as a good reference point for future use and program modification.

3.9 Metacognitive Skills

Geiwitz (1994) defined metacognitive skills as one’s ability in monitoring and directing different operations of coactive skills in order to gain the biggest possible success. In addition, the researcher defined a cognitive skill as the usage and manipulation of elements that enhance performance. Furthermore, he described problem solving as the generic cognitive skill. For problem solving to be a success, the researcher explained 10 metacognitive skills that lead to effective problem solving as follows:

 Discovery of a problem

 Illustration of a problem

 Adpoting of a problem-solving method

 Strategic usage of problem solving methods

 Assestment of solution candidates

 Recognition of errors

 Resource distribution

 Physical monitoring

 Social monitoring

(40)

27

Metacognitive is generally described as monitoring and controlling activities of one’s cognition. Metacognition has been identified as an important factor to be a successful learner in learning computer programming Ramesh (2014). According to Flavell (1979) metacognition refers to knowledge about thinking and coactive phenomena and has the capability to produce deep and important learning (Garrison & Akyol, 2015; Siswati & Corebima, 2017). Metacognition includes the capability to think about mental activities, strategies and tasks, implement progress to direct and support coactive thinking, and showing on all actions successful, with the goal of establishing deep and important learning (Flavell, 1979; Rizk, 2017).

The reason of metacognition is to direct thinking in a manner that it effectively controls mental activities specially when handling real life problems and complex tasks. A distinction is observed amomg metacognitive knowledge and metacognitive control of experiences. Metacognitive knowledge includes knowledge of a person, knowledge of distinctive strategies and knowledge of task to complete a task successfully, while metacognitive control refers to managerial processes to reflect, plan, monitor, reflect on and evaluate activities such as critical thinking and problem solving (Titus & Annaraja, 2011):

Planning is related with goal setting, reading and evaluation of text and of job to support understanding.

Monitoring include an individual’s attention of state of coactive activity, the skill to consult all detailed activities involved (e.g. problem solving), and the ability to assess progress.

Reflection as part of metacognition demands that learners should reflect in action, that is, while doing a task and on action, that is, after completing a task.

Evaluation is a metacognitive skill that explains the efficiency at which the task was performed and whether the main goals had been achieved.

3.9.1 Metacognitive skills for programmer

Young and Fry (2012) carried out an investigation to find the relationship that exists between metacognitive knowledge and metacognitive regulation, which was measured at a local and global level. Findings revealed that it is crucial to measure metacognitive

Referanslar

Benzer Belgeler

Graphical Display of East and West Facade Classroom's Daily Indoor Average Humidity Measurements (winter period) , and Outdoor Humidity Measurements by

In 2007, Aydin and Yardimci made their own research on four wood mechanical properties that always been used by Turkish people, in which the compression strength,

The majority of the respondents agree that the pharmacogenomic testing will help to decrease the number of adverse drug reactions (40.8%), while those who agree

- UV is an electromagnetic wave with a wavelength shorter than visible light, but longer than X-rays called ultraviolet because the length of the violet wave is the shortest

Therefore, the current research seeks to develop a new application to preview, select, and extract the feeds from the different pages on Twitter in addition to display them by easy

The aim of this thesis is to evaluate some of the nutritional quality of three commercially sold edible insects, in addition to their microbial aspects, as a new and

The examination of deconstructivist philosophy and related terms of deconstructivist design process such as sketching, perception, imagination, human aspects,

This work addresses is comprising among three different types of machine learning algorithms namely Artificial Neural Network, Radial Basis Function, and Support Vector