A Linked List Prototype for tbe Visusl Representation of

advertisement
3. JVALL OveNiewad
A Linked List Prototype for tbe Visusl Representationof
Abstract Data Typ€s
HetberlL. Derchem,Hope Colkse
Ryat McF all, Hope CoIIeI e
Ngozi Uti, Noft hern KentuckJUniversiv
Linked
Lisrconfolb Abstract
7 Educarioml
Uses
of Visualizationis an importanttool for leamingabstractdatatypes.
one approach
ro lhis is to expandrhectrssoia dararlpe to ;itude
l]+i-t-,_,\isualizarion
of
all operarions.
rhusauromarically
seneratins
;'ji:i:i:1i"""",
visualizations
in progransthatusethedatatype.A prototypeof this
Leuhins
?.3Debugsiis
studeot
approach
appliedto theJavaLinkedlist classis described
in this
paper.Alsode.cribedareseneralpuaosecontrollersior rhisprocers.
-L c",iji1c,1if;,d
in,ructjonslbr usergenera(ion
of morespec,
alzedcontrollers,
and
i;i;;;;;i-^
9. Ackoowledgnenrswaysthis tool canbe usedin an educationalsetting.
1. Introduction
Printe!friendlyvdsion The useof visualizationto enhancelearningof datastfltcturesand
algorithmsin computerscienc€hasbeenpopuld for manyyears.
Because
of thenumbe(of continuingprojects,a progression
of
packages
prominentamongrhemareBALSA [l],
havedeveloped,
Tango[2], GAICS [3], andJAWAA [4].In additionro theseprojects,
manyoders havedevelopedsoftwareto aid learningthrough
visualization
andanimationof datasructurcsandalgorithms.
Early
work produced
scriptedalgorithmanimations.
Latertheseevolvedto
provideusercontrol.Mostrec€ntactivityhasbeenhostedon the
web.
This paperdescribesa projectto developa visualizationof the
algorithmsfor implementingmethodsof the JavaZinkedList clsiss.
This visualization
will serveasa prototypefor visualization
of any
JavaCollectionClass.TheJavaCollectionclasses
consistofa
hierarchyof interfacesandclassesrepresentingAbs$acl Data Types
(ADT', originatingwith theJavaCollectioninte ace.Theseclasses
eachconsistof an API containingthe methodsof the class,but are
relatively independentof the implementations.The prolotype,called
JVALL (JavaVisual AutomaredLinked List), wasdevelopedasan
extensionof the Javaatr*ddl,irt class.The approachusedhereis
similar to that usedby Jeliot [5,6], wherea user-writtenJavaprogram
is submittedto the Jeliot server.which Droducesan animationof
operationsthat the submittedcodeperformson a daiatlpe. Jeliot
providesaninations for all Javaprimitive typ€s,arrays,stacks,and
queues.The JDSL Visualizer [7] also usesthis approachby poviding
the applicationprogrammerinterface(API) for abstractdatatypes
andautomaticallygeneratingvisualizations.The APISof JDSL,
however,do not confom to JavaCollertion ClassAPls.
Many resealchershaveconductedstudiesof the effectivenessof
visualizationsfor the leaming of algoritlns anddatastructures.
Thesestudieshaveproducedmixed resultsandhaveled someto
questionthe validity of visualizationas an aid to leaming in this
context.A recentmeta-studyI8l exaninesmanyearlier studiesand
identifies factorsthat the earlier studieshaveemDiricallvaereedlead
to successfulvisualizations.We haveutilized theseresultsin the
designof JVALL.
The following are four featuresthat we believeare key to successful
visualizationsandthat we haveattemptedto provide in this
protot)?el
l. Easeof Use
In rhemelaslud) of algonrllmvisualization
effectiveness,it is statedthat amongthe reasons
visualizaaionsoftwarehasnot beenusedby faculty
beyondits developersare that they do not havetime to
leam it, that they feel it will take time fron otherclass
activities,andthat they believ€it will requiretoo much
time andeffort to createvisualizations[8]. It was thus a
primary objectivehereto mate the useof visualizations
as easyaspossiblefor both studentand instructor,
avoiding the needto leam new syntaxor make
extensive
changes
in pedagogy.
2. Flexibility
Justas studentshavea variety of waysof leaming,so
too do instucrors havea variety of prefenedteaching
methods.
Onedrawbackof manyinsfuctionaltoolsis
lhat they arenot widely usedbecausethey do not match
the prefenedpedagogicalapproachof many
inshuctors.
JVALL wasdesigned
to provideflexibility
in its use,not restrictingthe learneror the instructorin
the waysi! canbe used,The goal is to provide a tool
that can easilyfit inlo any learningframeworkrather
thana packagethat i$ self-containedfor a pre-specified
3. Plaform Independence
In orderto supporta wideflexibilityin th€way a
visualization
is used,it mustbe supported
in i variety
provided
of environmenls.The platform indep€ndence
by Javaminimizestheconcemsfor availabilityofan
appropriateplatform.
4. Interactive
The meta-studyconcludesthat "the most successful
educationalusesof algorithmvisualizationtechnology
are thosein which the technologyis usedasa vehicle
for actively engagingstudentsin the processof learning
algorithms[8]." lt is thereforeimportantthat JVAIL
suppo( studentinteraction,both with the algorithn and
with the visualizationitselt Studentinteractionwith
the exerution of the algorithmhasbeennotedas an
impo{ant factor in successfulvisualization,not only by
the meta-study,but alsoby oth€rst9l Il0l. Effective
tools for visualizationcontrol include selectionof
color, useFcontrolledspeed ll, andthe ability to
reverse
thealgorithm[12].
a
2. Three Aspectsof Abstract Data Typ€s
Thereare threeaspectsof ADTSthat areimportantfor studentsto
leam.Textbooksandinstuctors havediffering views on the
emphasisandorderfor presentingtheseaspects,but thereis
consensusthat it is importantfor studentsto gain an undentandingof
all three.Thetust is the conceptualview of the ADT. In the
Object-Orientedframework,this is reprcsentedby the API definition
of the methods,including the way eachmethodis called, the
specificationof the parametersof eachcall, andthe specificationof
the rcsult of a call, including retum valuesandits impact on the ADT
instanceitself.
A secondimportantaspectof ADTSis their application.This requires
an understandingof the waysan ADT is used,in what situationsits
useis advisable,andhow it is usedeffectively in thosesituations.
The final aspectis the implementation.This includesthe data
structuresusedto representthe ADT, the algorithmsusedto
implementits methods,andtechniquesfor carefulspaceandtime
analysisof thosealgorithms.
JVALL hasbeendevelopedto supportall threeof theseaspectsof
learningan ADT, in particular,the list ADT asrepresentedby the
Javari*?dlirt class.The JVALL classhasan API that is identical
to thatof lhe la\a Li kedListclass,thus supportingthe learningof
thecodceptual
viewrepresented
by thisJavacollectiodclass,Since
JVALL can be usedin any contextwherethe rrnledlirt classis used,
it providesan efficient way to understandapplicationsof the ADT
whethertheapplication
is student-written
throughvisualization,
or
providedby theinstructor.
FinallyJVALL providd viewsofmultiple
implementations
ofthe ADT, givingthestudenta meansto ca.efully
examinethe implementationvisually. In pafticuld, whenusedwith a
source-leveldebugger,JVAIL canenhancethe student'sability to
performtime andspaceanalysis,
a
3. JVALL Overview and Objectives
Bergin et al. [13] appliedthe model-view-controllerftamework asa
designparadigmfor visualizations.
In Figurel, we showan overview
of JVALL basedon this framework.
,
Figure 1. Model-view-controller
View
Visualizationof
implemcntation
Typical to the MVC framework,JVALL supportsmultiple
controllersandmultiple views tkough a singlemodel,the linked list
ADT. A conEollermaybe anyclassthatusesthelinkedlist ADT. It
maybe r speciallydesigned
interactive
instnctionalmodule,a class
implementinganotherADT that usesthe linked list suchas a stack,
or any other application,complexor simple,that usesone or more
linked lisis. The contoller may interactwith a user,suchas the
studentor the ins$uctor, it may run underfile control, or it may be an
applicationwith no input at all.
Therearc also multiple views that representmultiple implementations
of the ADT, In the cunent system,only two implementationviews
arc providedfor the linked lisi ADT, the linear,singly-linkedand the
circuld, singlylinkedimplementations.
Othe6will be providedin
thefuture.Theuseralsointeracbwith eachview,conrollingthe
visualizaaion's
colorschene,speed,
anddir€ction(throughan
undo/redofacility).
The JVALL classitself is tbe Lint?drrrt modelthat implementsthe
underlyingJavacollectionclassandinterfaceswith the multiple
controllers
andviews,
The objectiveof this project is to producea linlcd lisi visualization
tool that providesa prototypefor fifther developmentandhasthe
lollowingcapabilitiesl
a hovides visualizationof multiple ADT implem€ntations.
As statedabove,two implementationsareprovidedandothers
canbe easilyadded.
a Showslinked list operationswith user-con[oll€d animalions.
Operationsarc animatedat a speedthat is consolled by ihe
userandallows detailedobse ation ofthe constructionand
modification of nodes.In addition,the userdetermineswhich
implementationis viewed.
a Providesvisualizationfor any Javapmgram.hat usesthe
LinkedList class.
The JVALL classis an €xtensionof the Javatrin*ddLirt class.
Therefore,any pro$am that usesthis Javaclassis very easily
modified to enablevisualizationof its linked list operatlons.
a Supportsvisualizationof both Javaappletsand applications.
The tool is easily appliedin both of tie6e Java n-time
envircnmentsby a paftmeterpass€dwhenthe linked liit is
I
4. A Simplc Example
We intmduc€the firl capabilitiesof IVALL by plovidhg a simple
exampleof a Jsvaapplicationthat constructsa linked list and
performsa few very simpleoperations,The Javasouce codeto this
exampleis found in Figure 2.
X'tgure2. A simple
examPleProSram
usingJVAIL
irpolt jva11.Jva11,
inE)olEJva11.,tva11!13!ener,
irport
Java.utll.!16tItelator;
pubLlc cLa33 JvallTeBt tlplftntg,rvalltrlEt€n€!
{
publi.c Btatlc voiil Mtn(etllnsll
arsB) r
= nes Jvall (ltvall . STANDAIONE) ;
,lvalL r!/Ll8t
Jvalll€Bt
!!r'le€t = new JvallTe8t0
'
(4aT65t ) ,
hyl,13t . adclanlGtlonllst.n.r
nyr.13r. adi|!i!8r ('on€') I
();
Fltrest.w.itFodv.Il
ny',l3r. addLast ('Thlee' ) ,
();
!u/Te8t. s.ltFolJvall
iyLi6r. add(1, 'ewo ' ) I
()i
!l!.t€Bt . u.i lFo!,tv.U
nyLl€t. a6c (fryLlat, lnd
();
$!are3t , wal tFolJvall
- !t/L13t.113tIt€lato!(0)
Llatlteracor
nylteraco!
whlt€ (rvl t€lator. ha8Next ( ) ) {
next o ) ,
system. out , pllntln (nyltsrato!,
l
l
public ,tvallfest{)
t
th16,don€; tfl€,
= "ltnini tla1iz6d"
thi5.ElaluB
)
;
;
pubtlc 6y4chlonized void watlFolwatt(
whil€ (rthiE.don€) {
) calch (Exc€puon €) {))
)
pub11c synchlonlzed vold slmtlonEvdt
i! (went == JVeU.END!D)(
thl6.dobe = tnei
(lnt w€nt)
)
e15e it (eveDt == wall,RUNMrIG)
th16,dode = fal6e;
l
public void sratuslDdaEe(stling
thi5.Etalus = s!!s!a!us,
)
privale
)
boolea
done=tsne;
EElstatus)
{
{
The Jvall class(which implementsthe JVALL ADT) hasthe sameAPI as
rhe la\a LinkedList cl^ssexceptfor the inclusionof a constructorthat
takesa singleparameterthat specifieswhetherthe JVALL will run as a
Javaapplicationor an applet. Also, thea(UAninutionListenermEI}]'od
ei bles a J (,allListenerta be attachedto the JVALL linked list.
JvaLlListefteris an ktefiace with two nethods:
public void AnimationEvents ( int evenE);
pub-ic void s-a-usLpdaLe(String strsEalus) ;
JyallListenerVo.ridescommunicationfrom the view to the controller with
the modelservingasan intermediary.This allows the animaiionto
communicatewith the controllerwithout knowledgeof the detailsof the
controller's implementation-The two possibleeventparametersthat can
be sentto AnimationB/enrareJvall.ENDEDandJvall.RUNNING.These
two int constantsindicatethat the animationhasfinished or begun
runoing. Wheneverthe statusof an animationis chanEed,r,|,estatusupdate
methodis called andthe ,tlrlrg that appearsin the statustextfield of the
animationwill be the.rlr,tidtur parameter.In the caseof the programin
of statusupdate
is
Figure2, the instantiation
public void statusupdate ( String
this, status = strstatus;
slrst.atus)
{
J
This will setthe instanceviriable statusto the String that is retumedto
to theSl/ingthat
thisclassby theview.ThatSl/i,i8will conespond
appeusin the TodFieA labeled"Animation Status"in tbe animationview
In the examplein Figure2, JvallTert is alsoa JvallUrrener. I! setsits
the nningstateof theanimation
instance
variabledonewhenever
variable
changes.Italsokeepsthelateststatusof theanimationin instance
Tl.'e merhodwaitFo vaUwaits for a notification that a visualizationthat
is activehasbeencompleted.
public synchronized void waitForJvall
while ( !rhis.done) {
() {
wair o ;
]
This is calledfollowing every JVALL methodcall so that the programwill
not proceeduntil the animationprocessis completed,
Threenodesare addedto the JVALL linked list, one is changed,andthen
an iterator is cre ed that iteratesthroughthe list, printing eachnode.This
is accomplishedin the main Fogram tkough the calls
myrrisr. addFif st ('one,, ) ;
mr4rsts
u,ai rF.rrr':l
I i\
.
myr,isr. addlast ( "Three" ) ;
n\4asi
u,,i tsF^7.rvil
I /l
nylist.
add(1, "Two' ) ;
.
mylist. seE (rVList. indexof ( "T\ro" ), " TWO") ;
m/test . waitForifvall
{) ;
The inte$persedwartForJva[o calls rcquirc the programto wait for the
completionof the visualizationb€foreproce€drngto the next operation.
The outputFoduced by the programis
TWO
Three
This is plinted by the statomonts
]listlterator
mylteraEor = nryli9ts. listlterator
while (mylteratsor. hasNext ( ) ) {
Systen, out . println (llVIEerabor. next { ) ) ;
( 0),
Figures3, 4, 5, and6 showthe progressionof visualizationsof the list
alter eachop€ratron.Not vicwablc in thesefrguresarc the detailcd
animaiionof thc searchthrcughthe list atrdthe modifi@tion of 1ink6.For
example,during the ox.cution of the methodcall
mtd,isl, sel (mylist.
indet Of { "Erdo") , rrTWO"
);
o small arrow will tracethc scarchthroughtho linked lbt for tt|e nodc with
contents"Two" and,when it is found, will chiogc tho contcntsto "TwO."
Ftgure3, JVALL
visualization
after
fi$t add.
@ror,i,,
8,ro.",.-r
Figue 4. JVAIL
visualizationafter
secondadd.
E@r'u.i*
Flgure5. JVALL
visualization
aftei
thhdadd.
E@rol,i,,
Figure6. JVALL
visualization
after
change.
E@ror,i*
t
5. JVAI Featur€s
Figwes7, 8, and9 ilushatBsoEeof theirlDortantfoaturesof
JVALL.
Visurlization
ThocenterpotioDof thedisplayshowsthelinkedlist
andits op€rations
areanimated
tberc.Figure8
illu8tralesa snapsho!
of ananimared
additionof a node
in progress.
ADlmaliotrShtu6R€port
Thecuncntstatusof thcanimadon
is dicplayedin rhe
arcacircledin orangcin Figurc7.
Undo/R€doCdpabfity
Theundoandredobuttions,
circledin blackin Fi$no ?,
permittheuserto rcwhd andrcviewthevisualization
fieps.
Flle Lotrt atrdSar€
Thebuttonscircledin gicanin Figuo 7 arcus€dto
pcmit theusotto savethccud€ntvisuallinkadlist aad
to retrievea visuallinkedlist thatwassavad
previously.WhilethisfoatureF€sentlysavesandrcads
lhenodesa! a textfile, a firure improvcmen!
lo this
softwarcwill permitatryserializcd-objecE
to bc saved
androstor€d,
Color Selecdon
TIlc usercontrolsthccolorsof all comDongnts
of the
displaylhroughuseof thopolcl circlei in blucin
Figurc?.
SpeedCoDhol
Thespeedcont|olslidebarallowstheuslf to control
thcspe€dof thoaninationandis oircld i! rcdin
Figure7.
Muldple Impl€ne rtioD Vlews
Thissclectionk circlcdin yellowin Figure7. Thc
presentimplementarion
incluil€sonly two
implementadoru
for rhelinl(.d list, butfutur!
enharcemett6
will Fovide.dditionaloptioss.Figure9
Bhows
thecircularliDkedlirt viewof tholist sho\lnin
Figue 6.
Figur€ 7, Empty
JVALL Window
circled.
E@nor,i""
Figurc 8. Snapshot
during animationof
addmethod
execution,
n$! r!l|.d tcrrrrb|lr
rxsrt
E!@ru,i,"
Figure 9. Circular
LinkedList
Implementatiod
E@nou,i,"
a
6. G€rcral Intcractive Llnted Lisl Codroller
The distribution of th€ MLL packageincludesonecontroller
programthat is generaliz€d,int€ractive,andpermitsthe userto
perform lioked list operationsandwatchflrci resultstbmugha
gaphical userinlerface.The controller window appearsdirecdy
below the JVALL window as sho\*,nin Fisue 10.
Ftgure 10, IVALL
G€neralInteractive
Conholler.
E@rol,l*
Theusercantypeinto thevalurandpositiontextboxesof this
controllerwindowto imertnodesintothospccificdpositionof the
linkcdliEt.In stondalone
mode,a us€rhasthcoptionof openingtext
file, loadingit into thelinled list .nd continuingwith thenormal
linkcdlist opcrations
suchasinsert,delete,andrcplaca.Eachtimea
buttonb clickedwithintheconholler'swindow,WALL receivesa
rcquestftomthecontrolleranddisplaystheanim.tionaccordingly.
Whontheusorrcquost6
aninvalidoperation
suchasinsertingor
deletrngftom a positionthatdoesnotexist,JVALL will thow an
appropriate
exception,
Thecon$olldwill thencatchthatexception
andreporttheproble6,indicatingto thcurrl v6lidpositionchoic€s,
An exampleof thisis shownin Figue I L In Figore1la, theusclhas
positioD4 to inserta newnodc.Butth! onlyvalidpositiong
selected
for insertionwouldb€0, 1,2, and3. FigureI lb showstheresulting
view.Herctheappropriate
message
is reportedfor boththeadmation
statusandin thestatustcxtboxof thecoDtrollea.
Thesecorrespond
because
theconhollerpao$amsimplyreporuthestatusparameter
thatWALL retumsto it.
trtgue Ua, Beforc
InsertPosition
buttonpr€ss€d.
EErol.i"'
idag.
FIgurc11b.Aftel
InsortPosition
butlonpre$ed.
ENrou'i,o
a
7. EducatiotrslUse3ofJVALL
JVALL canb€usedh at le€stthrcepossiblewaysitr aneducatiodal
environment.
Tte visualizatioD
softwarecaob€u6edin tutorial
or for on-linetutorials.
settitrgs,
eitherfor clas$oomalcmonstations
IVAII canalsobeusedfor activesftde le3mi[gvia laboralory
andhomeworkactivities.Finally,WA]I, whenusedin corc€.twith
providesaneffectivedebugging
a source-level
dcbugger,
tool for
students
workingonprojects.
a
7.1 Tulorials
The classicalapplicationof visualizationsfor leaminAdatastuctures
andalgorithmsiq throughenbancemeorof
insFucroFied
demonstrationswithin the clasyoom. Two featues of JVALL make
rt veryappropriate
andfleuble in sucha seuinC.
First.sinceanyuseFprovided
conrrollerprogramcandrivea JVAIL
visualiralion,
theinstrucror
canuseihe Gnerai lnteractive
Linled
List Contoller or designher own consoller as appropriaiefor the
instructionalobjectives.
The secondryALL featuretharsupportsin-classdemonstrationsis
the ability to load inro JVALL a previouslysavedlist from a file.
This enables
rheinstructor
to useexamptes
on comptexlilt structues
withouttheoverhead
ofspendingclass
umebuildrngLhelist.
In an online learningenvironment,JVALL canbe controlledby
rutorialsoltwarewirh appropriate
visualirarions
occurringat
specifiedplacesin the process.Suchtutorials may or may not be
interactiveas the authorof the controllerdetermines,Whedthe
learningis not only odline, but aho distancele$ning, the useof the
appletmodeof JVALL is particularlyhelpful.
I
7.2Act^'eStudent
Loarrring
JVALL canbeusedasa tool to generate
6tudentactivitiesthatwill
enhance
leam'ng.Laboratory
acdvi esmighrincludeuseof the
GeneralInteracdve
LinkedLisr conlrollerro havestudenE
manipulatelinked lists andobserveeachoperation,havestudents
count eventsasthey observethem to analyzethe run-timefor an
algorithm,havestud€ntsmakecomparisonsof the different linked lisa
nodels,andusingJVAIL ro visualizetheoperarions
on a class.
ei&cr student.wntrcn
or insEuctor-provided,
rhatusesaheJava
LinkedList class.
As an exampleof this, a,ttdci classhasbe€nbuilt usins the JVALL
implenenu on ofrhe JavalJnledl6r classandan inr;active
controller hasbeenwritten to generateany possibleoperationon that
class.A studentmight learn aboutthe Stnckclassthroush JVALL
visuahzaiion
oflhe stackoperarions.
Figurel2 showsa-snapshot
of
thisactivity.
Figure 12. Bottom
panelshowingStack
Controller.
E@nor,i".
N@eo",,.*r
a
7,3DebuggingStudzntPro$ams
JVA.LLis particularlyusefirlin assislingstudents
whiletheydebug
prcgrams
thatusetheJavalinkdrir, class.In additionto the
visualizations
of thelrnlrdl,,rt operations,
JVALL,in partnership
with a source-level
powerfultoolfor
debugger,
is anespecially
discovering
logicenon. With thiscombination,
studenhcanstep
throughthecodewith thedebugger
alldwatchtheresultsof
operaiions
evolvewithintheJVALLwindow.
Thisis a significant
improvement
overtheuseof thedebugger
ilone becauae
thestudent
is notforcedto follow a chainof referenc$to realizethesfiuctureof
a t$!
I
8. Conclurionoand tr'uturcWork
A numberof animationstrat€gies
havebeendeveloped
and
implcmented
for useasteachingandlearningtools.Thequalitiesthat
packeg€
aneffectivealgorithmvisualization
shouldposs€ss
have
beenclassifie-d
by Cordovain [l2]. Below,weapplythesefive
c teriato JVALL.
I
t
Flexibility. WAIL is flexible in the sensethat it is capableof
visualizing the executionof any programthat usesthe Java
tru*ddtrit clais. JVALL canbe usedandrepresentedin
different waysaomeetthe needsof the controllerproglam.
JVALL can alsoanimateappletsaswell as standalone
applications.
Integraalon of algorithm text and visualization. JVALL
Fovides dynamictextual updatesof the animationstagesto
the useralld to the con8oller progmm.BecauseJVAIL was
built upon the JavaZr"*edLrt classandis independentof
implementation,it is unableto provide codedisplayof the
linked list.
Easeof modiffcation. All the componentsof WALL arefully
I
I
customizable.JVALL comeswith a full color conrol panel
for customizingall ,spectsof the animaiiondisplay.The
liol(ed list nodes,pointers,turows,tsaveneanow, and
backgroundcolorscanb€ chaDgedto suit the us€r s rasle.
A!€cution control fesirres. IVALL'S speedcontrol and
multiple undo's andredo's give the userthe ability to rew;nd
and adjustrhe speedof the animationto aid leamGgar a
Supporl for animationof algorilhmssuppliedby the us€r.
As illustrated
in theprogarDin Figure2, a usercangenerale
a
visudrrzauon
usrnganycontsoller
progfamthatuLilizes
rhe
I a\n LinkedList cl3iss.
Accordingro rhesecri(eria.JVALL is a veryeffecLive
tool lor
enhancing
rheleamingofthe algori$msandapplcauonsof link€d
FutLrreenhancements
to JVALL include rheinplementationof
Wao*t"^or
additionallinkedlist modelssuchasdoublylinled andheaderlis(s.
In addition,thissameprocess
will beusedto provideanimated
visualizationsof otherJavaCollectionclassessuchas AtayList and doenlordiq soucecode,
TreeMap.
a
9. Acknowledgmetrts
This *ork w655uppsned
'n panby rheNationalScience
Foundatron
Research
Experiences
for Undergaduares
programrhroughgranl
#EIA-0097464-
A
10. Refer€nces
[1]Brown-M. ExploringalgorilhmsusingBatsaJLIEEECompdel
12,5(
1988),
l4-36.
[2] Stasko,J.T. TANGO: A ftamework andsystemfor algorithm
animation.IEEE Comp ter 23,9(1990),27-3i.
[3] Naps,T.L. andBressler,E. A mulri-windowedenvironmenrfor
simultaneousvisualizarionof relatedalgorithmson the World Wide
Web. SIGCSEBu enn 3O,l(1998),271-28r.
[4] Pierson,W.C. andRodger,S.H. Web-basedanimationof data
strucnuesusingJAWAA. SIGCSEBulletin 30,1(1998),267-27L
C.D.,Douglas,S.A.,andStasko,J.T.A meta-study
[5_]Hundhausen,
of algorithm visualizationefie.tivetjfJss.Joumal ofViutjl tan?uager
and computinS,to appear.
t6l Haajalen, J., Pesonius,M., Sutinen,E., Tarhio,J., Terasvirta,T.,
andVanninen,P. Animation of useralgorithmson the web.
Proceedingsof the lln IEEE Intematiomt Synposivmon Visual
Langwses, IEBE Cotr\pt)terSocietyPress,1997,360-367.
[7] Latlu,M., Tarhio,J.,andMeisalo,V. Howa visualization
tool
can-b€:rsed--evalualing
a tool in a rcsearch
& development
projecl
| 2dr
of ftogra]nminglit".est i;r6up.
,workshopof thePsychology
AD.il2m0.
Jq nater, n.S.,Aoitn, lt., coodrich,M.T., Tamassia,
R.. and
Slivel.B.A Testersatrdvisualizers
for t€aching
dalastructures.
SIGCSE
Bulletin3L,ttl99), 26t-265.
[9] RoBling,G.,Schiiler,M., andFreisleberlB. TheANIMAL
algorithmadimationtool.56 AnnualConference
onInnovstionand
Technology
in Compurer
Science
Education(niCSE),20N,37-40.
P.,Demetres€u,
[0] Crcscenzi,
C.,Finoc.hi,I., andpetreschi,
R.
Reveisible
BxecutionandVisualization
ofprcsraltrswilh
I+o_\!!P9: lourylatofvisuatlansuases
aA Conpwins,
r 1,2(2000.125-150.
U 1l Bergin,J.,Brcdlie,K,, coldweber,M' Jimdncz-peris,
R., Khuri,
S..?atiffo-Madnez.
M.,McNally.M.,Naps,T..
Rodger,
andWitson,
J: At 9yg_"_i:y
-oJ$f4yqtion: ir uscanddesign.pioceedursro/
rhcACMSIGCSAyCCUEConfercnc.ohInrcirutinsTech;fogy
hb Amputer ScicrDeEducarioh,t996, t9Z-2O0.
u2l Cordova,J. A comlffativeevaluation
of web-basrd
algorirhm
visualization
systemslorcomputddcience
cducation,
Jolr;al o/
Conputingin SnaUColleges14,3(t999),72"7j.
tl **,r,r*,r,*,r,*
* gn4 ol po"onrontr*lN.r.,r,r,,ri!*,1
IME' nuldnc.lia t m n Inbd sligred b ttis paper
yue-Ling Wong
Download