gramming language. LOGO was one of the most
widely used programming languages for beginners
(Jetsu, 2008), allowing students to use the computer
to control a robotic turtle to follow their instructions
(Papert, 1980). Slot Machine allowed students to con-
trol either a real mechanical robot or a screen based
simulation of such a robot (Perlman, 1976). Algo-
Block is another interface that is somewhat similar to
Slot Machine. It consists of a set of physical blocks
that connect to one another to form a program (Suzuki
and Kato, 1993). Each block corresponds to a single
command in the LOGO programming language. The
term tangible programming language was invented by
Suziki and Kato in order to describe the AlgoBlock
collaborative programming environment (Suzuki and
Kato, 1993). Topobo is another example of this kind
of interfaces that was designed to learn programming
thinking (Raffle, 2004), it consists of a set of active
and passive blocks which can be combined together to
assemble and animate robotic structures. The active
blocks are embedded with a kinetic memory which
allows recording and playback of physical motion of
the constructed assembly. This constructed assembly
is animated by moving passive blocks that are con-
nected to the active ones. After the animation has
been created, it can be played back by pressing a but-
ton (Raffle, 2004).
Several environments have been designed with a
view to reduce the complexity of programming learn-
ing for novice students and increase their motivation.
These environments use graphic representations to in-
troduce abstract programming concepts and allow stu-
dents to create games and animations by manipulating
programs. Alice (Conway et al., 2000) and Green-
foot (K
¨
olling, 2010) are examples of such environ-
ments, which strive to engage students by allowing
them to write programs about games, stories and sim-
ulations. One of the important characteristics of Al-
ice and Greenfoot is a design that explicitly visual-
izes fundamental concepts of OOP in a realistic and
a meaningful context. Students do not typically start
by manipulating source code, they rather start by cre-
ating objects by selecting graphics which represent
classes. Once an object has been created, it can be
placed into a 2D (Greenfoot) or a 3D (Alice) scene,
when the object is selected the user can see all its
methods which constitute all its available actions it
can perform. Once a method has been selected, the
user can see immediately the effect of its execution
onscreen. After the students are introduced to the fun-
damentals of OOP, scenarios that have been already
implemented are presented to them enabling easy ma-
nipulation of programs in their syntax. This charac-
teristic is very interesting for novice students, since it
has been proved (Cooper et al., 2003; K
¨
olling, 2010)
that this helps novices to avoid syntax errors while fo-
cusing on understanding abstract concepts before ma-
nipulating source code. According to (Utting et al.,
2010), these environments’ principal harks back to
Logo’s turtle. Since they reify objects so that the re-
sult of command execution is visible as the position,
size, rotation, and other visible state and behavior of
the object changes. These environments provide high-
level commands like move and hide low-level details
such as graphics primitives.
By analogy with any construction game such as
Topobo, a screen based simulation of such a game that
allows students to manipulate 3D graphics to create
and animate robotic structures, whereas each graph-
ical elementary block represents an object, would be
relevant to introduce OOP concepts. Indeed, an object
is an active entity within a program, including a set of
attributes (knowledge) and methods (skills) that act
on its attributes to achieve some functionalities which
are the objectives of the program.
3 A 3D VIRTUAL GAME
PROTOTYPE FOR LEARNING
OOP FUNDAMENTALS AND
C++ PROGRAMMING
LANGUAGE
A constructive game dedicated to learning OOP fun-
damentals, should enable students creating objects,
visualizing their state and behavior, interacting with
them by executing their methods and make them com-
municate with one another. Direct manipulation of
graphics representing object-oriented concepts can
help students, as in real life, to think in terms of ob-
jects. The student should be able to create as many
class instances as he likes. The concept of inheritance
can be materialized by creating new objects based on
other objects having the same behavior with new at-
tributes or the same attributes with new behaviors.
The concept of composition can be represented by
objects that contain other objects. In order to enable
the student to understand more easily the implementa-
tion of the abstract concepts in a specific syntax such
as C++, all his manipulations executed directly on
the graphics should be interpreted into source code.
Since the representations are very precise, each stu-
dent’s action can be interpreted into a C++ instruc-
tion. This will constitute a complete program, that
the student can visualize and modify in order to prac-
tice programming, after the abstract concepts are well
understood.
CSEDU2015-7thInternationalConferenceonComputerSupportedEducation
290