0% found this document useful (0 votes)
64 views

"Object-Oriented Programming Through The Lens of Computer Science Education

The document discusses object-oriented programming in the context of computer science education. It first looks at the history and concepts of OOP, including the main concepts identified in literature like inheritance, objects, classes, etc. It then examines different methodologies for teaching OOP, including object-first vs. object-last approaches. Finally, it considers educational theories relevant to designing an introductory OOP course, such as constructivism and social cognitive theory. The goal is to identify best practices for teaching OOP concepts and evaluating student programming abilities.

Uploaded by

amal
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
64 views

"Object-Oriented Programming Through The Lens of Computer Science Education

The document discusses object-oriented programming in the context of computer science education. It first looks at the history and concepts of OOP, including the main concepts identified in literature like inheritance, objects, classes, etc. It then examines different methodologies for teaching OOP, including object-first vs. object-last approaches. Finally, it considers educational theories relevant to designing an introductory OOP course, such as constructivism and social cognitive theory. The goal is to identify best practices for teaching OOP concepts and evaluating student programming abilities.

Uploaded by

amal
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

<Amal Marea>

Bildung in der Informatik, Freie Universität Berlin, Berlin<2019>

“Object-Oriented Programming through the Lens of


Computer Science Education “

Amal Marea1

Abstract: Despite the fact that object-oriented programming has found its way into the industry
long time ago and relatively later into the education system, finding the right methodology to learn
it and to teach it is still a challenge. However, attempts are still being made to find the most effective
approach to introduce the object-oriented paradigm to students. In this paper, the concentration is
on designing an introductory level course by identifying the main concepts of object-oriented
programming, finding the right methodology to teach it and to bring to light ways to evaluate the
progress and performance of novice programmers, which is one of the most challenging aspect of
teaching programming in general.
Keywords: Object oriented language, novice programmer, introductory course, Minimally Invasive
programming course, object first, object last, industrial language, educational language, competency
model, concept map, item response theory.

1 Introduction

The spread of affordable personal computer in the 1980s had exposed many shortcomings
of the programming paradigm that was predominant at that time, namely the procedural
paradigm. Moreover the number of embedded system was increasing with time which
meant that the demand for secure software was also increased, which is after all not a
strength point of the imperative programs, since they are more prone to errors, which are
as well harder to debug. In opposition, object-oriented languages were designed to reduce
the likelihood of programming errors. Furthermore, the need for re-usability presented
itself and was met by introducing inheritance.
Nonetheless, the object orientation was not developed overnight, but rather through the
development of specific programming languages, each of which incorporated new
concepts and expanded the other object-oriented concepts of other languages. Simula was
the first object-oriented language to be developed whose development started 1962 and
ended with Simul67, which announced the central role of objects, classes and inheritance.
Several other object-oriented languages were form there on developed. For example,
Smalltalk that was developed in 1970s and Eiffel in 1980s.

1
Institut für Informatik/Freie Universität Berlin, [email protected]
Amal Marea

In the meanwhile, features of object orientation like object, class and inheritance were
added to some imperative languages like C and Pascal and by doing this, C++ and Trubo
Pascal were invented.
In the 1990s java was developed, which is another hybrid language that combines the
object-orientated and the procedural paradigms.

2 Goal and Experimental Setting of the Research

The main reference of this paper is the work of Marc-Pascal Berges, whose goal was to
design an experimental introductory course for object-oriented programming as a
preliminary course in the Department of Computer Science at the TU München.
The design of the course was conducted after a deep review of the literature on computer
science education to find out:

• The concepts of object-oriented programming presented in the literature and


standard curricula.
• How is object-oriented programming is being taught.
• Which teaching methodologies are applied.
• How to assess programming abilities of the novice programmers.

3 Representations of Object Orientation in Computer Science


Education
Teaching programming in computer science education has many advantages. It
demonstrates and teaches abstract thinking to students and it helps them to learn problem
solving while learning how to design and think strategically, object-oriented programming
has a competitive advantage in this case, since it appears in almost every book related to
software. However, introducing object-oriented programming into the educational
program will lead to change in whole curriculum, which is mainly based on using an
imperative programming language in introductory courses and introduces object
orientation as an advance topic later in syllabus.
To explore the representation of object orientation in computer science education, three
aspects are considered; concepts, methodology used to introduce them and the
programming language. At the end we will explore the object-orientation in national and
international curricula.
Object-orientation in Education

3.1 Concepts

There is a wide variety of views of object orientation and consequently there is a broad
variety of concepts related to this relatively new paradigm. To solve this problem a
literature review was done by Armstrong in 2006 to identify the main concepts of object-
oriented programming as it presented in the literature.
Armstrong identified 8 concepts, that appeared in more than 50% of the reviewed
literature, namely Inheritance, Object, Class, Encapsulation, Method, Message Passing,
Polymorphism, and Abstraction.

3.2 Methodology

After identifying the main concepts of object-oriented programming, the natural question
to ask would be: How to introduce them and which methodology to use?
The main approaches are object-first and object-last. Object-last is the more prominent
approach, in which algorithmic concepts and control flow and structure get introduced
first and then a transition to the object-orientation is made by introducing the modeling
aspect of object-orientation. This approach makes it harder for students to understand the
concepts of object-orientation, especially to differentiate between an object and a class.

In the object-first approach students may be given a pre implemented objects to


experiment with, for them to acquire an understanding of what objects really are. Then
they design and implement classes while learning the conceptual aspects along with the
actual programming.
In contrast to the students who follow the object-last methodology and found it hard to
understand the concepts of the object-oriented paradigm, those who follow the object-first
methodology found it easy to understand the procedural aspects of programming like
algorithmic concepts and control flow.

3.3 Programming languages

As stated in the introduction, there are pure object-oriented languages like Smalltalk and
Eiffel and there are the industrial languages that are widely used but not purely object-
oriented like C++ and java.
Pure object-oriented languages are considered educational languages since they are more
suitable for educational purposes compared with the industrial languages which make it
more confusing for the students to understand the concepts of the object-orientation.
Amal Marea

Another important issue related to the choice of the suitable programming language is the
development environment. An environment that provides a graphical representation of the
objects and their relation to each other is very beneficial for the understanding of the
concepts of the object-oriented paradigm. An example of that is "ObjectDraw" which is a
java library that support the teaching of the language by aiding the development of
programs through drawing elementary graphics.

3.4 Object-orientation in national and international curricula

A focus on the modeling aspect is noticed, where the programming is used as a tool to
implement the object-oriented model, which shows that programming is of lower
importance in the standard curricula. The competency model focus as well on the
modeling aspect with less focus on the programming. Nevertheless, most concepts of
object-orientation are covered by both, the curricula and the competency model.
Meanwhile the object last or the classical procedural approach remains the main
methodology used to teach object-oriented programming.

4 Educational theories: How do we learn

The followings theories were taken into account when the introductory course mentioned
previously was designed.

4.1 Constructivism

According to constructivism theory, knowledge is acquired through the individual's


interaction with the surrounding. Through this interaction a cognitive abstraction of reality
is formed by the learner, who plays an active role in the learning process. The teacher's
role is to be a mentor and to provide material and create learning situation. However, this
cognitive model is not an exact reflection of reality, but rather approximation of it.
When presented with input that conflicts the current cognitive structure, the student
restructures the cognitive model to regain the balance between reality and the cognitive
structure.
Object-orientation in Education

4.2 Social Cognitive Theory

Motivation is neither purely intrinsic, nor purely shaped by external stimuli, is what the
social cognitive theory argues for. After studying the influence of social interaction on the
learning process, it was noticed that human beings function in reciprocation with their
environment and that they have the following capabilities that affects the learning process:

• Symbolizing capability: the ability to transform experience into cognitive model.


• Forethought capability: the ability to regulate the present to fit a desired future.
• Vicarious capability: the ability to learn without having to experience (e.g. from
models).
• Self-regulatory capability: the ability to cyclically adapted to attain personal
goals.
• Self-reflective capability: the ability to use deducting to judge the correctness of
operative thinking against the outcomes.

4.3 Self-Directed learning

As it was above in the last two points of the social cognitive theory disclosed, self-
regulation and self-reflection are part of human beings’ capabilities and are in general part
of the human psychological development. This on the other hand indicates that the
learning process can be initiated by individuals without interference of the environment or
others.
In practice, self-directed learning occurs in groups with the help of an instructor, a teacher
or a tutor. However, the student-teacher relationship is redefined as a cooperation between
the student and the teacher and does not conform to the classical model of teacher-centered
strategy, where the teacher is responsible for engaging the students, setting learning goals,
learning resources and strategies.
It worth mentioning that the success of this approach depends on the level of motivation
of the participating student, since the teachers’ only role is to facilitate the learning
process.

4.4 Didactic Approach Used in the Design of the Introductory Course

While most studies focus on learning to program through instruction, the introductory
course was designed to be minimally invasive with little direct instruction. The courses
material was available as well as a peer tutor. Even though the student were divided into
homogenous groups based of their previous programming knowledge, they had to work
individually.
Amal Marea

5 Evaluation of Novice Programmers' Abilities

Evaluation is very important step to be able to measure the progress of the students and
the success of the methodologies used in the educational process to achieve the preplanned
didactic goals. Nevertheless, when it comes to programming, evaluating the abilities of
the programmers is challenging since computer science education is relatively new subject
and due to the lack of a competency model, which specifies the set of skills and abilities
needed to be gained by novices. Despite that, efforts are made to develop one and in the
research in hand two approaches were used, namely evaluating the knowledge gain and
evaluating the code.

5.1 Evaluating the Knowledge

By using concept maps the conceptual knowledge of the participates was evaluated. A
concept map is a graphical representation of knowledge as concepts and the relation
between them. The students were asked before the begging of the course and based on
their intuition or previous knowledge, in case they were already familiar with the concepts
of object-orientation, to draw a concept map. The same was done after the end of the
course. This tool didn't only show how much knowledge did the student gained but helped
as well to identify the misconceptions that they had. Moreover, the same maps were used
to compare the conceptual understanding to the programs' code, which helped to shed
some light on the questions:
1. Does knowing a concept lead to implement it in the code?
2. If concepts get implement in the code even though they were not really
understood?

Fig. 1: The map to the left was drawn before the course and the one to left after
Object-orientation in Education

5.2 Evaluating the Code

The methodology used to evaluate the code is based on the item response theory, which is
a Paradigm for scoring to measure abilities or attitudes, based on the performance on a test
item versus the classical test-level. More specifically, a list of code items were created by
a direct mapping to the concepts of object-oriented programming. Furthermore, the
presence of a syntax element in the code indicates the use of a specific item, for example,
the syntax element “extends” indicates the use of the code item "inheritance" and the use
of the syntax element “new” shows an implementation of the code item "object" and so
on. In addition, for each of the code items the relative frequency of application in the
program code is calculated.
The result of the evaluation reflects the skills of the programmer gained, as well as those
skills that need more studying and practice. In comparison, the classical test-level
methodology does not give that information directly.

6 Conclusion

1. Object first methodology helps novice programmer to understand object


orientation with less difficulty than object last.
2. Minimally invasive course as a didactic methodology works.
3. Developing a competency model is important but challenging. Further research
is needed.
4. Regarding Knowing vs. Doing: Some concepts were applied in program code but
where not included in concept map.
5. The correlation between Knowledge and abilities needs further investigation.

6.1 References

[Be15] Berges, Marc-Pascal: Object-Oriented Programming through the Lens of Computer


Science Education, The Technical University of Munich, 2015.
[Bl13] Black, Andrew p.: Object-oriented programming: Some history, and challenges for the
next fifty years, Information and Computation, Volume 231, P. 3-20, 2013.
[Ok06] OKUR, Mehmet C.: Teaching Object Oriented Programming at The Introductory Level.
Journal of Yasar University, P. 149-157, 2006.

You might also like