000062142 Applying Alice Into Teaching And Learning Basic Concepts Of Object-Oriented Programming (Ứng dụng Alice vào giảng dạy và học tập Các khái niệm cơ bản về lập trình hướng đối tượng)
Trang 2
| HÃNGOL |
Applying Alice Into Teaching And Learning
Basic Concepts Of Object-Oriented
Programming
Graduation Thesis Submitted to
Hanoi University
for the honor degree of
Bachelor of Computer Science
By
Le Ngoc Hung (Computer Science)
Supervisor: Msc Le Minh Duc
June, 2011
THU VIEH DAI HOC HA NO!
HANOI UNIVERSITY LIBRARY
%4 c2142
Trang 3
Abstract
It is believed that learning to program is the most fundamental and the biggest
challenge in the path of computer science and object-oriented programming is becoming
more important in the modern world Currently, there are several solutions in the form of
computing educators with graphical environment to help novices Many of them are not
well-studied and developed so it caused some unexpected impacts out of developer's
original purpose However, there are exceptions, too and Alice is one of them with 3D
graphical programming environment With a lot of supportive features, Alice really did a
great job in bringing a whole new view about programming, especially in introducing the
fundamental knowledge of object-oriented programming to beginners On the other hand,
as a matter of fact, Alice still has some negative effects on the student Also, later part of
my paper is the result of a new approach of teaching and learning object-oriented
programming concepts with the assistance of Alice in Hanoi University
Trang 4Acknowledgments
I am heartily thankful to my supervisor, Mr Le Minh Duc whose encouragement,
guidance and support from the initial to the final level enabled me to develop an
understanding of this new approach
Lastly, I offer my regards and blessings to my senior, Mr Bui Tuan Anh and all
09 students who supported me in any respect during the completion of the project
Le Ngoc Hung
iti
Trang 51.4 An Overview of the Rest of the Documen( 5c c5+ccccsccceere.ce Ố
Chapter 2 Background Knowledge - Sts+teterkekEkekkrkrrkrrkerrrkrrkee 7
2.1 What is programmingg 5s Set th k1 1111 1111111 xe 7
2.2 Object-orienfed pr0gTamming - 5s x11 ct1eesrke 7
222:1:ÐERIRRHHGH+acsecoititoadiviioigtgigiöisbdstagidRbagis9fyliifliosigiflisäss8s„sse 7
2.2.2 Basic concepts and features of object-oriented programming 8
2.3.Teaching strategy for learning computer programming . - 8
2.4 Graphical Tools in teaching programmiing sony 10
2.5 Alice- A basic understandiỉng - - - + + cttvvtEkkerkerkerkerekrrkirkerrke 14
2.5.1 Introduction of Alice
2.5.2 Alice main features
2.6 Review of other finding in the past scssssssessssesssseesseesssesssessstesseesneees 19
Chapter 3 Sampling Design
Chapter4 Methodology is.isscss.ssssssccvsesssstessesviresssaeensonsssisosvsnnssnssrenwsrvoniicraveeeaasennO
Trang 6Alo PROCEMURE fttottottit6tigtotgDfBlEDNGGIEIIIIILGANREIDERENNQGEBMSessse 26
Appendix 1: Student previous course research + +ccxcverkiekrerkrrkrerrrree 37
Appendix 2: Alice —Pre Test.RESHÍ ;: ::.‹ 0:25:2c2 666 0200010000500 10 004010 g80 006141 39
Appendix 3: Alice Final test resuÏt 6-5ăseeseererererrreeă, fÏ
Appendix 4: Alice code for Family Bunny Program: -ss++cccxcrssrverxee 45
Appendix 5: Session 1: Introduction to A ÌiCe - 5-5 5++xcrt+rSkkervskrrkerkrrkervre 47
Appendix 6: Session 2: OOP conC€ptS . + S++E +11 re 55
Appendix 7:Session 3 .ccccesscssssesseseeseseeseseeseseseeeeneceeseeneceeneeseenesessecaeeseeseenesnesneeneane 61
Appendix 8 : Statistical Test Result scecsessssssesssesssecssecsssecssecsnsesssseenseensneeennnees 62
Trang 7List of Figure
Figure 1 Overall result of evaluating graphical teaching tooÌs - c-. 13
Figure 2: Hello World Program
T18Ùfe 3:.A116E TETTBEE piticcioistitttsirtig ĐEN S0SSESGIEDGIGGMQUSEAbsasses l7
Figure 4: Result of Alice-Pre Test - «55tr 2E
Eigure?5›1he.Bunny,Eamily: ẤOtÍ,ssssasseaseisneiioikinS40016600140166616114806604101184168.616 15g38 27
vi
Trang 8Chapter 1 Introduction
1.1 Objectives
The primary objective of this thesis is to evaluate the efficiency of applying
graphical teaching tool, in this case, Alice in to teaching and learning basic object-
oriented programming concepts This is addressed from the hardship in learning object-
oriented programming with no visualization and the existence of variety of graphical
programming environment
In his lecture, Baldwin [19] stated out that every true OOP language must support
the following three programming concepts:
Another objective of this thesis is to study the student’s attitude toward this new
learning method as well as learning programming in general, which can be considered as
one of the most important factor in the outcome and quality of student from any computer
science courses
Trang 9To conclude, the main aim of this research was to assist the understanding
about object-oriented programming as well as to improve the motivation toward
learning programming of 2"! year students in Faculty of Information Technology,
Hanoi University and evaluate the effectiveness of Alice in teaching basic object-
oriented concepts, in our case: encapsulation and inheritance
1.2 Motivation
Nowadays, with the dramatic rise of computer industry, learning computer
science is becoming more difficult than itself in the other time, especially in
programming course With the broadening in scale of programming projects, learning
how to programming in the tradition way sometimes seems not so appropriate with
current situation Instead of beginning with syntax and statements, students can gain
direct access to object-oriented view which is considered one of the most urgent factors
in learning as well as working in computing field by starting with the basic concepts in
order to gain a firm background In addition, there exists a lot of graphical teaching and
learning tools for the purpose of assisting this theory Alice 3D environment is one of the
most successful tools which achieve positive attitude from both teachers and students in
applying graphical tools in teaching computer science in more than 400 universities in all
around the world So, it is a good idea applying this new approach in introducing the
most fundamental concepts of object-oriented programming in a more attractive and
effective way
Trang 10At first, we have to consider about the fact that: Why Object-oriented is needed
and why it is an urgent matter teaching these concepts from the beginning of
programming course? The main idea of object-oriented programming is to build
programs using objects Object is an encapsulation of protected data along with all the
legal operations that act on that hidden data [4] Plus, the key concepts of object
orientation are encapsulation, polymorphism and inheritance Beside the concept of
encapsulation which was mentioned above, inheritance is also a very important technique
in software development which means a new class (sub class) is derived from an existing
~one (super class) In the deriving process of this technique, the sub class inherits all the
attributes and behaviors of the pre-existing class
With these features and concepts, surely Object-oriented programming will have a
lot of advantages First thing is the ability to reuse code as well as uniqueness by
inheritance and encapsulation As a result, it will be easier in making changes in the
program by modifying the super classes Moreover, it can help students to develop a
strong sense of structure in doing programming which is a very urgent issue in large
projects currently On the other hand, everything has its own negative side, and so does
object-oriented programming The first challenge is that the capacity of program is
always larger than implementing in traditional method because of inheritance resolution
at run-time Furthermore, in order to compile the program, inherited code has to be
looked up from subclasses which lead to the decrease in speed of the program However,
as a matter of fact, the benefits of object-oriented programming really did surpass all the
Trang 11obstacles, all the challenges it brings That’s the reason why most of large projects
nowadays are developed in OOP way [5] and that fact encourages introducing object-
oriented programming concepts for students from the beginning of the course for the
purpose of a firmer background as well as a more professional learning and working
environment in the future
On the other hand, another shortcoming of object-oriented programming is the
lack of visualization and that’s the reason for the biggest obstacle in the exploring path of
students which mean it is nearly impossible for them to imagine about the program they
created So, using a 3D animation environment will be an appropriate answer for
introducing basic OOP concepts to novice programmers
Visualization for software programming was introduced in the late 1980’s for the
purpose of creating and interactively exploring graphical representations of computer
science concepts [10]
Over the last two decades, a lot of graphical tools have been developed to give an
answer to these problems Many of them are not well-studied or even under development
so it caused some unexpected impacts out of the original purpose However, there is
exception, too and Alice is one of them with 3D graphical environment With a lot of
supportive features, Alice really did a great job in bringing a whole new view about
learning object-oriented programming, especially with novices and people who haven’t
have any knowledge related to computer field
Trang 12The question is that how and when Alice should be applied in teaching Computer
Science As a survey and feedback on the website http://stackoverflow.com [6], most of
users have positive attitude toward Alice and they stated out that Alice is the most
appropriate for introducing novices and people who haven’t had any knowledge about
programming By doing so, the motivation of them toward computer science can improve
as well as their background of objects and classes in learning to program
1.3 Methodology
Due to the nature of difficulty in introducing basic concepts of OOP is
visualization and since the aim of Alice is to provide such a 3D environment with
animation which encourages students to think about the concepts with real objects and
real relationship graphically
In order to do so, students need to be divided into 2 different groups Decision for
choosing group was based on a Pre-Test; the result was calculated by the average of
individuals in each group with their appropriate level (which will be described in chapter
3) Then, the treatment group was a group of students exposed to Alice during OOP lab
(one lab each week for 3 weeks) The control group was a group of students that attended
the traditional classes only The performance of the two groups in understanding OOP
concepts was evaluated by a Final test at the end of Alice’s session for analyzing the
effectiveness of this new approach as well as discovering the motivation level of students
toward programming course in different group
Trang 131.4 An Overview of the Rest of the Document
The rest of this paper is organized as follows The next Chapter composes
background knowledge about this research including the most basic information as well
as review of similar researches that have been conducted In chapter n 3, the reason why
Alice was selected as our working environment will be stated out The Next chapter 4
will illustrate the process of leaning OOP concepts with Alice of students at Hanoi
University Finally, some conclusions are given and future work is proposed in chapter 5
Trang 14Chapter 2 Background Knowledge
2.1 What is programming
“Computer programming (often shortened to programming or coding) is the
process of designing, writing, testing, debugging / troubleshooting, and maintaining the source code of computer programs.”[17]
One question had been raised since the beginning of learning
programming: “Why should I take a programming course?” The answer can be carried out that is learning to program is the door to discover a new way to think In addition, while taking part in a programming course, it is believed that the ability to
solve problem increases as a result, in other word, the development of problem-
solving skill
2.2 Object-oriented programming
2.2.1 Definition:
“Object-oriented Programming is a programming paradigm using "objects" —
data structures consisting of data fields and methods together with their interactions —
to design applications and computer programs”[18]
Trang 152.2.2 Basic concepts and features of object-oriented programming:
According to Weisfield [20], the most fundamental concepts and features of Object-
oriented programming can be defined as follow:
Class: A data type which contains all the information about objects, in other
words, the template for an object It defines characteristics of object such as
attributes, properties as well as the things it can do, for example methods,
features, etc
- Instance: is the actual object created at a run-time
- Method: is a set of statements for the purpose of solving a problem It
performs different type of operations on different type of data types
- Encapsulation: the process of hiding all the details of an object that do not
contribute to its essential characteristics
- Inheritance: Inheritance is the process by which a new class is created from
another class the new class is called a derived class- sub class; the original
class is called the base class-super class A derived class automatically has all
the properties and methods that the base class has, and it can have additional
methods and/or properties as well
- Polymorphism: similar objects can respond to the same message in different
ways
2.3 Teaching strategy for learning computer programming
The ACM Computing Curricula 2001 (CC 2001) report [8] stated out 3
implementation strategies for achieving a programming- first approach in teaching
computer science:
Trang 16- Imperative-first
Functional-first
Object-first
Among them three strategies, it was stated out that objects-first seemed to be the
most attractive one due to the utilizing of first two strategies for quite sometimes [8] By applying object-first strategy, student will have to work with the principles of object- oriented programming from their very beginning with the notions of objects and inheritance
However, as the authors of CC2001’s point of view [8], Object- first strategy makes it more difficult for both teaching and learning introductory programming Why did it happen? As can be seen, the traditional way of teaching and learning to program is
to start with the most basic syntax of programming (“Hello World” for example) and then
step by step advance to higher level By doing this, students have more time to learn and build their background knowledge On the other hand, the idea of object-first strategy is
to have student work immediately with object, their encapsulation (public and private data, etc) and methods (modifiers, helpers, etc) Meanwhile, students still have to master the other concepts of programming such as variables, values, syntax, etc This bring a lot
of challenge for both instructors as well as student in achieving their goal in learning how
to program
Trang 172.4 Graphical Tools in teaching programming
In order to give an answer to the problem of visualization in teaching and learning
object-oriented programming, since the late of 1980s, there have been a lot of graphical
tools which were developed in order to solve the problem about visualization[{10] in
programming and some of them did achieve the great success However, some did not
And among the most successful one, these 5 tools can be considered as the most
effective: BlueJ, Java Power Tools, Karel J Robot, Graphic Libraries and Alice
BlueJ [7] provides an integrated environment in which the user generally
starts with a previously defined set of classes The project structure is
presented graphically in UML-like fashion Objects can be created and be
linked to method to illustrate behavior
- Java [8] Power Tools provides a comprehensive graphic user interface with
several classes which will be used in student’s work Student will experience
the behavior of classes by interacting with the graphic user interface
- Karel J.Robot [1] helps student learn about objects through a micro world
with a robot (are added to a 2D grid) Methods in Karel J.Robot may be
invoked on the robots to move and turn them
- Graphics libraries: used by Bruce et al and Roberts [3] There is some sort of
canvas onto which objects such as 2D shapes are created These objects have
their own methods invoked and react according to those methods
- Alice [2]: a learner-centered environment that facilitates programming by
allowing direct manipulation of objects through a limited set of simple
Trang 18commands It allow user to interact directly with 3D objects in 3D world to
create a program animated movie through drag and drop interface
Each of these graphical teaching tools has its own strong points as well as weak
points, so it is needed to compare them based on a set of rules and standard in order to
carry out the most appropriate ones for our approach And it can be listed, respectively:
- Level of dependence on GUI: From the point of view in using Java Power
Tools, graphic user interface is made use heavily The same situation happens
with using graphics libraries It is stated that building GUI is very time
intensive and having an effective GUI requires a wider range of skills than
those software implementation On the other hand, with using Alice the use of
graphical factor is just optional and is done by using several primitives
- Modifying existing code: BlueJ and Java Power Tools rely too much on
stating with programs which contain previously written code As the idea of
the authors of those 2 software tools, it is better for novices to start with a
fully, well-formed projects and to modify them However, using Alice
approach generally can help students start to build their world from their first
brick in order to strengthen the bond between them and their program as well
as the background knowledge of them about what they will do with the program
- Complexity of syntax: by using graphics libraries, it is the greatest obstacle
student must face in programming Even with the existence of libraries,
11
Trang 19students still have to write Java/C++ program from scratch, mastering a non-
trivial amount of syntax as well as the understanding of graphics libraries
With Karel J.Robot, it is required that students have to have quite an amount
of Java programming skill before starting to create a program In a lower
level, The BlueJ and Java Power Tools only require student to make changes
in code but it is still necessary to know how to write, edit and even correct
Java code All those things can lead to errors in the code provided to students
because they are just simply do not know how and where to start the code
which doesn’t belong to them and in the worst scenario, the error may become
more serious Such situation rarely happens with using Alice because of the
drag and drop way of programming as well as the “everyday life” syntax; it
will be much easier for novices to complete a program However, the negative
side of this is that programmer cannot improve their skill much in comparison
to 4 other software tools
Ability to have further development in programming: As mentioned above
about the level of programming skill dependence, the ability to develop and
train to achieve higher result of skill of the other 4 software tools is absolutely
higher due to interaction with code and errors
Trang 20In 2003, Cooper, Dann and Pausch [16] did process a similar research about the
effectiveness in applying variety of graphical teaching tools into teaching with object-
first strategy and they stated out that Alice had surpassed BlueJ, JPT and Karel.J Robot in
introducing the concepts of object-oriented programming
To conclude, each tool has its own benefit as well as negative side so it is needed
to apply appropriate approach into suitable situation As for novice programmer and
people who doesn’t have much knowledge about computer, Alice may be their best
choice for them to begin with objects-first strategy
13
Figure 1 Overall result of evaluating graphical teaching tools
Trang 212.5 Alice- A basic understanding
2.5.1 Introduction of Alice
Developing by Carnegie Melon University, Alice is a “an innovative 3D
programming environment that makes it easier to create an animation for telling a story,
playing an interactive game, or a video to share on the web”[2] Moreover, it can be used
as a teaching tool in helping student to have the most fundamental knowledge about
objects-oriented programming through creating 3D-objects such as people, trees, etc to
manipulate the virtual world
By using an interactive interface, students only need to drag and drop graphic tiles
to create their own program in contrast to learning huge library of syntax as well as
programming statement which are required in other programming language such as CH,
C# and Java The most significant feature of Alice is that it allow students to see how
their code run immediately and thus, improve their understanding about the relationship
between their code and the objects in the virtual world
To make it clearer, it’s a good idea to start with one of the most famous programs
in any programming language: the “Hello World” Program The requirement of this
program is that the Bunny object will say “Hello World” when the program starts Firstly,
it is needed to start a new world with a template Click onto the ADD OBJECT button,
try the animal folder, Bunny Class an add instance into the World Then, a Bunny will
Trang 22appear in the center window The next step, the bunny will say “Hello World” and in
order to do it, say method from method tab of the object bunny must be moved like the
Figure 2: Hello World Program
Lastly, Click the Play Button and the Bunny will say “Hello World”
2.5.2 Alice main features
It is believed that graphical user interface is one of the most important advantages
of Alice in comparison with teaching and learning in traditional method The interface of
this program is divided into 5 different areas with their own functions It can be listed as
follow:
15
Trang 23World window: illustrate the world which is being built All the objects and
their graphical properties such as size, color as well as their location in the
virtual world shall be presented here
Object tree: contains the entire object in the world which is being built The
function of this area is to give an overview of all the objects in the program as
well as managing them
Detail area: describe the information about the world or object, what they can
do Each object in Alice has its own properties and actions
Editor area: allow user to make objects in the world do new things such as
Event area: allow user to tell Alice when to make objects do certain things, in
other words, to create the flow of the story
Trang 24)etAIlS 483
ess eh mee Np ew CN? =
et Meets pear Comma cet "
Figure 3: Alice Interface
After walking through the graphical interface, it is needed of having a deeper understanding about Alice 3D virtual world and the relationship between Alice and the knowledge it provides about the object-oriented programming concepts Firstly, the world
window will help students in having a clear visualization about their program, objects and
classes Furthermore, through this World window, students can receive feedback
immediately from the program such as mistakes, bugs or problem with algorithm The second working area is the Object tree, it provide an overview about all the objects in the World window which means the entire object in the program From this area, students can design the graphical factor for the program as well as manage the existence of any
related objects Then, it comes to the Details area which can be considered the most
17
Trang 25important in introducing the concepts of Encapsulation It has 3 tabs containing all the
information about the selected object from its properties to methods and functions For
the main aim of introducing encapsulation, any object in Alice world has 2 kinds of
methods: Primitive-methods which are the built-in methods, including with Alice from the beginning, cannot be seen or edited by user and the user-defined methods which were
created by user, possible for modifying and detail viewing Next are the Editor Area and
Event Area These 2 areas play the main role in programming with Alice by allowing
user to make objects in the world do certain things as well as creating the flow for the
program Last but not least, the object Gallery in Alice is really well-organized; it
provides a clear view about class and instance and thus,-the inheritance concept as well
By showing all the inherited properties and methods of the sub classes or newly-created
classes from the super class, another piece of the object-oriented puzzle game was solved
Unfortunately, all those Alice features did not support the concepts of
Polymorphism In Alice, if you try to define a new method with the same name as an
existing method in the same class hierarchy, the name that you type in tums red and the
OK button becomes disabled This prevents you from defining two methods in the same
class hierarchy having the same name That make Alice cannot become a well-formed
object-oriented programming environment yet but for introductory to the most
fundamental features and concepts of object-oriented programming, Alice may exceed
the expectation in many views
Trang 262.6 Review of other finding in the past
Korhonen and Malmi [11] describe a visualization system that presents novice
programmers with graphical representations of algorithms which requires them to
manipulate these representations in order to simulate the algorithm [10] Teaching
fundamental concepts in a first programming course using graphics and visualization in
an OO „ will provide sufficient programming experience, with stronger
meaningful context for helping students to visualized object oriented concepts
Dann, Cooper and Pausch[9] described an approach for introducing recursion by
using Alice, as part of a course in Ithaca College in New York for programmers (with no
previous programming experience) They stated out that using Alice, offers computer
science instructors an approach to introducing fundamental concepts to novice
programmers, that allows them to know their mistake as soon as possible and correct
them
Rodger [15] developed a course for non-computer science majors, at Duke
University in North Carolina to teach students computer science concepts and
programming In that course students were given five visualization tools: HTML,
JAWAA, StarLogo, Alice, and Karel++ Based on the evaluation survey that was given in
the course, Rodger concluded that Alice was clearly the favorite and the easiest to use
Cooper, Dann and Pausch [16] presented Alice for an objects-first strategy They
concluded that the Alice’s tool was quite useful in teaching objects-first strategy to help
19
Trang 27students master the complexities of object oriented programming, it provided stronger
object visualization, and a flexible meaningful context for helping students to see object
oriented concepts
Another similar work was conducted during spring 2006, 89 students in 6 sections
of an introductory non-major computing survey course participated in Alice
programming module [3] All of them were undergraduates of regional campuses of a
medium-sized, mid-western university
This Alice-module spanned 5 class sessions, approximated 6 hour and 15 minutes
- Session 1: Gave an over view about Alice programming software including a
guided tutorial that help students in gaining fundamental knowledge about
Alice
- Session 2: Students create their own world from scratch Basic instructions
about creating world, adding objects as well as using methods were provided
- Session 3: Introduced algorithm into module Students were required to solve
a problem by creating flow chart
- Session 4 & 5: Students created their own world by Alice and presented to the
rest of class
After taking 2, 5 week Alice module, students were asked about their experience of using
Alice, the relationship between Alice and algorithm and the question about teamwork in
type of programming:
Trang 28“Describe what you liked about Alice and what you did not like So you feel like
you now understand some of the basics of computer programming? What
surprised you about computer programming? What did you learn that you
expected? ”
“How are Algorithms related to what you did in Alice? What is the relationship
between the symbols in a flowchart and the stories that you created in your labs?
Can Algorithms help you create better Alice stories? Explain.”
“Describe the advantages and disadvantages of programming in pairs? What did
you like? What did you dislike? Did programming in pairs help or hurt your
learning? Explain “
The overall result shows that after 2.5 week module in computer programming
with Alice, firstly, most of students (96 %) enjoy programming in this environment and
have a positive attitude toward this method As a result, 4% commented that they dislike
Alice and the reason is the limitation of this program Secondly, they can see clearly the
relationship between their Alice stories and algorithms Lastly, 95% of the student
mentioned that they had learned a lot from their partner to be more creative than working
all by themselves From the proportions above, it can be seen clearly that with the
assistance of Alice 3d learner environment, the motivation of students toward computer
science increase greatly Not only that, they can gain a lot more knowledge about object-
21
Trang 29oriented method in programming through working with classes and objects In addition,
team programming, in this case, pair-programming brings a lot of benefits for students
With a really good result like that, it is needed to have a deeper understanding
about this software program, its features, how to work with it as well as pros and cons
while using Alice in teaching and learning computer program
Trang 30Chapter 3 Sampling Design
From the experience of using Alice for teaching introductory computer science, it
did achieve great result but there were still some extraneous variables such as the quality
of students and their experience, so, I apply a new method of sampling:
Firstly, I did a research through the final result in particular courses of students to
get to know their programming skill and level of understanding about computer science
concepts On the other hand, some discussions with course teachers in these subjects help
me a lot in getting the information about students The entire student is in the 1" year of
Faculty of Information Technology so their knowledge in computer field is still limited
Noticed that there were differences in students’ knowledge about computer programming as well as their abilities to learn, I collected some related students’ result in
their nearest semester (see Appendix 1) in order to classify them into their appropriate
level:
Lv A: Students with GPA >= 7: 41/66 means 62, 1%
Lv B: Students with GPA <7 : 25/66 means 37, 9%
Average Group = (Average LvA + Average LvB)/ 2
By doing this, the extraneous variable of differences in programming experience
level of understanding can be eliminated
23
Trang 31Then, after introducing about the Interface and the most fundamental function of
Alice which will be described in the next chapter, a Pre-test about was carried out for
both 2 groups: Group 1(1c09 + 2c09) and Group 2(3c09 + 4c09)
Figure 4: Result of Alice-Pre Test
Table 1: Overall result of Alice Pre-Test
Trang 32Table 2: Alice Pre-Test Group average score
From the list of result, it can be concluded that Group 2 has better skill with
Graphical tools in comparison with the other one So it was decided that the Treatment
Group was Group 2 and the Control Group was Group]
25
Trang 33Chapter 4 Methodology
4.1 Procedure:
The Control group took the course in traditional method and the Treatment Group
worked with Alice but the amount of information provided in the lecture time are the
same
The Alice module was divided into 3 sessions (7 hours approximately), each
session took place in a week with the treatment group who was chosen to learn object-
oriented programming concepts with Alice:
- First session: I provided student the most fundamental knowledge about Alice
learner environment and the programming terminology (See Appendix 5)
which will be used in the following sessions (included for the Alice pre-test)
After the first session, it can be seen clearly that the student found it very
interesting working with Alice even that was their first time
- Second session: I used Alice to introduce the basic concepts of Object-
oriented programming (Encapsulation and Inheritance) In this session,
students were asked to build a model of a world based on the concepts of
encapsulation and inheritance through The Family Bunny example(Appendix
6)
Trang 34&\ Alice World
Figure 5: The Bunny Family World
- Third session: In this session, students were asked to solved several computer
problems and make presentation about their object-oriented concepts’
understanding in their products.(Appendix 7)
After taking 3 session module, all the participants of both Control Group and
Treatment Group took a multiple choices test [21] The question in the test focuses on the
basic concepts of object-oriented programming and with the students who learn with the
assistance of Alice, then, they had to do an online survey [22] including a small feedback
about how they feel after working with Alice
27
Trang 354.2 Result:
The mean results of Final test of the Treatment Group were higher than the
Control Group as the following table:
Table 3: Final Group result
Before running the T-test, it is needed to conduct a statistical test to determine
equality of variance and the test for equality of variances is an F-test 2 sample for
variances with the alpha value in these tests assigned to 0.05 The result showed that in
the Alice Pre-test, the P Value of The Alice Pre-Test was 0.289 > 0.05 so the variances
are assumed to be equal, then, to analyze the significant level of Alice Pre-Test, proceed
with the t-test that assumes equal variances On the other hand, the P-value of Final Test
< 0.05 so the variances are assumed to not be equal, so, to analyze the significant value of
the Final Test, it is required to process with the t-test that assumes non-equal variances