Similar documents
Digital Library for Multimedia Content Management

-8*6-DYD6HPLQDU 6HUYOHW$UFKLWHFWXUHV 5DLQHU+LVV$QGUHDV.DSS 6<6725$*

How To Install Linux Titan

The functions of system LSI become more and more complicated

BIRT Application and BIRT Report Deployment Functional Specification

Implementing a Bidirectional Model Transformation Language as an Internal DSL in Scala

LMT Lustre Monitoring Tools

SOFTWARE ARCHITECTURE FOR FIJI NATIONAL UNIVERSITY CAMPUS INFORMATION SYSTEMS

A J2EE based server for Muon Spectrometer Alignment monitoring in the ATLAS detector Journal of Physics: Conference Series

What is a workflow? Workflows are a series of actions that correspond to a work process

Settlers of Catan Phase 1

What do you think? Definitions of Quality

OPERATING SYSTEM SERVICES

NetBeans IDE Field Guide

Chapter 4. Architecture. Table of Contents. J2EE Technology Application Servers. Application Models

Effective Java Programming. efficient software development

Example. Represent this as XML

THE SOFTWARE DEVELOPMENT LIFE CYCLE *The following was adapted from Glencoe s Introduction to Computer Science Using Java

SOFTWARE TESTING TRAINING COURSES CONTENTS

Why Threads Are A Bad Idea (for most purposes)

Client-Server Applications

Philosophy of GIMnet

What Is the Java TM 2 Platform, Enterprise Edition?

Integrating Databases, Objects and the World-Wide Web for Collaboration in Architectural Design

Comparison of Software Development Productivity by EJB Versions with Enterprise of Standardization

Software Development around a Millisecond

Three Stages for SOA and Service Governance

Enterprise Application Integration

Electronic Data Capture At Emory University. Research and Health Sciences IT Division

9/11/15. What is Programming? CSCI 209: Software Development. Discussion: What Is Good Software? Characteristics of Good Software?

Software support for economic research at CNB

Review of Mobile Applications Testing with Automated Techniques

Java Technology in the Design and Implementation of Web Applications

ITG Software Engineering

CORBA and object oriented middleware. Introduction

Efficiency Considerations of PERL and Python in Distributed Processing

Complete Java Classes Hadoop Syllabus Contact No:

Classic Grid Architecture

Reduces development time by 90%

Building Applications with Protégé: An Overview. Protégé Conference July 23, 2006

CT LANforge-FIRE VoIP Call Generator

Intro to Docker and Containers

VisuSniff: A Tool For The Visualization Of Network Traffic

The Efficiency Analysis of the Object Oriented Realization of the Client-Server Systems Based on the CORBA Standard 1

A Performance Analysis of Distributed Indexing using Terrier

JAVA Technologies QUARTER 1 DESKTOP APPLICATIONS - ESSENTIALS QUARTER 2 NETWORKING AND OPERATING SYSTEMS ESSENTIALS. Module 1 - Office Applications

Developing a MapReduce Application

Distributed Systems. Security concepts; Cryptographic algorithms; Digital signatures; Authentication; Secure Sockets

Software Engineering: Analysis and Design - CSE3308

FTP Server/Client in Haskell and Java

End-user Tools for Application Performance Analysis Using Hardware Counters

Operating Systems and Networks

Software design (Cont.)

Frysk The Systems Monitoring and Debugging Tool. Andrew Cagney

IDL. Get the answers you need from your data. IDL

In: Proceedings of RECPAD th Portuguese Conference on Pattern Recognition June 27th- 28th, 2002 Aveiro, Portugal

Project Proposal Distributed Project Management

Chapter 2 System Structures

Microsoft Windows PowerShell v2 For Administrators

Evaluation of Load/Stress tools for Web Applications testing

AndroLIFT: A Tool for Android Application Life Cycles

Automation using Selenium

Audio networking. François Déchelle Patrice Tisserand Simon Schampijer

Layering a computing infrastructure. Middleware. The new infrastructure: middleware. Spanning layer. Middleware objectives. The new infrastructure

PRODUCING AN EDUCATIONALLY EFFECTIVE AND USABLE TOOL FOR LEARNING, THE CASE OF JELIOT FAMILY

Current Status of Development of New VLBI Data Analysis Software

Product Overview. Contents

ios Application Development &

Distributed Systems Architectures

Analysis and Design of Software Systems Practical Session 01. System Layering

Property & Casualty Insurance Solutions from CCS Technology Solutions

STUDY AND ANALYSIS OF AUTOMATION TESTING TECHNIQUES

Google Web Toolkit. Introduction to GWT Development. Ilkka Rinne & Sampo Savolainen / Spatineo Oy

Application of Next Generation Telecom Network Management Architecture to Satellite Ground Systems

IP Interface for the Somfy Digital Network (SDN) & RS485 URTSII

INTERNET PROGRAMMING AND DEVELOPMENT AEC LEA.BN Course Descriptions & Outcome Competency

CSE 3214: Computer Network Protocols and Applications

Mobilize Your ERP with ADF Mobile

Platform Independent Mobile Application Development

Troubleshooting for Yamaha router

IBM Rational Web Developer for WebSphere Software Version 6.0

System Structures. Services Interface Structure

S P I E Information Environments Shibboleth and Its Integration into Security Architectures. EDUCAUSE & Internet 2 Security Professionals Conference

MARTe Framework. Middleware for RT Control Development

Transcription:

TypesAnimationovertheInternet ConcurrentAlgorithmsandData GiuseppeF.Italianoy GiuseppeCattaneo UmbertoFerraro VittorioScarano AlgorithmsanddataTypesAnimationovertheInternet).Amongthefeaturesofthis systemarealoweortrequiredforanimatingalgorithmiccode,andthepossibilityof WepresentadistributedalgorithmanimationsystemcalledCatai(forConcurrent Abstract embeddinganimationclientsinstandardjava-enabledwebbrowsers.webelievethistobe agoodcompromisebetweentwodierentviewpoints:theprogrammer'sperspective,which typicallyincludesthegoalofanimatingecientlyandunobtrusivelyagivenalgorithmic code,andtheuser'sperspective,whichcanbenetfrominteractive,easy-to-use,distributed 1 Introduction andcooperativeinterfaces. Algorithmanimationisaformofsoftwarevisualizationthatusesinteractivegraphicstoenhance thepresentation,developmentandunderstandingofcomputerprograms.systemsforalgorithm implementationofalgorithms,andperformancetuninganddebuggingoflargeandcomplex softwaresystems. totheirrelevanceinmanyareas,includingcomputerscienceeducation,design,analysisand animationhavematuredsignicantlyinthelastdecade[2,3,6,8,9,28,29,30],perhapsdue codeathandand,insomeinstances,evenrequirewritingtheentireanimationcodeinorder cationsinmind.however,manyofthesesystemsrequireheavymodicationstothesource toproducethedesiredalgorithmvisualization.thus,auserofthesesystemsnotonlyshould Severalalgorithmanimationsystemshavebeendevelopedwithoneormoreoftheseappli- investaconsiderableamountoftimewritingcodefortheanimationbutalsoneedstohavea signicantalgorithmicbackgroundtounderstandthedetailsoftheprogramtobevisualized. Thisisnotdesirable,especiallywhenalgorithmanimationistobeusedinprogramdevelopment anddebugging. DipartimentodiInformaticaedApplicazioni\R.M.Capocelli",UniversitadiSalerno,Italy. Council.PartofthisworkwasdonewhilevisitingTheHongKongUniversityofScience&Technology.Email: searchgrantfromuniversity\ca'foscari"ofvenice,andbygrantsfromcnr,theitaliannationalresearch portedinpartbyeuespritlongtermresearchprojectalcom-itundercontractno.20244,byare- ydipartimentodimatematicaapplicataedinformatica,universita\ca'foscari"divenezia,italy.sup- italiano@dsi.unive.it.url:http://www.dsi.unive.it/italiano.

testingandunderstandingcomputeralgorithms(seealso[25]). mainfactorslimitingthediusionofanimationtechniquesasasuccessfultoolfordebugging, ThispaperdescribesanalgorithmanimationsystemcalledCatai(forConcurrentAlgorithmsanddataTypesAnimationovertheInternet).Oneinterestingaspectofoursystemis writtenaccordingtocertainspecics(e.g.,inc++,usinganalgorithmicsoftwarelibrarysuchas thatittriestoimposealittleburdenonthetaskofanimatingalgorithms.iftheprogramis LEDA[22]),thenitshouldbeeasytoobtainasimpleanimationofthisprogramwithCatai. programmeroranalgorithmdevelopershouldnotinvesttoomuchtimeingettinganactual animationofthealgorithmupandrunning.inourexperience,thiswasnotalwaysthecase, andoftenanimatinganalgorithmwasasdicultandastimeconsumingasimplementingthe Thisshouldmakethissystemeasytouse,andisbasedonthephilosophythatanaverage Inourownexperience,theeortrequiredtoanimateanalgorithmisperhapsoneofthe algorithmitselffromscratch.ourapproachhasanadvantageoversystemswherethetask ofanimatinganalgorithmishighlynon-trivial.producinganimationsalmostautomatically, however,canlimitexibilityincreatingcustomgraphicdisplays.iftheuseriswillingtoinvest graphicscapabilities,whilestillexploitingthefeaturesoeredbyoursystem. moretimeonthedevelopmentofananimation,heorshecanproducemoresophisticated possibilityofanimatingcomplexalgorithmsanddatastructures.thisismainlyachievedby structuresstartingfromverysimpleobjects.particularattentionwasdevotedtoeciency fullyexploitinganobject-orientedabstraction,whichallowsonetobuildcomplexanimateddata Wesketchheresomeotherfeaturesofoursystem.Oneofourdesignprinciplewasthe issues:thesystemwasdesignedsoastoberesource-ecient(graphicalresourcesarelargely reusedduringtheanimation),andtime-ecient(littleextraeortisrequiredwhenassembling systemisdistributed,asanimationclientscanbeplacedanywhereonanetwork,andhasa animatedobjects,asasoftwarelayerisinchargeofcoordinatingthepresentation).our distributeduserinterfaces,oursystemcanbeeasilyintegratedintheweb.anotherofthe runningprograms,thusinuencingtheanimation.besidesoeringinteractiveandeasy-to-use maincharacteristicsofcataiisthatitisinherentlycooperative:multipleanimationclients highdegreeofinteractivity,asclientsareabletohaveadeepgraphicalinteractionwiththe caninteractandinuencethebehaviorofasinglesharedalgorithminstance.furthermore,our keepsoverallthesamebehaviorasitsoriginalexecution.thisisparticularlyimportantfor asanimationdoesnotinterferewiththeexecutionofthealgorithm:theanimatedalgorithm systemhasahighdegreeofprivacy,whichispreservedonopennetworks,andisnotpervasive, debugging. architecturalchoicesunderlyingthedesignofcataiinsection2.next,weprovidesome algorithmanimationwithcatai.themainfeaturesofcataiaresummarizedinsection4, examplesonitsusageinsection3,wherewedescribeindetailshowtoprepareanactual Therestofthispaperisorganizedasfollows.Werstdescribethemainprinciplesand wherewealsomentionthenextdevelopments,mostnotablysomefurtherintegrationwiththe WorldWideWebtoprovidecooperativeworkgroupcapabilities. WhenourrstprototypeofCataiwasstarted,wehadalreadyimplementedandanimateda 2fairamountofalgorithms.Thus,ourownexperience,bothasprogrammersandasusersof SystemDesignandArchitecture algorithmsandanimations,stronglyinuencedourviewsanddevelopmentofcatai.thiscan perhapsexplainsomebiasorsomeparticularchoicesmadeinthedevelopmentofoursystem,

butatthesametimecanbeseenfromadierent,andperhapsmorepractical,viewpoint:we developedcataibecauseweactuallyneededaneectiveanimationtool,especiallysuitedfor debugging,testingandtuningalgorithmicsoftware. codeproducedbypeopleindierentsites.thus,wethoughtofananimatedalgorithmlikeany access,whichimplieddesigningadistributedsystemtoanimatealgorithms.whilejointly developingsomecomplexalgorithmicsoftware,wewantedtoquicklytestandvisualizethe Firstofall,beingaresearchgroupspreadoverdierentsites,wewantedtoensureremote remoteaccesshasmanyotheradvantages.justtomentionafew,aremoteinterfaceisanatural, simpleandoftenmoreecientalternativetoportinganyspecial-purposeorspecializedsoftware other\networkresource",whichcanbeaccessedandinteractedwith.ofcourse,asystemwith packageneededbyagivenalgorithm.furthermore,remoteaccesscanalsoensuresomeform ofprivacyandencapsulation:theusercanwatchanalgorithmrunningonaparticularinput fromtheuser,sincethecodeislocatedonadierentmachine.thiswassomehowinlinewith set(whichcanbechosenbytheuser),whilethealgorithmitselfanditsdetailsare\hidden" othercurrentanimationsystems,suchasmocha[2]. animateddatastructuresatrun-time:incataithisisdoneinsuchawaythattheexecution interactasmuchaspossiblewiththeanimatedalgorithm.wewanted,forinstance,toallow theusertointeractwiththealgorithmduringitsexecution.oneexamplecouldbechangingthe However,anddierentlyfromotheranimationsystems,wewishedtoallowtheuserto needsnottoberestarted(asithappensinothersystems)butissimplycontinuedonthe speed,checkpointing).notrulydeepinteractionwasavailabletowardstheunderlyingdata ofpresentingthealgorithm.thetypicalinteractionallowedbetweentheuserandalgorithm changeddata.inprevioussystems,userinterfaceswerestronglyorientedtowardsthegoal wasverylight(e.g.,runthealgorithm,presentitsexecutionframe-by-frame,controltheframe structures:theonlypossibilitywastoassigndefaultvaluesatinitializationtime;usually, animatedalgorithmsoeredonlythechoiceamongdierentinputsets,includingdeninga newone.inourexperience,thisgavearatherlimitedviewofinteraction,andwhilevisualizing algorithms,weneededamuchdeeperinteractionwiththeirexecution.forinstance,wefound extremelybenecialtousetheanimationtodebugcomplexalgorithmiccode:inthiscase, andforeducationalpurposesaswell,weoftenperceivedtheneedtovisualizewhathappens requiresamuchstrongerinteractionbetweentheuserandtheexecutionofthealgorithmat animationtime.aspointedoutin[3],fromwhichweciteverbatim,thisstronginteraction ifweinteractivelyforcethealgorithmtofallintonon-standardorwrongcongurations.this seemssomehowimplicitintheconceptofalgorithmanimation: \Algorithmanimationappealstothestrengthsofhumanperceptionbyproviding Acrucialpointhereisthemeaningof\step",asincurrentanimationsystemsonecannd end-usertounderstandthealgorithmsbyfollowingvisuallystep-by-stepexecution". avisualrepresentationofthedatastructure[...]algorithmanimationhelpsthe nearlytwooppositeinterpretationsofthis.therstinterpretationistheoneusedinlineorienteddebuggers,wherecoherencewiththealgorithmexecutionisguaranteedattheexpense ofaverynegranularity,whichsometimescanevendisturbtheinterpretationofthebehaviorof thealgorithm.thesecondinterpretationofstepisthatofalogicalframe,whichcanbedened bytheprogrammeratthedesiredlevelofgranularity(asforinstanceinpolka[28]).withthis and,therefore,itisnotalwaysguaranteed.forus,accordingtoanobject-orientedparadigm, approach,coherencewiththealgorithmexecutionisatotalresponsibilityoftheprogrammer astepisanychangeofstateoftheanimatedobjects.indeed,toensureastronginteraction

Requirements Remote Access Interactivity Reusability Approach Distributed Animation Architecure Data Structures Animation vs. Algorithm Animation betweenusersandalgorithmexecutions,oursystemmonitorsallandonlytheeventsthat ofanalgorithmwassoheavilyembeddedinthealgorithmitselfthatnotmuchofitcouldbe comforting.inmanycases,reusabilitywasnotconsideredatall,andveryoftentheanimation changethestateofananimatedobject. reusedinotheranimations.wewantedtoenforcereusabilityinastrongsense:iftheuserproducesagivenanimateddatastructure(e.g.,astack,atree,oragraph),thenallitsinstances Ourthirdmainconcernwasreusability,aspreviousexperienceswiththiswereratherdisicalbehaviorwithnoadditionaleortatall.Ofcourse,whenmultipleinstancesofdierent datastructuresareanimatedfordierentgoals,abasicgraphicalresultmaybepoorwithout inanycontext(localscope,globalscope,dierentprograms)mustshowsomestandardgraph- perhapscouldneverbe)reusable.wedesignedoursystemsothatitcanoerdierentlevels anadditional,application-speciccoordinationeortthatbyitsownnatureseemsnot(and ofsophistication:non-sophisticatedanimationscanbebasicallyobtainedforfree.ifonewants amoresophisticatedanimation,forinstancebyexploitingsomecoordinationamongdierent datastructuresforthealgorithmathand,thensomeadditionaleortisrequired. Figure1:ThemainideasbehindthedesignofCatai. Cooperative GUI Efficiency Features Portable GUI Distributed Algorithm (development time. Animation network resources) deeplyinuencedthedesignofoursystem.toallowremoteaccess,oursystemhadobviously tohingeonadistributedarchitecture.however,ourdesireofahighdegreeofinteractivity aswellhadaprofoundinuenceonthechoiceofadistributedarchitecture.oursecondmain Figure1showshowthesethreerequirements(remoteaccess,interactivityandreusability) rithmsonly.roughlyspeaking,wewantedtoallowadeepinteractionbetweentheuserand architecturalchoicewastofocustheanimationmoreondatastructuresratherthanonalgo- theanimateddatastructuresusedbyanalgorithm,whilethealgorithmitselfwasrunningon them.thisisopposedtootheralgorithmicanimationswhichchooseaninput,visualizeit,and thenrunthealgorithmonit,withoutgivingmuchinformationonitsinternaldatastructures. oftenallowsonetoachieveabetteranddeeperunderstandingoftheinternaldetailsoftheal- Webelievethatthisfocusonanimatingdatastructureshasmanybenets.Firstofall,this

gorithm,whichisespeciallyimportantatdebugtime.furthermore,itensuresahigherdegree ofinteractivity,byexploitingthefactthatdatastructureshavemethodsforinputthatcanbe animatedaswell.finally,italsoimprovesthereusability,ascomplexanimatedalgorithmsand datastructurescanbeoftenobtainedasacompositionofsimpleranimateddatastructures. Figure1.Firstofall,CataiisdesignedsoastoprovidenaturallyaportableGraphicalUser Interface,andthisinterfaceisgivensimplybyaJavaprogram.Thesystemcanofcoursebe easilyusedintheweb:javaappletswithinanimationclientscanbeaccessedbyusingany Webelievethattherearethreemainnaturaloutcomesfromthisapproach,asshownin distributedalgorithms.finally,webelievethatthefocusofcataionreusabilityassuresa amongmultipleanimationclientstowardsthesamealgorithm,andevenallowsonetoanimate greatdegreeofeciencywithrespecttobothdevelopmenttimeandtheusageofnetwork standardjava-enabledwwwbrowser.thesecondfeatureisthatcataiallowscooperation Figure2,therearethreemaincomponentsinoursystem: resources. (1)Thealgorithmservers(AlgServer).TheseareexecutableprogramswritteninC++ WearenowreadytopresentinmoredetailsthearchitectureofCatai.Asillustratedin (2)Theanimationclients(Ci).Theyimplementtheusers'interfacestowardthealgorithms,andarewritteninJava. algorithmserver,andcoordinatesalltheinteractionsbetweenthem.oneofitsmain goalsistoprovidecoherencebetweenthenon-animateddatastructuresusedbythe algorithmserverandthecorrespondinggraphicalobjectshandledbyaclientci.itis andobtainedfromtheoriginalnon-animatedsourcecodesofthealgorithmswiththe supportofsomecommunicationprimitivesfromthecatailibrary. (3)Theanimationserver(S).Itisthemiddlelayerbetweenanimationclientsandthe TheAlgorithmServer alsowritteninjava. AnalgorithmserverAlgServerisanexecutableprogramwritteninC++withthesupportof somecommunicationprimitivesfromthecatailibrary.theseprimitivesaregroupedintwo virtualclasses:animatorandbootstrap.theanimatorclassprovidessomecommunication primitivestotheanimatedobjectsdenedinalgserver,whilethebootstrapclassmainly providestheinitializationroutinesnecessarytothecommunicationprimitives.inordertobe abletocommunicatewiththeanimationservers,theoriginalalgorithmmustbeencapsulated inaclassthathasaninterfaceknowntos. animatedalgorithma.thisprocessisstandard,sothatitcouldbeeasilymadeautomatic. Firstofall,thedatastructuresusedbyAthatwewanttodisplayareextendedtoanimated datastructures.wedenotebya'theresultingalgorithm.next,a'isencapsulatedinaclass WedescribenowhowtobuildanalgorithmserverAlgServerstartingfromanoriginalnon- (a)deningthetoplevelgraphicalobjectswhichwillbehandledbya'; classanimateda'isresponsiblefor: calledanimateda',whichisderivedfromtheanimatorandbootstrapvirtualclasses.the (b)deningthemethodanimateda'::a'()whichisusedtocallalgorithma';

Java Animation Server Animator Class Remote Interfaces Object Mapper Animation Libraries CORBA compliant Interface C++ Programs Multicast Forwarder AlgServer i Java Client C 1 Java Client C 2 Java Client C n End User End User... End User (c)deninganyextramethodsthathandlethegraphicalobjectsboundtotheuserinterface.allthesemethodswillbeoeredbytheserverstotheclientsci. Figure2:CataiBasicArchitecture. GUI GUI GUI fromtheoriginalnon-animatedclassandthevirtualclassanimator.theyarearedenedon Theanimatedclasses(i.e.,animateddatastructures)areobtainedusingmultipleinheritance librariesofs.thisimpliesthatananimatedclasscontainsnographicalobjectrepresentation,a thebaseoftheservicesoeredbytheanimationservers,whichareincludedintheanimation taskwhichisleftentirelytotheanimationservers.namely,anobjectresidesonanalgorithm serveralgserverwhileitsgraphicalrepresentationresidesontheanimationservers:thebinding betweenthesetwoentitiesisestablishedonlyatrun-time,bylatebinding. entdatastructurescanusethesameobjectrepresentation:forinstance,anyalgorithmusing nodescaninvokethesamenoderepresentationoeredbytheanimationservers.thiswill speeduptheprocessofgeneratingnewanimatedclasses,andwillallowtheusertoignorecompletelythedetailsbehindthegraphicalrepresentationoftheanimatedobjects.notethatthe animatedclasseswillmaintaintheiroriginalinterfacesandthuswillnotcauseanymodication totheoriginalalgorithm. AlgServer,thereisabootstrapphasewhereAlgServerannouncesitsservicestotheanimation servers.asanydistributedsystem,algserverneedstoagreewithsoncommonobjectinterfaces:afteraninitialsimplehandshake,theanimationserverslearnswhatisthelocalsupport WearenowreadytoexplainhowanalgorithmserverAlgServerworks.Whenoneruns Thisisperhapsoneoftheadvantagesofthisarchitecturewithrespecttoreusability.Dier- requiredbytheanimateddatastructuresinalgserverandwhataretheinterfacesexposed byalgserver.thealgorithmservercompletesthebootstrapphasebyenteringintoanevent

handlerloop,wherealgserverwaitsforconnectionrequestsfromtheanimationservers(i.e., handlerloopthatwillprovidethebasicguitotherelevantclientsthroughthealgorithm tobeselectedbyauserwishingtorunalgorithma'). servers.inthisguitheusercanhavemanyoptions,includingrunningthealgorithm.ifthis objectoftheclassanimateda'.theconstructorofthisclasswillenterinasecondevent WhenoneormoreusersselectAlgServer,theanimationserverSremotelyinstantiatesan TheAnimationServer optionisselected,theanimationserverswillinvoketheexecutionofalgorithma'throughthe remoteinvocationofanimateda'::a'(). Allthecoordinationbetweenthealgorithmserversononesideandtheanimationclientson theothersideiscarriedoutbytheanimationservers:indeed,oneoftheprimarygoalsofan animationserveristointerfacealgorithmserverswiththeirgraphicalrepresentationsonthe animationclients.asillustratedinfigure2,ananimationservercontainsfourbasicmodules: TheAnimatorClassRemoteInterfaces.Thislayerdenesthecommunicationprimitives andimplementsthejava/c++interoperabilityasacollectionofstubs/proxies.proxiesencapsulatenetworkcallsandaccessdistributedobjects:aproxylooksliketheserverobjectinterm functioncallsiscarriedoutviasectionsofthecodecalledstubcode.thislayerwillinterface outtheremotecallstoforwardthemtotheremoteobject.themechanismformakingremote ofthemethodsitimplements.however,itsimplementationoftheobjectmethodswouldcarry theguiofanalgorithmclientandbymappingthemontoeventsforobjectsonanalgorithm theremoteobjectsinstantiatedbyanalgorithmserverbyparsingtheeventsreceivedfrom server,andviceversa. ObjectMapper.Thismoduleisinchargeofmaintainingamappingbetweengraphicalobjects avisualobject,aneventwillbesenttothecorrespondingobjectonaparticularalgorithm server.ontheotherhand,eachtimeanalgorithmservermodiesthestateofanobject,a correspondingchangewillbeproducedontheuserdisplay. andtheircounterpartsonthecorrespondingalgorithmserver.eachtimeauserinteractswith AnimationLibraries.ThislayercontainsarepositoryofJavaclassesabletodrawgraphical denedhowtodrawabinarytreeandhowtodealwithit(moving,deleting,insertingnodes, objectsandtodenethestandardinteractionswiththem.forinstance,inthismoduleitis etcetc).whenanalgorithmserveralgserverisstarted,itrequestsalltheentriesofthe AnimationLibrariesthatarenecessaryforitsownanimateddatastructures.Ifavailable,the Multicastforwarder.Thismoduleprovidesone-to-manycommunicationandletmanyclients correspondingclassesaredownloadedtotheclientsthatwillrequestconnectiontoalgserver. runninginstanceofanalgorithmevenafterthealgorithmisstarted,themulticastforwarder interactwiththerunninginstanceofthealgorithm.asananimationclientmightjointhe containsacoordinationprotocolthatalignsalltheclientswiththealgorithmexecution.the andedges.whentheseupdatesarerequestedfromoneclient,alltheotherclientsarelocked interactwiththealgorithmserverinamutuallyexclusiveway.forexampleifweareexecuting samecoordinationprotocolmaintainsthesynchronizationprimitivesthatalloweachclientto analgorithmbasedondynamicgraphs,theusershouldbeabletocreateordeletenewnodes untiltheoperationisterminated.

AnimationclientsareJavaprogramstargetedtohandlingthreedierenttypesofevents.The TheAnimationClientsCi ofeventsareanimationdirectives:theseareeventsoriginatedbyanalgorithmserveralgserver generatedcommandssuchas\click",\drag-and-drop",and\shift+click".thesecondtype anddirectedtowardstheuserinterfaceofanalgorithmclientwhichrequiresomechangesinthe rsttypeareuser-generatedeventstowardsanalgorithmserveralgserver;theseincludemouse- graphicalpresentation;examplescanbeoperationslikecreateanewgraphicalobject,establish dynamicallyenteringthepoolofdisplayingdevicesforaparticularalgorithm.sinceallthe alignmentdirectivesusedbytheanimationserverstocoordinatemultipleclientsthatcanbe aconnectionbetweentwodierentgraphicalobjects,etc.thethirdtypeofeventsarethe communicationbetweenanimationclientsandalgorithmserversishandledbytheanimation servers,alltheseevents(includinguser-generatedeventsandanimationdirectives)arebetween animationclientsands. somealgorithmserver.iftheuserchoosesthealgorithmoeredbyaparticularalgorithmserver programcistarts,itlooksforananimationserverataspeciedaddress.next,cireceives fromtheanimationserversalistofavailablealgorithms,namelyallthealgorithmsrunningon Wenowdescribehowanimationclientsinteractwiththeanimationserver.Whenaclient thepoolofclientscurrentlyconnectedtothatalgorithmandcoordinatesalltheinteractions clientciandthecorrespondingalgserver.theanimationserversmaintainsinformationabout andtheupdatesonthedisplayforallthemembersofthepool.atthispoint,theclientcican AlgServer,thenanewvirtualconnectionisestablishedviatheanimationserverbetweenthe downloadallthedataitneedstodisplaythedatastructuresanimatedbyalgserver.fromnow on,eachclientwillbeabletocallsomeservices,suchassomeupdateoperationsonalgserver, animatedobject,eitheratinitializationtimeorduringtheexecutionofthealgorithm,thisnew objectwillbedisplayedontheclientsasinstructedbytheanimationservers. andtovisualizetheresultingevolution.ontheotherhand,whenalgserverallocatesanew onthetopofjavaawt(theabstractwindowtoolkitofthejavavirtualmachine).each server.theserverinturnwillusethebasicgraphicprimitivespresentintheclientcodebuilt denedintermofabstractobjectscontainedintheanimationlibrariesresidentintheanimation ThebasicGUIpresentedbytheclientsfollowstheinterfaceproposedbyAlgServer,whichis thismapwillbeupdatedwhenanewobjectiscreatedbyalgserver. AlgServerandtheGUIwilldirectlycalltheirmethodsasaremotemethodinvocation.Again, clientkeepitsownmapofalltheanimatedobjectsinordertobeabletoaddressthemon bycatai.firstofall,weshouldmentionthatanobject-orientedparadigmbyitselfoers reusability:ananimatedclass,onceithasbeendesigned,cannaturallyberecycledandextended.forinstance,wecaninheritananimatedlistclasstodeneeasilyananimatedstack Weconcludethissectionwithsomemorecommentsaboutthelevelofreusabilityoered deneanimatedclassesbyreusingallthegraphicalrepresentationsdenedintheanimation class.thereusabilityfeaturesofcataiareofcoursedeeperthanthat.indeed,onecanalso abasicanimationofmanysortingalgorithms.finally,andperhapsmoreimportantly,with resentation.orwecanuseanimatedarraysandanimatedliststoobtain,atnoextracost, anddierentimplementationsofgraphclassescouldsharemuchofthesamegraphicalrep- libraries.forinstance,thegraphicalrepresentationofanodeisthesameforgraphsandtrees, ourapproach,wecaneasilyexchangeandreuseanimateddatastructuresthatarebuilt-in somewhereinalgorithmservers.thiswasparticularlyusefulinourownexperience.

3ofclarity,wewilldescribethegeneralstepsthatmustbefollowedforaccomplishingthistask WenowdescribeinsomedetailshowtoprepareanalgorithmanimationwithCatai.Forsake AnExampleofAnimationwithCatai andatthesametimeillustratethemthroughaworkingexample:theanimationofkruskal's algorithmforcomputingaminimumspanningtree(mst)ofagraph[20]. willnallyconvergetoaminimumspanningtree.initially,theforestconsistsofnsingleton nodes(i.e.,theverticesinthegraph).thealgorithmscanstheedges,oneatthetimeand inincreasingorderoftheircost.iftheendpointsoftheedgeunderexaminationarealready Kruskal'salgorithmrstsortsalltheedgesbyincreasingcost,andthengrowsaforestthat edge),andthetwotreesaremergedintoone.foreciencyissues,thetreesaremaintainedas dierenttrees:theedgeisinsertedintotheforest(i.e.,itwillbeaminimumspanningtree setuniondatastructures[31].werefertoleda'simplementationofkruskal'salgorithm[22], connectedinthecurrentforest,thisedgeisdiscarded.otherwise,theendpointsareintwo whichmakeuseoftheclasspartitiontoimplementsetuniondatastructures. 3.1 Whilebuildinganalgorithmanimation,therstdecisiontobetakeniswhichdatastructures aretobeanimated.intheexampleathand,forinstance,itseemsnaturaltovisualizethe Howtoanimateanalgorithm graphbeingexplored;additionally,wecouldalsochoosetoanimatetheunderlyingpartition ananimationcanbebrokeninthreedierentsteps. givenbythesetuniondatastructures.oncethishasbeendecided,theprocessofdeveloping Cataiisgivenbytheanimationlibraries,whichintuitivelyprovideananimatedinterpretation Creatingananimationlibrary.Acrucialmodulewhichprovidesthebasicanimationin animationlibrariesforthealgorithmathand,thenwemustdeveloptheanimationlibraries of\howdatastructureswork".theselibrariesaretotallyindependentfromthedatastructures beinganimatedandcanbeeasilyreused.iftheanimationserverdoesnotsupportalready requiredbythealgorithm.inourexampleofminimumspanningtrees,cataicontainsalready animationlibrariestorepresentgraphobjects,andthusthistaskisempty.weremarkhere onewouldrarelyneedtobuildalgorithmiclibrariesfromscratch. thatcataisuppliesanimationlibrariesformosttextbookalgorithms,andthusintheaverage blocksofanimations.eachanimobjectcanhaveacustomizableappearanceandcanbere- latedtootheranimobjectsviaanimationlinks(animlinks):inparticular,animlinksde- neasetofanimobjectswithacommonproperty.tocreateanewanimationlibrary,wemust Animationlibrariesmanagesanimatedobjects(animobjects)whicharethebuilding Thelibstructclassprovidestheuserwithabasicsetofanimationprimitivestoadd,remove, whosepurposeistodenehowananimobjectandananimlinkisgraphicallyrepresented. rstcreateanewjavaobjectderivedfromacataiclass:thelibstructclass.eachanimationlibrarymustimplementtwospecialmethods(paintanimobjectandpaintanimlinks) select,labelandaccessbothananimobjectandananimlink. Creatinganimateddatastructures.Onceanimationlibrariesareavailable,weneedto revisetheimplementationoftheoriginaldatastructurestosupportsomeanimationcapabilities. CataioersaspecializedC++librarytoassistinthedevelopmentofanimatedclasses.The Wecallanimatedclassestheclassesthatimplementdatastructureswithsupportforanimation:

andfromtheanimatorclass:foreachmethodoftheoriginalclassthatwewanttoanimate, animationlibrary.ananimatedclasscanbederivedfromtheoriginalnon-animatedclass principalcomponentofthislibraryistheanimatorclass,whichprovidesanimationserver communicationprimitivesandbindingmechanismsbetweenadatastructureandtherelated togetherwiththeuseofoneormoreanimationprimitives.theseprimitivesmapsdatastructure wedeneanewmethodwiththesameprototypewhichholdstheoriginalmethodinvocation allanimationlibraries,whiletheirbehaviordependsontheanimationlibraryselected.to operatorstotheiranimatedcounterparts.theinterfaceofthesefunctionsiscommonfor achievebetteranimations,wecanextenddatastructuresbyintroducingsomeanimationspecicoperators,i.e.,operatorswhosefunctionalitydoesnotaectadatastructurebutonly itsvisualrepresentation. {public: animgraph(inttsockd):animator(tsockd,graph),graph(){} classanimgraph:publicgraph,publicanimator strap //GRAPHistheanimationlibraryiddefinedinAnimator //tsockdisthecommunicationchannelreferenceobtainedintheanimationboot //buildanimgraphasagraphplusanimator nodeanimgraph::new_node() {noden=graph::new_node(); }edgeanimgraph::new_edge(nodesrc,nodedst) Animator::new_obj((long)n,index(n)); returnn; //createanewnode //nextcreateanewanimobjectandbindittotheoriginalnode {edgee=graph::new_edge(src,dst); }voidanimgraph::color_node(nodev,intc) new_link((long)src,(long)dst,index(temp),(long)e); return(temp); //createanewedge //nextcreateanewanimlinkandbindittotheoriginaledge {Animator::color_obj((long)v,c); }; LEDAgraphandpartitiondatatypes.TheLEDAgraphclassusesasingleobjectwhichacts Inourrunningexampleofminimumspanningtree,thenon-animatedalgorithmusesthe Figure3:Thedenitionofanimgraphandsomeofitsmethods. asacontainertoholdnodesandedges.toobtaintheanimatedclass,wederivetheclass

animgraphfromtheledagraphclassandfromtheanimatorclass.themethodsthatwe wishtoanimatearethosewhichchangethegraph:adding,removingandmodifyingedges orvertices.apartfromthesemethods,wecouldalsoaddsomeextramethodsforanimation purposes.thedenitionoftheanimgraphclassandtheimplementationofsomeanimated methodsisgiveninfigure3.theanimatedpartitionclasscanbedenedwiththesame technique. Animatedalgorithm.Oncebothanimationlibrariesandanimateddatastructuresareavailable,wecannallycodetheanimatedalgorithm.TheresultingprogramwillcomplytoCatai protocolsandwillexhibitastandardanimation.thisanimationcouldbefurtherimprovedusinganimation-specicoperatorsandcataidirectortools.thesetoolsallowonetointeractin moredepthwithalgorithmandtocoordinateitsexecution.cataidenesalltheinteractions asastandardsetofevents:eachoftheseeventscanbeeasilyboundtoamethodinvocation. Apartfromtheseinteractions,Cataiprovidesalsotoolsforrequiringacknowledgmentsto end-users,forshowingcustomizabletextboxesandforsynchronizinganimationsplaying. Originalalgorithm Animatedalgorithm... G=newgraph();... list<edge>mst::kruskal(graph&g) {node_partitionp(g); list<edge>l=g.all_edges(); list<edge>t; L.sort(CMP_EDGES); edgee; forall(e,l){ nodev=source(e); nodew=target(e); if(!p->same_block(v,w)){ T.append(e); P->union_blocks(v,w); } }returnt; }... G=newanimgraph(sockd);... list<edge>mst::kruskal(animgraph&g) {anim_node_partitionp(g); list<edge>l=g.all_edges(); list<edge>t; L.sort(CMP_EDGES); edgee; forall(e,l){ color_edge(e,green); nodev=source(e); nodew=target(e); if(!p->same_block(v,w)){ T.append(e); color_edge(e,blue); color_node(v,blue); color_node(w,blue); P->union_blocks(v,w); }else{ color_edge(e,red); } }returnt; } Figure4:Kruskal'salgorithmforMSTinitsoriginal(LEDA-like)versionanditsanimation incatai.

Figure5:Theanimationstartsonagraph.Threealgorithmsareoeredbythealgorithm servers:scc1,kruskalandprim:theuserselectskruskal.allverticesinthegraphareoriginallycoloredyellow,andalledgesarecoloredblack. hand.startingfromtheoriginalcode,wereplacethestandardgraphandpartitionwiththeir animatedcounterparts.next,weaddsomeanimation-speciccodetohighlightthebehavior ofthealgorithm.forinstance,wecanchoosetocolorredtheedgewhichwearecurrently WearenowreadytoshowhowtoanimatetheimplementationofKruskal'salgorithmat itblue,andotherwisewewillcoloritred.endpointsofblueedgesarecoloredblue,sothat considering.ifthisedgewillbeincludedintheminimumspanningtree,thenwewillcolor aforestofbluetreesisvisualizedthroughouttheexecutionofthealgorithm.thisblueforest services(methods)thatcanberequestedbytheend-user.acomparisonbetweenthecodeof willconvergetoaminimumspanningtree.theresultingalgorithmisproposedasamethod theoriginalnon-animatedalgorithmandthecodeofanimatedalgorithmcanbeobtainedfrom ofacontainerobject,i.e.,anmstclass,andthepublicinterfaceofthisobjectwillreportthe Figure4.SomesnapshotsoftheactualanimationarecontainedinFigures5{7.

Figure6:Theanimationatthefourthstep:edges(2,5),(0,5)and(4,0)havebeenexamined andcoloredbluetogetherwiththeirendpoints,andtheedge(6,7)iscurrentlyexaminedand coloredgreen.thestateofthepartitionisshowntotheright:wehavegrownonlyoneblue tree(containingvertices0,2,4,5).alltheotherverticesarestillinsingletontrees. inperspective. Inthissection,wesummarizethebasiccharacteristicsofCatai,andtrytoputitscontributions 4 TheMainFeaturesofCatai certainway,muchofthecontrolistransferredbythealgorithmtotheuser,asatruntimethe andnavigationofdatastructures.consequently,theanimationcanbeusedtrulyasabasic userisallowedadeepcoordinationofthealgorithmanimationthroughthevisualmanipulation Firstofall,wedesignedCataisothatitoersanadvancedsupportforinteraction.Ina especiallywhenusingalgorithmanimationinprogramdevelopmentanddebugging:wecould ontherunningalgorithm.othersystemsthatweareawareofmainlyimplementverysimple putsomedatastructuresinnon-standardorwrongcongurations,andvisualizetheeects GUIforaccessingthealgorithmpropertiesandfunctionalities.Wefoundthisveryuseful formsofinteractions,whichdonotinvolvevisualrepresentationsandonlyallowtheuserto executeaxedsetoffunctionsforeachalgorithm;veryoften,theargumentsofthesefunctions cannotbespeciedbyinteractingwiththeanimation.

havebeenexaminedandcoloredbluetogetherwiththeirendpoints,edge(5,3)hasbeencolored Figure7:Theanimationattheeighthstep:edges(2,5)(0,5),(4,0),(6,7),(4,3)and(1,7) red,andtheedge(3,8)iscurrentlyexaminedandcoloredgreen.thestateofthepartitionis showntotheright:wehavegrowntwobluetrees(onecontainingvertices0,2,3,4,5andthe othercontainingvertices1,6,7).vertices8and9arestillinsingletontrees. mation.indeed,thesystemguaranteesaclosematchbetweenthebehaviorofthealgorithm executionanditsanimatedcounterpart.othersystemsuseaclassicalevent-drivenapproach: animationdirectivesrelyonspecicfunctioncallsspreadalongthealgorithmicsourcecode. Furthermore,Cataioersahighdegreeofadherencebetweenthealgorithmanditsaniwaysautomaticallyassured.Onthecontrary,Cataipresentsanevolutionoftheevent-driven directive.thisisaconditionwhichisleftentirelytotheprogrammer,andthuscannotbeal- Thistecniquedoesnotalwaysassureadherenceastheonlyrelationbetweentheexecutionof approach,asitencapsulateseachanimatedoperatortogetherwiththeanimationlinkina afunctionanditsanimatedvisualizationistheconcomitantinvocationoftherightanimation thealgorithmfollowscloselytheanimation:indeed,theanimationisdirectlyboundtothe eratorinvocationwillbefollowedbytheexecutionofitsanimatedcounterpartandthusthere istheguaranteethateach\step"inthealgorithminduces\step"intheanimation.conversely, containermethod.inthisway,theanimationfollowscloselythealgorithm:eachanimatedop-

methodsofthealgorithm,sothateachuserinteractionisforwardedbytheanimationtothe algorithm,whereittakestheshapeofmethodinvocation. numberofpossiblyverycomplexdatastructures,andwebelievethatcataiscalesupnaturally withrespectbothtothenumberandtothecomplexityofdatastructures.indeedincatai, graphicalobjectsandanimationreferencesareinternallykeptintheanimationservers,so Thenextfeaturewementionisscalability,i.e.,howasystemdealstheanimationofalarge ofdatastructuresrequiresnomoreeorttotheuserthananimatingasmallnumberofthem. Theonlyextraeortrequiredwhenanimatingalargenumberofdatastructuresisforhighly thatusersdonotneedtodealdirectlywiththem.consequently,animatingalargenumber interactiveanimations,asinthiscasetheusermustspecifywhicharetheinteractionsand thedatastructuresinvolvedwiththeseinteractions.thisismuchmorecomplicatedforother thesesystemsclearlygrowswiththenumberofdatastructuresinvolved.asforscalabilitywith alltheallocatedgraphicalobjectsandtheircorrespondencewithdatastructures.theeortin systems,whichrequire,apartfromwritingtheanimationcode,someadditionaleortstotrack respecttothecomplexityofdatastructures,othersystemsdonotseemtoprovideaspecic solutiontothisproblem:itseemstousthattheuserneedstowritecomplexanimationcode assemblingtheminanobject-orientedfashionedmanner. complexdatastructurescanbebuiltbyrstanimatingsimplerdatastructuresandthenby inordertoanimatecomplexdatastructures.incatai,mostofthetimestheanimationof ofsettingupananimation.indeed,itoersagoodtrade-obetweenthelevelofreusability, theaveragetimeittakestoanon-sophisticatedprogrammertodevelopananimation,andthe basicknowledgerequiredtousethesystem.weemphasizeherethatweconsiderthecasewhere Inourpersonalexperience,Cataiwasaneectivetoolforreducingtheoverallcomplexity important,asinmanycasestasksthataretrivialfortheknowledgeableandexpertprovider ofasystemmightbeverydiculttoachieveforthetypicaluser.ifonewishestoanimatean algorithmwithcatai,therearethreepossiblescenarios: auserofthesystem(nottheprovider!)wishestosetupananimation.thisisparticularly (B)Onlytheanimationlibraryisavailable; (A)Nosupportisavailable(noanimationlibraryandnoanimateddatastructures). (C)Theanimationlibraryandananimatedimplementationoftheunderlyingdatastructuresarealreadyavailable; animationlibrariesfromscratch:thisimpliesamedium/highdevelopmenttime(perhapscomparabletothedevelopmenttimerequiredbyothersystems),andabasicknowledgeofc++, JavaandCorba.Incase(B),whichwebelievewillbetheaveragecaseforaCataiuser,the maintaskistoderivetheanimateddatastructuresfromthenon-animatedcode.asitcanbe inferredfromfigures3and4,inthiscasethedevelopmenttimeistypicallylow/medium,and onlyamoderateknowledgeofc++isrequired.finally,incase(c)theanimationwithcatai isstraightforward:onlyasimpleknowledgeofc++isrequiredtocomposetheexistingpieces, andthetimerequiredtodeveloptheanimationisextremelylow(ifany),asitcanbeseenfrom placedanywhereprovidedthattheyshareacommunicationchannel.perhapsevenmorethan Mocha,Cataiheavilyreliesondistributedobjects,whichhavebeendevelopedusingaCORBA Figure4. Incase(A)whennosupportforthedatastructuresisavailable,theuserhastocreate SimilarlytoMocha[2],Cataiisatrulydistributedarchitecture:allitscomponentscanbe

compliantprotocol.inaddition,thehttpprotocolisusedfordownloadingthejavaclasses neededandabsdsocketmessageinterfaceisusedforthecommunicationaddressedbyan algorithmservertowardstheanimationserver.theoverallcommunicationloadistypicallylow alowcostusingshortmessages:basicallyonlyinvocationofmethodsonremoteobjects.this sincealltheanimatedscenesresideonanimationclientsandtheiractivationcanbeobtainedat givesaneectivesupporttotheanimationofdistributedalgorithms,whichcanbenaturally tioncanbeexportedremotelywhiletheanimatedprogramismaintainedonasafehost,and implementedwithmultiplealgorithmservers. overallsecurity,ascommunicationprotocolsexportlimitedresourcesandonlytothepoolof animationcomponents. Finally,asmanyothersystemsCataioersagooddegreeofcodeprotection,asananima- inmanyareas,includingeducationalsupportespeciallyfordistancelearning.infact,many makeinformationpubliclyavailable,theworldwidewebhasalreadyshownitslargepotential ofintegrationintheworldwideweb(www)environment.althoughoriginallydevelopedto WeconcludethissectionbymentioninganotherfeatureofCatai,whichrelatestoitsease educationalsystemsbasedonwwwhavebeenrecentlydevelopedandtheeducationaluseof WWWhasattractedalotofattention(seee.g.,[16,19]).ThepotentialofWWWasaneducationaltoolhavealsobeenstudiedintheareaofComputerSupportedCooperativeWorkgroup bythecurrentnetworktechnologytocooperativeworkgroup.inbothareas,thereisagreat (CSCW)[1,13,14,15,17,23,24]whichingeneralisconcernedwiththenewpossibilitiesoered studentsandinstructors.infact,theaspectofthe\ordinary"classroomthatliesintheinteractionsbetweenthestudentsandtheinstructorandamongstudentsthemselveshasstimulated ThearchitectureofCataiisnaturallyintegratedintheWeb:infactWWWservers(HTTP alotofworkonseveralsystemsfor\sharedworkgroup"onwww[4,5,11,18,21,26,32]. server)andwwwclients(browsers)canbemapped,respectively,tocataianimationservers andanimationclients,andananimationclientcanbeevenusedasanappletwithinanhtml page(whiletheanimationservercanbemanagedbyawwwserver). dealofattentionontheusageofwwwforafullyintegratedcooperativeenvironmentbetween thevisualizationofthealgorithmscooperativelywithotherstudentsorwiththeinstructor. canlearnaparticularsetofalgorithms,seesomeoftheirimplementations,andinteractwith educationalsystems,whereastudentcaninteractwithalgorithmiccourseware:heorshe TheintegrationofCataiwiththeWebcanbeextremelyusefulinthedesignofintegrated Cataicanallowaneasy,ecient,distributedandinteractiveaccesstosuchprocesses.For repositoriesstoredsomewhereelse,suchinthecaseofreal-timemonitoringprocesses:indeed instance,wecaneasilyaddmethodstoanimateddatastructuresandalgorithmsthatallowfollowing\links"(url's)totherestofthewww.asanexample,wearecurrentlyinvestigating aparticularapplicationwhichisconnectedtomonitoringnetworkcongestionsviatheweb:we haveanetwork,andwewishtondtheshortestpath(orsomeotherparticularpaths)toa setofdestinations.insomecases,shortestpathsarenotdeeplyinformative,andonewould liketoobtainatrulyreal-timeinteractionwiththenetwork,i.e.,byclickingonalinktoget informationonthecurrenttracpatternonthatlink(e.g.,roadconditions,linkcongestions, Moreover,Cataioersthepossibilityofvisualizingalgorithmsthatcanberelatedtodata etc).aprototypeofthiskindseemstorequirenotmucheortwithcatai.

loweortrequiredforsettingupanewanimation,andthepossibilityofembeddinganimation 5Wehavepresentedanewsystemforalgorithmanimation,whosemainfeaturesincludeatypical Conclusions tweentwodierentviewpoints:theprogrammer'sperspective,whichtypicallyincludesthegoal clientsinstandardjava-enabledwebbrowsers.webelievethistobeagoodcompromisebe- believethattakingintoaccountboththesetwoviewsisimportant,astheprogrammerand theuserofananimationsystemcanoftenbeunitedinthesameperson:e.g.,aprogrammer ofanimatingquicklyandecientlyagivenalgorithmiccode,andtheuser'sperspective,which clearlybenetsfromhighlyinteractive,easy-to-use,distributedandcooperativeinterfaces.we studentoraninstructorwishingtosetupandinteractwithhis/heranimationofanalgorithm. wishingtousealgorithmanimationtovisualizeanddebughis/herownalgorithmiccode,ora References [1]W.Appelt,U.Busbach.\TheBSCWSystem:AWWWbasedApplicationtoSupportCooperationofDistributedGroups".GMD-GermanNationalResearchCentreforInformationTechnology.SanktAugustin, [3]J.E.Baker,I.F.Cruz,G.Liotta,andR.Tamassia.\AlgorithmanimationovertheWorldWideWeb".In [2]J.E.Baker,I.F.Cruz,G.Liotta,andR.Tamassia.\TheMochaalgorithmanimationsystem".InProc. Germany.1996. [4]R.Bentley,T.Horstmann.\SupportingcollaborativeinformationsharingwiththeWorldWideWeb:the Proc.Int.WorkshoponAdvancedVisualInterfaces,pp.203-212,1996. Int.WorkshoponAdvancedVisualInterfaces,pp.248-250,1996. [5]R.Bentley,U.Busbach,K.Sikkel.\TheArchitectureoftheBSCWSharedWorkspaceSystem".In: stituteoftechnology,cambridge(usa)1995. BSCWSharedWorkspacesystem".WorkshoponWorldWideWebandCollaboration,MassachusettsIn- [6]Brown,M.H.,Sedgewick,R..\ASystemforAlgorithmAnimation".InProceedingsofACMSIGGRAPH [7]Brown,M.H.,Sedgewick,R.\TechniquesforAlgorithmAnimation".IEEESoftware,2(1):28-39,1985. `84,(pp.177-186).NewYork:ACM.1984 ProceedingsoftheERCIMworkshoponCSCWandtheWeb.SanktAugustin,Germany,February1996. [9]Brown,M.H.\Zeus:ASystemforAlgorithmAnimationandMulti-ViewEditing".InProceedingsofIEEE [8]Brown,M.H.\AlgorithmAnimation".NewYork:MITPress. [10]M.H.Brown,J.Hershberger.\ColorandSoundinAlgorithmAnimation".Computer,n.25.pp.52-63.1991. WorkshoponVisualLanguages,(pp.4-9).NewYork:IEEEComputerSocietyPress.Seealso:Brown,M. [11]D.M.Chiu,D.Grin.\WorkgroupWebForum:ToolsandapplicationsforWWW-basedgroupcollaboration".WorkshoponWorldWideWebandCollaboration,MassachusettsInstituteofTechnology,Cambridge H.\Zeus:ASystemforAlgorithmAnimationandMulti-viewEditing".(ResearchReportNo.75).DEC SystemsResearchCenter,PaloAlto,CA. [12]A.vanDam.\TheElectronicClassrom:Workstationsforteaching".Intnl.JournalofMan-MachineStudies"..21(4),pp.353-363,1984. oftheercimworkshoponcscwandtheweb.sanktaugustin,germany,february1996. (USA)1995. [13]D.Decouchant,M.RSalcedo.\Alliance:AStructuredCooperativeEditorontheWeb".In:Proceedings [14]P.DeBra,A.Aerts.\Multi-UserPublishingintheWeb:DRess,ADocumentRepositoryServiceStation". [15]A.Dix.\ChallengesandPerspectivesforCooperativeWorkontheWeb".In:ProceedingsoftheERCIM In:ProceedingsoftheERCIMworkshoponCSCWandtheWeb.SanktAugustin,Germany,February workshoponcscwandtheweb.sanktaugustin,germany,february1996.

[17]J.I.Griera.\ManagingCSCW".In:ProceedingsoftheERCIMworkshoponCSCWandWeb.Sankt [16]D.Dwyer,K.Barbieri,H.M.Doerr.\CreatingaVirtualClassroomforInteractiveEducationontheWeb". [18]T.Gruber.\CollaboratingaroundSharedContentontheWWW".WorkshoponWorldWideWeband Augustin,Germany,February1996. Proc.ofWWW95,ThirdInternationalConferenceonWorldWideWeb. [19]B.Ibrahim,S.D.Franklin.\AdvancedEducationalUsesoftheWorldWideWeb".Proc.ofWWW95,3rd [20]J.B.Kruskal.\Ontheshortestspanningsubtreeofagraphandthetravelingsalesmanproblem".Proc. Collaboration,MassachusettsInstituteofTechnology,Cambridge(USA)1995. InternationalConferenceonWorldWideWeb. [22]K.MehlhornandS.Naher:\LEDA:APlatformforCombinatorialandGeometricComputing",CommunicationsoftheACM,38(1),96{102,1995. [url:http://www.w3.org/pub/www/collaboration] [21]K.MacArthur.\Collaboration,KnowledgerepresentationandAutomatability". Amer.Math.Soc.7(1956),pp.48{50. [23]D.R.Newman,\HowcanWWW-basedgroupwarebettersupportcriticalthinkinginCSCL".In:ProceedingsoftheERCIMworkshoponCSCWandtheWeb.SanktAugustin,Germany,February1996. [24]R.Peters,C.Neuss.\CrystalWeb{ADistributedAuthoringEnvironmentfortheWorldWideWeb".Proc. [25]Price,B.A.,Baecker,R.M.,andSmall,I.S.\APrincipledTaxonomyofSofwareVisualization".Journalof [26]M.Roscheisen,T.Winograd.\GeneralizedAnnotationsforSharedCommenting,ContentRating,and ofwww95,3rdinternationalconferenceonworldwideweb. VisualLanguagesandComputing4(3):211-266. [27]J.T.Stasko.\Tango:AFrameworkandSystemforAlgorithmAnimation".IEEEComputer,23(9),pp. OtherCollaborativeUsage".WorkshoponWorldWideWebandCollaboration,MassachusettsInstituteof Technology,Cambridge(USA)1995. [29]J.T.Stasko.\SupportingStudent-BuiltAlgorithmAnimationasaPedagogicalTool".InProc.ofofthe [28]J.T.Stasko,E.Kraemer.\AMethodologyforBuildingApplication-SpecicVisualizationsofParallelPrograms".Tech.Rep.GIT-GVU-92-10.(ftp://ftp.cc.gatech.edu/pub/gvu/tech-reports/92-10.ps.Z) 27-39,1990. [30]SoftwareVisualization.JohnT.Stasko,JohnB.Domingue,MarcH.Brown,andBlaineA.Price(Eds.). ACMSIGCHI'97ConferenceonHumanFactorsinComputingSystems,Atlanta,GA,USA.1997. [31]R.E.Tarjan,J.vanLeeuwen.\Worst-caseanalysisofsetunionalgorithms.J.Assoc.Mach.31(1984), [32]S.Virdhagriswaran,M.Webb,J.Mallatt.\SharedInformationSpace:AnInteractive,CollaborativeSystem MITPress,1998. EnablementPerspective".WorkshoponWorldWideWebandCollaboration,MassachusettsInstituteof Technology,Cambridge(USA)1995. pp.245{281.