Cognitive, metacognitive and problem-solving knowledge and skills in object-oriented programming

Get Complete Project Material File(s) Now! »

Cognitive, metacognitive and problem-solving knowledge and skills in object-oriented programming

Introduction

It is not well understood how people learn to program and solve a problem in computer science (Traynor & Gibson, 2004:2). According to Deek (1999:1), learning to program is a complex cognitive task that includes learning the programming language, comprehending existing programs, modifying written programs, composing new programs and using debugging techniques. In the process of learning object-oriented programming (OOP), the student must know which objects, behaviours and interactions are important in the problem domain. There is a need for the refinement of research that explores the difficulties of OOP.There is also a need for guidelines about specific types of knowledge and skills to support the learning of OOP (Or-Bach & Lavy, 2004:82; Staats & Blum, 1999:13). Efficient knowledge and skills on the part of the programmer are necessary during the processes of problem solving, decision making, planning and critical thinking in OOP. Knowledge relates to information and skills acquired through experience or education and also refers to what someone knows (Concise Oxford English Dictionary, 2004:789; §1.3).Declarative knowledge refers to the knowledge of facts while procedural knowledge refers to knowledge of procedures that can be implemented in a task (Sternberg, 2006:229). Both types of knowledge are important in OOP. A skill can be defined as the ability to do a particular task (Concise Oxford English Dictionary, 2004:1351; §1.3). Fig. 3.1 shows various types of knowledge and skills, whose application in OOP is explored in this chapter. This includes the cognitive, metacognitive and problem-solving knowledge and skills necessary in OOP. The shaded blocks in Fig. 3.1 present the goal, various types of knowledge and skills, and their application in OOP that will be addressed in this chapter.After an explanation of the approach and concepts of object-oriented programming (§3.2),this chapter focuses on the cognitive, metacognitive and problem-solving knowledge and skills necessary in OOP. These three topics are addressed in Sections 3.3, 3.4 and 3.5 respectively. Chapter 4 builds upon Chapter 3 as it correspondingly focuses on cognitive, metacognitive and problem-solving strategies in OOP. Furthermore, various guidelines and practical means of support during the learning of OOP are discussed in some detail in different sections of the chapter.

Object-oriented programming

There are different approaches, called paradigms, to the way a programmer analyses,designs and implements a program (Ragonis & Ben-Ari, 2005:203). The object-oriented paradigm is widely advocated internationally in many higher education institutions (Or-Bach & Lavy, 2004:82), and was introduced in South African universities a few years ago. This section elaborates on the object-oriented paradigm, the origin of OOP languages, programming notations and models as well as problem and design spaces in OOP.

The need to change to the object-oriented paradigm

Changing to the object-oriented paradigm was advisable due to many problems in software development:
• Programming languages need a specific platform or operating system. Most programs must run on the Windows platform, but traditional programming languages, such as Turbo Pascal need a DOS-based operating system and many errors occurred when
such programs were executed within a Windows-based environment (§1.2);
• Programming in a DOS environment was difficult without a user-friendly graphical interface;
• In the former procedural paradigm, the main program lay in control. Since global declaration of data was permitted, it resulted in difficulty in modifying and testing of programs because the data may change in any procedure (Rosson & Alpert, 1990:356);
• Programming problems became more complex and the programs consequently became cumbersome (Yousoof et al., 2006:259).
The object-oriented approach addresses some of these problems. Object-oriented programming is based on this approach, where objects are models of real-world entities that have the responsibility of carrying out specific tasks to solve the problem (Garrido, 2003:26- 27). Most software applications can run on a Windows platform, have a user-friendly graphical interface, and each object is responsible for its own behaviour (Shalloway & Trott, 2002:6,12-15).

Title Page 
Abstract
Acknowledgements
Table of contents
List of figures
List of tables 
List of program segments
Appendices 
CD
Glossary of terminology
1. Theoretical background and real-world problem statement
1.1 Introduction
1.2 Background
1.3 Problem statement, research question and subquestions 
1.4 Research objectives
1.5 Delineation and limitations 
1.6 Research framework and methodology
1.7 Data to be collected and research instruments 
1.8 Significance of the study 
1.9 Brief chapter overviews
1.10 Conclusion
2. Research design and methodology
2.1 Introduction
2.2 Epistemological paradigm, research design and methodology
2.3 The interpretivist paradigm 
2.4 Research practice – grounded theory
2.4.1 Overview
2.4.2 The process of generating a grounded theory
2.5 Research considerations with regard to this study
2.5.1 Relevance of interpretivism
2.5.2 Relevance of grounded theory
2.5.3 Reliability, validity and reflexivity
2.6 The positivist paradigm
2.6.1 Relevance of the positivist paradigm
2.6.2 Reliability and validity
2.7 Research methods: data collection techniques
2.7.1 Research plan and participants
2.7.2 Object-oriented computer program
2.7.3 Written document – participants’ thinking processes
2.7.4 Questionnaire
2.7.5 Ethical aspects
2.8 Research methods: data analysis techniques 
2.8.1 Computer program analysis
2.8.2 Textual document analysis – using the support of Atlas.ti
2.8.3 Questionnaire data analysis
2.9 Qualitative data analysis software – Atlas.ti
2.9.1 Application of Atlas.ti
2.9.2 The harmony between grounded theory and Atlas.ti
2.10 Chapter conclusion
3. Cognitive, metacognitive and problem-solving knowledge and skills in object-oriented programming
3.1 Introduction
3.2 Object-oriented programming
3.2.1 The need to change to the object-oriented paradigm
3.2.2 The origin of object-oriented programming languages
3.2.3 An overview of object-oriented programming
3.2.3.1 Object
3.2.3.2 Class
3.2.3.3 Attributes and methods
3.2.3.4 Constructors and destructors
3.2.3.5 Abstractions and associations
3.2.3.6 Polymorphism and dynamic binding
3.2.3.7 Advantages and disadvantages of object-oriented programming
3.2.4 Programming notations and models
3.2.4.1 Patterns in object-oriented programming
3.2.4.2 UML – an important graphical notation
3.2.4.3 CRC cards
3.2.5 Problem and design spaces in object-oriented programming
3.3 Cognitive knowledge and skills in object-oriented programming
3.3.1 Memory, comprehension, reasoning, decision making, creative and critical thinking in object oriented programming
3.3.1.1 Memory and cognitive load
3.3.1.2 Comprehension, reasoning, decision making, creative and critical thinking
3.3.2 Bloom’s taxonomy
3.3.3 Some practical means of cognitive support
3.4 Metacognitive knowledge and skills in object-oriented programming 
3.4.1 Metacognitive knowledge in general
3.4.2 Metacognitive knowledge in object-oriented programming
3.4.3 Some practical examples of metacognitive support
3.5 Problem-solving knowledge and skills in object-oriented programming
3.5.1 Factors that relate to the level of difficulty of problems
3.5.1.1 The structuredness of problems
3.5.1.2 The complexity of problems
3.5.1.3 The dynamicity of problems
3.5.1.4 The domain specificity or context of problems
3.5.2 Steps in problem solving
3.5.2.1 Problem understanding
3.5.2.2 Program designing
3.5.2.3 Program coding
3.5.2.4 Program testing
3.5.3 Level of expertise and problem solving
3.5.4 Some practical means of support during problem solving
3.6 Chapter conclusion 
4. Cognitive, metacognitive and problem-solving strategies in object-oriented programming
4.1 Introduction
4.2 Strategic aspects of performance 
4.3 Cognitive strategies
4.3.1 Rehearsal strategy in object-oriented programming
4.3.2 Elaboration strategy in object-oriented programming
4.3.3 The organisation-and-integration strategy in object-oriented programming
4.4 Metacognitive strategies
4.4.1 Planning strategy in object-oriented programming
4.4.2 Monitoring strategy in object-oriented programming
4.4.3 Regulation strategy in object-oriented programming
4.4.4 Reflection in object-oriented programming
4.5 Problem-solving strategies in object-oriented programming 
4.5.1 Problem-solving strategies during programming
4.5.1.1 Bottom-up strategy
4.5.1.2 Top-down strategy
4.5.1.3 Integrated strategy
4.5.1.4 As-needed strategy
4.5.1.5 Trial-and-error strategy
4.6 Chapter conclusion 
5. Empirical research and data analysis
5.1 Introduction
5.2 Analysis of participants’ computer programs and thinking processes
5.3 Qualitative analysis of participants’ thinking processes using Atlas.ti software
5.4 Statistical analysis – questionnaire
5.5 Triangulation between different analysis methods 
5.6 Measures to ensure rigour and quality of data
5.7 Overview of the research findings 
5.8 Chapter conclusion 
6. Discussion and conclusion
6.1 Introduction
6.2 Discussion of the findings of this study 
6.3 A learning repertoire of knowledge, skills and strategies for object-oriented programming 
6.4 Application of this study to teaching and learning 
6.5 Recommendations and future research directions
6.6 Chapter conclusion 
References 

READ  ADDRESSING THE BARRIERS TO READING COMPREHENSION DEVELOPMENT OF LEARNERS IN A TOWNSHIP SECONDARY SCHOOL

GET THE COMPLETE PROJECT
AN INVESTIGATION OF STUDENTS’ KNOWLEDGE, SKILLS AND STRATEGIES DURING PROBLEM SOLVING IN OBJECTORIENTED PROGRAMMING

Related Posts