Uploaded by tollwax

A quantitative study

advertisement
A Constructivist Framework for Integrating the Java
Paradigm into the Undergraduate Curriculum
Said Hadjerrouit
Department of Mathematics
Agder College
4604 Kristiansand, Norway
(+47)38 141793
Said.Hadjerrouit@
To produce a new generation of studentsskilled in Java, all
these courses are important, but in themselves they are
insufficient if they are not taught from the perspective of
developing a strong Java foundation. Java is a new
technology designed to promote a new way of thinking
about computing. What is occurring is a paradigm shift, a
radical change away from conventional design and
programming methodsbasedon stand-aloneapplications to
a networked, concurrent, interactive and object-oriented
computing paradigm, see [6]. To be completely adopted,
the paradigm should be introduced at an early point and
strengthened throughout the whole undergraduate
curriculum. A single course is not enough. A sequenceof
interdependentcoursesis needed.Given this background, it
is useful to examine the pedagogical issues of paradigm
shift. Following this examination, we believe that a
pedagogical framework motivated by principles found in
constructivism can make important contributions to the
learning of the Java paradigm. Constructivism is an
excellent point of reference,becauseit is widely considered
to be a very important contribution to the learning process
PI.
1. ABSTRACT
The educational use of Java at the
introductory level is still in its infancy and
effective teaching strategies are only beginning
to emerge. Java is a new technology designed
to promote a new computing paradigm. To
produce a new generation of students skilled
in Java, undergraduate computer science
should be taught from the perspective of
developing a strong Java foundation. This
paper describes a pedagogical framework
motivated by principles found in the
constructivist learning theory for integrating
the Java paradigm into the undergraduate
curriculum.
1.1 Keywords
Javaparadigm, constructivism, undergraduatecurriculum.
2. INTRODUCTION
For the past three semesters we have taught four
undergraduatecomputer science coursesusing Java. In the
fall semester of 1996 we began to teach object-oriented
programming. This was followed in the spring of 1997 by a
course in data structures and a programming laboratory
project. To teach the basic concepts of the WWW and
elementary Java, we designed an “Introduction to
Computing” course in the fall semesterof 1997. Finally, we
will develop two new courses based on Java, software
engineering and computer graphics.
3. CONSTRUCTIVIST
INTEGRATING
JAVA
PRINCIPLES
FOR
Constructivism representsthe most significant alternative to
me traditional view of education which considers learning
as the passive transmission of knowledge. From a
constructivist point of view, knowledge is constructed, not
transmitted.Learning is an active processin which learners
construct new concepts based upon their prior knowledge.
In order to be useful for problem solving, conceptsneed to
be structured and integrated. To get students actively
involved in problem solving, learning should focus around a
set of realistic, intrinsically motivating problems. With the
constructivist model, lectures are replaced by a set of
activities designed to encouragestudentsto solve problems
and to construct the concepts of the subject. The reader
interested in more details is referred to [1,3,4,5]. Our
approach is constructivist in nature, in that it takes into
accountstudents’ prior knowledge, Java concepts,including
Permission to make digital or hard copies of all or part of this work
for personal or classroom use is granted without fee provided that
copies are not made or distributed
for profit or commercial
advantage and that copies bear this notice and the full citation on
the first page. To copy otherwise, to republish, to post on servers
or to redistribute to lists, requires prior specific permission and/or a
fee.
ITiCSE ‘98 Dublin, Ireland
0 1998 ACM l-58113-000-7/98/0008...
hia.no
$5.00
105
the Java programming environment, as well as motivational
aspects,and learning activities.
difficult for the students to learn object-oriented design.
One difficulty with these students was a tendency to use
methods as procedures, or to expand methods into large
procedures, while ignoring any adequate use of methods
according to the object-oriented approach. In addition,
students regarded the role of Java concepts in guiding
problem solving as unnecessaryand did not integrate them
into their programming practices. These observations are
compatible with the constructivist learning theory which
asserts that students construct new concepts based upon
their prior knowledge. To avoid the difficulty of
interference with prior experience, a constructivist
methodology for learning Java should identify students’
prior knowledge, because many of the pre-existing
conceptionsare persistentthroughout the whole curriculum.
3.1 Java Concepts
It is critical to understand that Java is not only a
programming language, but that it is also an emerging
paradigm with a set of fundamental concepts that can be
used 10 explore a wide range of problems that was
previously beyond the reach of computing:
.
The concept of object for designing software as a set
of interacting objects.
.
The concept of graphical user interface for modelling
interactions with software systems.
.
The concept of concurrency for specifying parallel
processesthat handle different tasks.
.
The concept of networking for creating distributed
systemswithin the Internet.
.
The concept of multimedia for integrating text,
colours, graphics, sounds,and images.
By viewing Java as a computing paradigm organisedaround
a set of fundamental concepts, constructivist methods for
teaching and learning Java concepts become available for
use. From a constructivist point of view, conceptscannot, in
principle,
be learned simply by decontextualised
definitions independently of problem situations. To be fully
understood, they must be constructed through inquiry and
hands-on activities. These activities contain problem
situations that motivate the students to construct the
conceptsof the Java paradigm.
3.2 Java Programming
Environment
Java programs run in a rich computing environment that
includes the Java Development Kit (JDK), the World Wide
Web, visual application builder tools, and many other
features.This environment has powerful tools that provide
support for problem solving, but the class library of Java is
very large so that many students get confused by the
number of Java classes and methods, see [‘2]. Thus, trying to
master Java tools while learning Java concepts can easily
overwhelm students. However, from a constructivist point
of view, the concern is not so much masteringthe tools, but
rather using the tools to solve problems. This includes the
ability to find the relevant tools, and to be able to use them
to solve problems. In many ways, tools are similar to
concepts: They can only be fully understood through
activity and problem solving.
3.4 Students’ Motivation
The goal of constructivism is to engagestudentsin effective
learning. Activities that are more likely to result in effective
learning are those that are perceived as interesting,
important, and profitable. Accordingly, the learning of Java
conceptsshould focus around a set of realistic, intrinsically
interesting problems that motivate students to solve them.
In addition to interesting content, there are plausible
reasonsfor the studentsto learn Java. Firstly, Java opensup
new possibilities on the Web. Secondly, it is suitable for job
assignments.Moreover, it provides a strong foundation for
further elaboration in subsequentcourses.Finally, Java can
be used to explore a wide range of problems that was
previously beyond the reach of computer science. Clearly,
teachers should not undereslimate the importance of
motivational aspects since the use of a technology that
students enjoy furthers the learning process and increases
the students’ acceptanceof the Javaparadigm.
3.5 Learning Activities
Our problem solving approachis constructivist in nature, in
that it is organised around a set of activities. Each activity
includes a problem situation and open-endedquestions that
probe students’ understanding and encourage them to
construct the conceptsand techniquesof the Java paradigm.
The activities are designed with the following goals:
.
3.3 Prior Knowledge
Understanding that prior knowledge can be detrimental to
current learning is quite useful to know. When our students
were introduced to Java, see [2], we observedLhatstudents’
prior experience in procedural languages was, to some
extent, a significant epistemological obstacle that made it
Identify students’ preconceptions.
We know that
preconceptions, e.g. procedural programming,
interfere with the learning of Java concepts.This prior
programming experience is, to some extent, a
significant barrier that makesit difficult to understand
the new concepts [2]. Our experience suggeststhat
the best way to overcome these preconceptions is for
students to confront them. Thus, learning activities
should involve problem situations that lead studentsto
recognise that their approach is manifestly inadequate.
Then, we introduce Java concepts, e.g. objectoriented concepts, as a way to modify students’ prior
knowledge.
106
l
discuss the role of Java concepts in problem solving,
many students often focus on programming issues
rather than on the conceptual aspects.They perceive
programming as being primary and the conceptual
aspectsas being abstractions.However, they fail when
asked questions that probe for understanding of the
concepts underlying the problems’ solutions [2].
Clearly, to understand Java concepts properly,
problem solving should begin at the conceptual level,
not at the code level where programming becomesthe
main issue. Furthermore, substantial attention should
be devoted to the meta-level process required to
develop solutions. This process is inextricably a
product of higher-order reasoning, such as exploring
the problem, designing a conceptual model,
developing an algorithmic solution, evaluating and
assessingthe outcome. Higher-order thinking skills
cannot, in principle, be learned as abstract concepts
independently of problem solving.
.
.
.
problem solving. There are many ways of integrating
Java knowledge. Firstly, by constantly using Java
concepts in new contexts in order to increase the
number of connections between the concepts and
problem situations. Secondly, by looking for
connectionsbetween the concepts themselvesin order
to develop a structured view of Java concepts.Finally,
by learning to relate new concepts to previous ones to
enablea gradual construction of Java knowledge.
Emphasise the role of concepts and higher-order
reasoning skills in problem solving.
Although we
Provide adequate and appropriate tools. Successful
Java programming dependsupon the use of Java tools.
However, learning how to use the tools involves more
than a set of explicit rules. The conditions for using
the tools arise directly out of the context of the
activities. The concern is not so much mastering the
tools, but rather learning to use the tools to solve
problems. Thus, it is more important that studentsgain
somepractical familiarity with the tools which would
allow them to focus upon more complex issues of
problem solving. The best way to do this is for
students to use visual application builder tools right
from the start, such as Java Workshop 2.0. Using
visual tools is indeed a very exciting, but not difficult
experience for most students.
Focus on realistic, intrinsically
motivating problems.
To construct Java concepts, Java tools in themselves
are not sufficient. To be profitable and effective, tools
should be integrated into the larger task of problem
solving. It is the practical problem that should
motivate students to learn the tools and to construct
the Java concepts, as opposed to presenting the
conceptsand the tools with decontextualisedexamples
and definitions independently of problem solving.
Thus, a problem solving approach motivated by
constructivism should begin with intellectually
stimulating, realistic, and intrinsically motivating
problems.
Promote knowledge integration. Integrated knowledge
is extremely useful for conceptual understanding and
4. CONCLUSION
Java is increasingly becoming a paradigm for learning
concurrency, networking, interactive computing and objectoriented design. To produce a new generation of students
skilled in the paradigm, Java should be introduced at an
early stage and strengthened throughout the whole
undergraduate curriculum. To do this successfully, a
pedagogical approach motivated by principles found in the
constructivist learning theory is recommended. The
approach should emphasisethe role of Java concepts, the
Java programming environment, motivational aspects,
students’ prior knowledge, and learning activities. Of late,
on the basis of the ideas developed in this paper, we have
been rethinking our strategy for integrating the Java
paradigm into the undergraduate computer science
curriculum.
5. REFERENCES
[l] Duffy,T. M., Lowyck, J. and Jonassen, D.H. (eds.).
Designing Environments for Constructive Learning,
Springer-Verlag, Berlin 1993.
[2] Hadjerrouit, S. Teaching Java as First Programming
Language: A Critical Evaluation. Proceedings of the
Norwegian Annual Conference on Computer Science,
Tapir, Trondheim 1997, 183-194.
[3] Kafai, Y. and Resnick, M. (eds.). Constructionism in
Practice: Designing, Thinking, and Learning in a
Digital World, Lawrence Erlbaum Associates,
Publishers,New Jersey 1996.
[4] Phye, G. D. (ed.). Handbook of Academic Learning:
Construction of Knowledge, Academic Press,London
1997.
[5] Steffe, L.P. and Gale, J. (eds.). Constructivism in
Education, Lawrence Erlbaum Associates, Publishers,
New Jersey 1995.
[6] Stein, L.A. Beyond Objects, Educator’s Symposium.
Conferenceon Object-Oriented
Programming
Systems, Languages, and Applications, Atlanta
Georgia, October 1997.
107
Download