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