Oops Concept – The purpose of this qualitative study was to describe how novice students solved computer programming problems in a beginning college level computer science (CS) course with an introduction to object-oriented programming (OOP) and what knowledge they obtained about OOP and computer problem solving (CPS) as a result of their experiences.
To develop the solution code for the given problems, students consistently approached them without a comprehensive written plan/design. The process students typically used in developing a solution for the given computer problem involved:
(1) problem understanding,
(2) preliminary problem analysis,
(3) reliance on examples and
Students typically approached debugging syntax and logic errors by
(1) following the compiler generated messages,
(2) using trial-and-error,
(3) performing a desk-check strategy and
(4) using the VISUAL C++ debugger.
This study identified the features of CPS and OOP learning that can be studied for identifying how students approach CPS and OOP processes in other object-oriented languages (such as JAVA) and how their CPS and OOP processes develop as compared to C++.
Future research is needed in CPS and oops-concepts to explore gender issues in learning OOP languages. This study identified potential student CPS and OOPS Concepts learning processes and factors using a qualitative approach.
Future research should investigate the factors effecting introductory CS problem solving using a quantitative methodology or perhaps a combination of qualitative and quantitative approaches.
OBJECT ORIENTED PROGRAMMING(OOP Principles)
Object oriented programming – As the name suggests uses objects in programming. Object oriented programming aims to implement real world entities like inheritance, hiding, polymorphism etc in programming. The main aim of oops-concepts is to bind together the data and the functions that operates on them so that no other part of code can access this data except that function.
Let us learn about different characteristics of an Object Oriented Programming language:
Objects are basic run-time entities in an object oriented system, objects are instances of a class these are user defined data types.
Class: Class is set of operations(public) and set of data(private).
Encapsulation : Wrapping up(combing) of data and functions into a single unit(CLASS) is known as encapsulation. The data is not accessible to the outside world and only those functions which are wrapped in the class can access it. This insulation of the data from direct access by the program is called data hiding or information hiding.
Data abstraction :It refers to, providing only needed information to the outside world and hiding implementation details. . The advantage of abstractions is, we can change implementation at any point, users of Complex class won’t be affected as out method interface remains same. Had our implementation be public, we would not have been able to change it.
Inheritance: Inheritance is the process by which objects of one class acquire the properties of objects of another class. It supports the concept of hierarchical classification. Inheritance provides reusability. This means that we can add additional features to an existing class without modifying it.
We can also design new classes with existing classes.
~Polymorphism: Polymorphism means ability to take more than one form. An operation may exhibit different behaviors in different instances. The behavior depends upon the types of data used in the operation.
C++ supports operator overloading and function overloading.
Operator overloading is the process of making an operator to exhibit different behaviors in different instances is known as operator overloading.
Function overloading is using a single function name to perform different types of tasks.
Polymorphism is extensively used in implementing inheritance.