A Constructivist Approach to Teaching Object-Oriented Programming
  ,Object-orientation provides not simply a new way of programming, but a new way of thinking about computing
 
  Object-oriented concepts, that is abstraction, encapsulation, inheritance, polymorphism and dynamic binding. These concepts may be  used to understand problem situations, to design object-oriented models, and to choose appropriate means of implementation. Producing students with a good understanding of the classical object-oriented  programming is however not enough, since languages, such as Java, aspire to becoming a standard for the use of object-oriented components within the WWW, by incorporating objects in a form that is reusable, concurrent, interactive, and distributed [2].
 
   
  knowlegde must be related to each other: object-oriented concepts must be linked to used to understand problem situations in terms of objects and to choose adequate means of implementation.
 
  Formal reasoning skills, such as inductive and deductive reasoning, including modeling object-oriented systems.
 
 
  The goal of a constructivist approach to object-oriented programming is to help each student to build useful, interrelated  knowledge  that can be used for efficient problem solving. When knowledge is structured, the conceptual understanding of problems is enhanced, design and implementation ability improves, because object-oriented concepts may be used to understand problem situations, to design conceptual models, and to choose appropriate means of implementation. To be successful, a pedagogical approach motivated by constructivism needs to be organized around a set of activities where students are actively engaged in the knowledge being learned.
 
  Analogical thinking skills, such as comparing and contrasting, as well as recognizing similarities and differences between problem situations  using object-oriented concepts
 
  This situation is, to some extent, the result of  the objectivist model of learning:  performing  programming tasks without engaging the mind appropriately in  understanding the object-oriented paradigm
 
 
 

Keywords
Constructivism, Java, object-oriented programming
 

 
  including some suggestions as to how it can be constructed using higher-order thinking skills. This is the main activity.
 
  The goal of a constructivist approach to object-oriented programming is to help each student to construct interrelated knowledge  that can be used for efficient problem solving. When knowledge is structured, the conceptual understanding of problems is enhanced, design and implementation ability improves, because object-oriented concepts may be used to understand problem situations, to design conceptual models, and to choose appropriate means of implementation. To be successful, a pedagogical approach motivated by constructivism needs to be organized around a set of activities where students are actively engaged in the knowledge being learned.
 
 
 
 
 
  The goal of the activities is to motivate the students to construct  interrelated, object-oriented knowledge  in the course of problem solving
 
   These activities are important for improving the ability to construct interrelated object-oriented knowledge.