6
See discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/221107920 A focused learning environment for Eclipse Conference Paper · January 2006 DOI: 10.1145/1188835.1188851 · Source: DBLP CITATIONS 2 4 authors, including: Some of the authors of this publication are also working on these related projects: Personal Analytics View project PhD Thesis View project Gail Murphy University of British Columbia - Vancouver 187 PUBLICATIONS 9,590 CITATIONS SEE PROFILE All content following this page was uploaded by Gail Murphy on 02 June 2014. The user has requested enhancement of the downloaded file.

A Focused Learning Environment for Eclipse - … · A Focused Learning Environment for Eclipse ... (JSF) as well as ... Creating a cheat sheet is time intensive for two reasons

Embed Size (px)

Citation preview

Page 1: A Focused Learning Environment for Eclipse - … · A Focused Learning Environment for Eclipse ... (JSF) as well as ... Creating a cheat sheet is time intensive for two reasons

See discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/221107920

A focused learning environment for Eclipse

Conference Paper · January 2006

DOI: 10.1145/1188835.1188851 · Source: DBLP

CITATIONS

2

4 authors, including:

Some of the authors of this publication are also working on these related projects:

Personal Analytics View project

PhD Thesis View project

Gail Murphy

University of British Columbia - Vancouver

187 PUBLICATIONS   9,590 CITATIONS   

SEE PROFILE

All content following this page was uploaded by Gail Murphy on 02 June 2014.

The user has requested enhancement of the downloaded file.

Page 2: A Focused Learning Environment for Eclipse - … · A Focused Learning Environment for Eclipse ... (JSF) as well as ... Creating a cheat sheet is time intensive for two reasons

A Focused Learning Environment for Eclipse

Izzet Safer and Gail C. MurphyDepartment of Computer Science

University of British Columbia201 - 2366 Main Mall

Vancouver, BC, V6T 1Z4, Canada{isafer, murphy}@cs.ubc.ca

Julie Waterhouse and Jin LiIBM Toronto Laboratory8200 Warden Avenue

Markham, ON, L6G 1C7, Canada{juliew, jinli}@ca.ibm.com

ABSTRACTThe support available in Eclipse to help software developerslearn complex APIs and development tools is inadequate;the support is largely passive and the support typically op-erates alongside the resources associated with normal soft-ware development tasks, thereby overloading the environ-ment with additional complexity. In this paper, we describean approach that enables a dynamic learning process withinthe context of a developer’s Eclipse work environment. Ourapproach integrates a mechanism for explicit support of alearning process flow (cheat sheets) with a mechanism forexplicit representation of different work contexts (Mylar).We have implemented a working prototype of our approach.We found it relatively easy to integrate cheat sheets withMylar through available extension points. We describe ourarchitecture and report on some limitations and missing fea-tures in the existing plug-ins we discovered as we developedour prototype.

Categories and Subject DescriptorsH.5.2 [Information Systems]: User Interfaces - Training,help, and documentation—User-centered design

General TermsUser Assistance

KeywordsCheat Sheet, Mylar

1. INTRODUCTIONIncreasingly, software development involves writing source

code with complex APIs, and using tools to generate andtransform source code artifacts. For example, building anapplication according to a service-oriented architecture (SOA)

Copyright c©2006 by the Association for Computing Machinery, Inc. andIBM Canada Ltd. Permission to make digital or hard copies of part or all ofthis work for personal or classroom use is granted without fee provided thatcopies are not made or distributed for profit or commercial advantage andthat copies bear this notice and the full citation on the first page. Copyrightsfor components of this work owned by others than ACM must be honored.Abstracting with credit is permitted. To copy otherwise, to republish, topost on servers, or to redistribute to lists, requires prior specific permissionand/or a fee. Request permissions from Publications Dept., ACM, Inc., fax+1 (212) 869-0481, or [email protected] Workshop at OOPSLA October 22-26, 2006, Portland, Oregon, USA.Copyright 2006 ACM X-XXXXX-XX-X/XX/XX ...$5.00.

involves the use of APIs such as JavaTMServer Faces (JSF)as well as prescribed processes to model, transform, con-struct, assemble, test, and deploy several types of program-ming artifacts involved in such an application.

Learning to use these APIs and tools often requires a de-veloper to painstakingly follow steps laid out in documen-tation. Sometimes, the developer may have computerizedsupport to aid this process, such as wizards or online help.Although such support can make it easier for the softwaredeveloper to work through the learning process, it is all pas-sive and is inadequate to guide the developer through com-plex end-to-end scenarios. In some domains, it is possibleto introduce specialized environments or tools to aid thelearning process. For instance, many systems have been de-veloped to aid students in learning subjects (e.g., [1]). Incontrast, in software development, a user needs to learn anAPI or tool in the context of the same environment in whichhe or she normally works, as the learning requirements aredriven directly from the tasks he or she is performing.

In this paper, we present an approach that supports a dy-namic learning process within the context of a developer’swork environment. Our focused cheat sheets approach inte-grates a mechanism for explicit support of a learning processflow with a mechanism for explicit representation of differ-ent work contexts. This integration presents the developerwith a means of stepping through and revisiting parts ofthe learning process, and focuses the environment by pre-senting only the information related to a particular step.Moreover, the integration allows the learning process to ap-pear as if it is occurring in a separate environment since thefocusing mechanism hides the full complexity of the normalwork environment during the learning activity. We havebuilt a proof-of-concept prototype for this approach withinthe Eclipse IDE in which we use cheat sheets1 to supportthe learning process flow and Mylar2 to support the explicitrepresentation of work contexts.

We begin by demonstrating how the learning process canbe improved for a developer through the integration of thesetwo technologies (Section 2). We then describe the architec-ture and mechanics behind the integration (Section 3) beforediscussing how these technologies both supported and hin-dered the integration (Section 4). We briefly discuss relatedefforts (Section 5) before summarizing our focused learningenvironment (Section 6).

1http://help.eclipse.org/help32/index.jsp?topic=/org.

eclipse.platform.doc.user/reference/ref-cheatsheets.htmverified 15/11/062http://www.eclipse.org/mylar/ verified 15/11/06

Page 3: A Focused Learning Environment for Eclipse - … · A Focused Learning Environment for Eclipse ... (JSF) as well as ... Creating a cheat sheet is time intensive for two reasons

(a) Using cheat sheets in Eclipse 3.2 leads to a cluttered learning environment

(b) Our focused learning environment makes learning tasks explicit and displaysonly the resources relevant to a learning task

Figure 1: Two views of a developer’s working environment: a) without focus and b) with focus

2. EXAMPLEConsider the case of a software developer who must learn

how to combine a particular set of technologies to completea development task. To help the developer (user) in thisprocess, Eclipse provides support for a largely passive learn-ing approach called cheat sheets. A cheat sheet consists of anumber of steps3; steps can have sub-steps, enabling a cheatsheet to be structured as a tree. A user follows a cheat sheetby opening a step, which typically displays text about theitem and either directs the user to perform commands man-ually or presents a link that automatically runs commandsfor the user. Steps can be marked complete, skipped, orredone. Despite all of its nice features, a cheat sheet, alongwith other learning approaches including help and tutorials,

3We use the term step for a cheat sheet task and reserve theterm task to refer to Mylar tasks.

is passive in that it does not help keep a learner focused onthe learning task. A user must spend extra effort to stayfocused and to filter out the resources related to a learningtask at hand.

Figure 1-(a) shows a user working through a cheat sheetthat presents directions about creating a Web application;the particular Web application used as an example is forschool scheduling.4 The cheat sheet (shown in the upperright) walks the user through the creation of an administra-tive view to manage a catalog of courses offered, a studentview to build a schedule, and a main page with links tothe views. Notice the cluttered areas marked with * on thescreen in Figure 1-(a); this clutter arises because the learn-

4This cheat sheet is an extension of a WTP TutorialCreating a School Schedule Web Application http://www.eclipse.org/webtools/community/tutorials/SchoolSchedule/BuildingAScheduleWebApp.html verified 15/11/06

Page 4: A Focused Learning Environment for Eclipse - … · A Focused Learning Environment for Eclipse ... (JSF) as well as ... Creating a cheat sheet is time intensive for two reasons

ing environment is not well-separated from the developmentenvironment, causing the user’s own projects and views tobe intermixed with the new project that is the subject of thecheat sheet. This intermixing with existing work and inclu-sion in the workspace of all cheat sheet steps performed todate makes it difficult for the user to see the effects of aparticular step and to review a step once it is completed.

Figure 1-(b) shows a user working with our enhancedcheat sheet environment. In this environment, the stepsof the cheat sheet have been overlaid with (Mylar) tasks,groups of steps that share a common context of resourcesand relationships. For this application, we have overlaidfive tasks: creating and configuring the Web project, cre-ating the course catalog, designing user interfaces, buildingapplication logic, and creating server side logic. When theuser starts working with the cheat sheet, the task associatedwith the first step is created automatically (Figure 1-(b),#1) and the Eclipse user interface is focused on the resourcesassociated with that step. In this case, the SchoolSchedule

project and WebContent folder are displayed in the ProjectExplorer, instead of other resources created with the projectassociated with this cheat sheet. Also, the standard J2EEperspective is modified to show only the useful views.

As the user moves through the steps of the cheat sheet,new subtasks are created (Figure 1-(b), #25) and the Eclipseuser interface is refocused accordingly (Figure 1-(b), #36).If a user wishes to revisit a step, it is sufficient to select thestep and click on Review. This action reactivates the corre-sponding Mylar task, focusing the UI again on the resourcesrelevant to the step.

By integrating cheat sheets and Mylar functionality, weare able to provide a dynamic learning environment thatallows users to focus on their learning while completing aninteractive tutorial within their existing environment.

3. THE FOCUSED LEARNINGENVIRONMENT

Our learning environment is a plug-in that includes threecomponents (the UI Manager, the Context Augmentor, andthe Event Pattern Matcher) and that integrates two exist-ing plug-ins within Eclipse: cheat sheets and Mylar. TheUI Manager shows and hides views so that only those viewsrelevant to the current cheat sheet task are visible. TheContext Augmentor fills in a Mylar task context with rele-vant resources. Finally, the Event Pattern Matcher matchessequences of events in the user interaction so that the toolcan respond with suggested next steps.

Figure 2 portrays the architecture of the environment,specifying the components, the role each component plays inthe environment, and their interactions7. Our contributionis presented in solid lines whereas the existing technologiesare shown in dashed lines.

3.1 Producing an Interactive TutorialCreating a cheat sheet is time intensive for two reasons.

5The tasks that are completed have their titles struck outas per standard Mylar functionality.6The children of Admin.jsp and Student.jsp in the ProjectExplorer tree are mock-ups as if there existed Mylar JSPstructure and UI bridges [5].7Boxes in the figure describe the roles, and the arrows pointthe direction of the message flow.

Figure 2: Architecture of the Learning Environment

First, conceptualizing stories with a clear-cut division ofsteps requires expertise in user assistance. Second, eventhough the cheat sheets are simple XML documents, it is apainstaking job to place the content in between the abun-dant number of XML tags. We leave the resolution of thefirst issue to cheat sheet designers. However, the secondproblem can be mitigated through tool support. Eclipse 3.3will contain cheat sheet authoring tools8 to create the storieseasily.

Designing a focused cheat sheet requires a small amountof extra work on top of creating a cheat sheet. The cheatsheet designers have to make the tutorial communicate withMylar, UI Manager, Context Augmentor and Event PatternMatcher in the appropriate cheat sheet steps (Figure 2-A,B).

It is important to distinguish cheat sheet steps and Mylartasks as two different concepts; one cheat sheet task may ormay not map directly to a Mylar task. Currently, there isno mechanism to determine automatically how Mylar tasksshould span cheat sheet steps; the designer of the focusedcheat sheet must determine this mapping. To complete thefocused learning support, the designer may have to prepare alist of views that should be shown or hidden during differenttasks, figure out which resources cheat sheets are interestedin to augment a task’s context, and finally create patternsof events to compare with what the user is performing.

3.2 ArchitectureWe have integrated cheat sheets, Mylar, and our plug-in

through commands and command handlers. Eclipse com-mands are abstract representations of semantic behaviorsimplemented by the command handlers. The following sec-tions present the components in the architecture of our fo-cused learning environment and how each component canbe reached using commands.

3.2.1 MylarMylar is a task-focused UI for Eclipse that reduces the

information shown in Eclipse to just the information relevantto the task at hand [4] (Figure 2-C). Mylar determines whatis relevant for a task based on the interactions performed bya user as part of the task [5] (Figure 2-D). Mylar supports

8http://download.eclipse.org/eclipse/downloads/drops/

S-3.3M3-200611021715/eclipse-news-M3.html verified 15/11/06

Page 5: A Focused Learning Environment for Eclipse - … · A Focused Learning Environment for Eclipse ... (JSF) as well as ... Creating a cheat sheet is time intensive for two reasons

task switching: when a task is switched, the contents ofEclipse views are updated according to the new task context.

Mylar tasks and subtasks can be created, activated, deac-tivated, marked complete, and marked incomplete throughcommands we have created. For example, the following com-mand may be placed in a cheat sheet step to create a newMylar task:

<command autorun = "true" serialization = "org.

eclipse.mylar.tasklist.commands.addNewLocalTask

(taskName=School Schedule Application,

taskHandle=sschedapp-1,categoryName=Cheat Sheets,

resetContext=false,activateTask=true)"/>

Similarly, a Mylar subtask can be created by specifying aparent task handle instead of a task category name:

<command autorun = "true" serialization = "org.

eclipse.mylar.tasklist.commands.addNewLocalSubTask

(taskName=Create Course Catalog,taskHandle=

sschedcatalog-2,parentHandle=sschedapp-1,

resetContext=false,activateTask=true)"/>

Note that in order to avoid inconsistencies, we actuallyuse placeholders instead of handles and task names.

3.2.2 UI ManagerWe took the idea of Mylar one step further by filtering

the views themselves. Even though Eclipse perspectives en-able a set of views to be easily switched, some of the viewswithin a perspective may still may be unrelated to the cur-rent task, thus taking up valuable screen real estate. Our UIManager enables views within a perspective to be shown orhidden depending upon the context of the work being per-formed (Figure 2-E). At present, the UI Manager performsthis functionality statically, reading a configuration file todetermine the appropriate views to show. Future work mayinvolve making this adaptive user interface [2] dynamic.

The UI Manager can be invoked through a command bysupplying the path of a view configuration file as the pa-rameter. We are not using the existing Show View commandregistered in Eclipse Workbench because the complementarycommand to hide views does not exist. In addition, readinga configuration file makes the design simpler and reusable.

3.2.3 Context AugmentorMylar creates a context — a set of resources and relation-

ships relevant to the user’s task — based on how the userinteracts with the system’s resources and with Eclipse. Acontext for a new Mylar task typically starts empty. To sup-port a learning environment, we needed the ability to seeda task context, adding resources and relationships known tobe of interest for the learning step being presented.

Our Context Augmentor plays this role, adding resourcesspecified by the creator of the tutorial to the specified task’scontext as if the resources had been explicitly selected by theuser (Figure 2-F). This imitation of an interaction event in-creases the degree-of-interest of the resources, making thempass beyond the threshold required for Mylar to displaythem in the views.

When the Context Augmentor executes, it is providedas parameters a Mylar task handle and a configuration filepath. Specifying a task handle in the configuration file al-lows resources of interest to be inferred, rather than specify-ing them one by one; the resources that are displayed in the

views when that task is active are automatically added tothe target task’s context. This idea is similar to cloning taskcontexts, but discards the interaction history of the originaltasks.

The Context Augmentor can be applied to a Mylar taskat any time. Applying the augment more than once doesnot reset the existing context, but continues to augment thecontext with new resources.

3.2.4 Event Pattern MatcherPattern matching is used to detect when a user has per-

formed a recognized sequence of steps. When a pattern isdetected, the learning environment can react, for exampleby suggesting that a user advances to the next step or evento the next cheat sheet (Figure 2-G).

We use sequences of interaction events performed by theuser (selections, edits, and commands) to check whether apredefined event pattern occurs or not (Figure 2-H). We de-signed the event pattern configuration file with the sameexternalization as a task context. As a result, an event pat-tern can be created easily by performing the desired actionson a temporary Mylar task, and then the required interac-tion information can be copied to a separate event patternconfiguration file.

The Event Pattern Matcher command takes three param-eters: the path to the event pattern file, the qualified nameof the class that will be invoked via reflection when thereis a match, and the handle of Mylar task that must be ac-tive during pattern matching. The pattern matcher can alsospan multiple tasks; if the handle to a Mylar task is omittedas a parameter, the matcher will be valid for any active task.

4. DISCUSSIONThe most significant factor in facilitating the integration

of the two existing plug-ins was the ability to use modular,model-view-controller style commands contributed throughEclipse’s org.eclipse.ui.commands extension point. Byusing commands, we obtained a loose coupling between cheatsheets and Mylar. However, we also encountered a few is-sues in cheat sheets and the Eclipse platform that requiredspecial attention.

4.1 Command support in cheat sheetsBy design, cheat sheets can invoke only one command

or action per step. However, to support our approach, weneeded the ability to execute multiple commands. For exam-ple, to support the focusing of the UI on the current task,three commands must execute: one to modify the views,one to create a Mylar task, and one to augment the task’scontext.

Invoking multiple commands per cheat sheet step revealeda missing feature in the cheat sheet API: the ability to in-voke commands automatically. Filling a step with multiplecommands is not a solution by itself; the commands shouldrun without requiring a selection by the user. In our cur-rent solution, we modified the cheat sheet parser and itemstructure to allow more than one command per step, andintroduced the autorun attribute to be able to invoke thesecommands automatically as soon as the user reaches thatstep. On the other hand, we preserved the regular struc-ture; there can be only one command assigned to the Clickto Perform link.

Page 6: A Focused Learning Environment for Eclipse - … · A Focused Learning Environment for Eclipse ... (JSF) as well as ... Creating a cheat sheet is time intensive for two reasons

4.2 ConsistencyWe noticed two features lacking in the wizard structures

of the Eclipse platform. First, when wizards are opened us-ing the org.eclipse.ui.newWizard command, there is noparameter to set the current project as the container for thenewly created file. Instead, users have to manually choosethe project each time. Second, new file creation wizards donot permit the name of the file to be assigned to a prede-fined value, nor return the path to the newly created file.For these reasons, cheat sheet developers may not be surewhether a user entered the right names or not. In the case ofa mistake, it is likely for the story to be inconsistent and forthe context augmentors and event pattern matchers to fail,causing our focused environment to become inconsistent.

We tried to cover a part of this problem by having con-sistency in the presentation and usage of resource names.When the cheat sheet creator advises the user to create andfill the contents of a file named Admin.jsp, the exact samehandle should appear in the story of the cheat sheet, contextaugmentor and event pattern description files. To achievethis situation, we introduced placeholders and a property filereader. While parsing the cheat sheet, reading the contextaugmentor and event pattern configuration files, a propertyfile is used and the placeholders are replaced with their ac-tual values. Beyond our approach, we can only advise cheatsheet creators to trust the users until the features lacking inthe wizards are implemented.

5. RELATED WORKA substantial amount of work has been carried out on

learning environments in the fields of artificial intelligenceand human computer interaction. For instance, COACH [8]is a learning environment for Lisp that watches user actionsto create an adaptive user model. Then, the model is ana-lyzed to reason about how to provide personalized commentswithout interfering with the user’s actions.

On the human computer interaction side, Kelleher et al.developed a stencil-based interaction technique on procedu-ral tutorials to draw users’ attention to the correct compo-nent in the interface, in order to prevent users from inter-acting with unrelated components [3]. According to theirstudy, users completed the tutorials with fewer errors and26% faster. In our approach, Mylar serves as a stencil tothe UI by focusing on the related parts of the project andof the resources.

There is also a significant amount of related research withinthe Eclipse community. GILD [9] and Penumbra [7] trans-form Eclipse into a simple collaborative learning environ-ment for novice Java programmers, by adding their ownperspectives. GILD and Penumbra perspectives just showenhanced versions of common views, but none of them fo-cuses the UI adaptively, like Mylar does. Kojouharov et al.created JTutor [6], a set of Eclipse plug-ins to create and re-play cheat-sheet-like tutorials. JTutor focuses the UI on thetutorial steps and on the editor containing initial code pre-pared by a developer. The code is then gradually modifiedfor the users as they advance through the steps manually.By automating the replay process, JTutor aims to representthe relevant and important parts of the code for the users.

6. CONCLUSIONWe have developed an approach to link the flow of a com-

plex task, in this case a learning task, with task contextinformation. This approach allows a user to step throughan end-to-end scenario and focuses the user’s learning envi-ronment by presenting just the information relevant to theparticular step.

7. ACKNOWLEDGMENTS ANDTRADEMARKS

This research was funded by IBM. The views expressedin this paper are those of the authors and not necessarily ofIBM Canada Ltd. or IBM Corporation.

IBM is a registered trademark of International BusinessMachines Corporation in the United States, other countries,or both.

Java and all Java-based trademarks are trademarks of SunMicrosystems, Inc. in the United States, other countries, orboth.

Other company, product, and service names may be trade-marks or service marks of others.

8. REFERENCES[1] C. Conati and X. Zhao. Building and evaluating an

intelligent pedagogical agent to improve theeffectiveness of an educational game. In Proc. of the 9thInt’l Conf. on IUI, pages 6–13, 2004.

[2] E. A. Edmonds. Adaptive man-computer interfaces. InM. J. Coombs and J. L. Alty, editors, Computing Skillsand the User Interface, pages 389–426, 1981.

[3] C. Kelleher and R. Pausch. Stencils-based tutorials:design and evaluation. In Proc. of the SIGCHI Conf. onHuman Factors in Computing Systems, pages 541–550,2005.

[4] M. Kersten and G. C. Murphy. Mylar: adegree-of-interest model for ides. In Proc. of the 4thInt’l Conf. on AOSD, pages 159–168, 2005.

[5] M. Kersten and G. C. Murphy. Using task context toimprove programmer productivity. In Proc. of the 14thInt’l Symposium on FSE, pages 1–11, 2006.

[6] C. Kojouharov, A. Solodovnik, and G. Naumovich.Jtutor: an eclipse plug-in suite for creation and replayof code-based tutorials. In Proc. of the 2004 OOPSLAWorkshop on ETX, pages 27–31, 2004.

[7] F. Mueller and A. L. Hosking. Penumbra: an eclipseplugin for introductory programming. In Proc. of the2003 OOPSLA Workshop on ETX, pages 65–68, 2003.

[8] T. Selker. Coach: a teaching agent that learns.Commun. ACM, 37(7):92–99, 1994.

[9] M.-A. Storey, D. Damian, J. Michaud, D. Myers,M. Mindel, D. German, M. Sanseverino, andE. Hargreaves. Improving the usability of eclipse fornovice programmers. In Proc. of the 2003 OOPSLAWorkshop on ETX, pages 35–39, 2003.

View publication statsView publication stats