Gild: An Integrated Learning and Development plug-in for Eclipse



From this document you will learn the answers to the following questions:

What does the Gild environment borrow from web - based learning tools?

What does Gild stand for?

Who is the main focus of the Gild project?

Similar documents
Using Eclipse in Distant Teaching of Software Engineering

A PLATFORM FOR TEACHING DISTRIBUTED SOFTWARE ENGINEERING. Philipp Bouillon, Jens Krinke 1 )

JRefleX: Towards Supporting Small Student Software Teams

S E. Adoption Centric. Engineering CASCON ! Introduction. ! ACRE Live Documents. ! ACRENotes. ! ACRE Persistence Engine Software

Program Visualization for Programming Education Case of Jeliot 3

REMOVING THE DISTANCE FROM DISTANCE EDUCATION: STRATEGIES FOR SUCCESSFUL STUDENT ENGAGEMENT AND COLLABORATION

Meister Going Beyond Maven

Incorporation of an online tutoring tool into programming courses. Abstract

WIRIS quizzes web services Getting started with PHP and Java

How Programmers Use Internet Resources to Aid Programming

A Monitored Student Testing Application Using Cloud Computing

An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases

White Paper. Software Development Best Practices: Enterprise Code Portal

Using Web-based Tools to Enhance Student Learning and Practice in Data Structures Course

A Software process engineering course

An Interactive Tutorial System for Java

SignalDraw: GUI Tool For Generating Pulse Sequences

S E. Adoption Centric. Engineering CASCON ! Introduction. ! ACRE Live Documents. ! ACRENotes. ! ACRE Persistence Engine Software

Preface. Motivation for this Book

In this Lecture you will Learn: Implementation. Software Implementation Tools. Software Implementation Tools

Good games are created through playtesting. Jesse Schell

THE DEVELOPMENT OF A WEB BASED MULTIMEDIA INFORMATION SYSTEM FOR BUILDING APPRAISAL

EUROPEAN ORGANIZATION FOR NUCLEAR RESEARCH CERN ACCELERATORS AND TECHNOLOGY SECTOR

CLASSIFICATION OF TOOLS FOR USE IN INTRODUCTORY PROGRAMMING COURSES

Enterprise Service Bus

Chapter 5. Regression Testing of Web-Components

New Generation of Software Development

Law Conferencing uses the Webinterpoint 8.2 web conferencing platform. This service is completely reservationless and available 24/7.

Projectory A Framework for teaching Object Oriented Design and Object Oriented Programming

Augmenting software development with information scripting

Tutorial 5: Developing Java applications

FileMaker: Complete Platform to Create, Deploy, and Manage Custom ipad and iphone Solutions for Business

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

Editors Comparison (NetBeans IDE, Eclipse, IntelliJ IDEA)

Virtual Team Collaboration Glossary

EVALUATING SOFTWARE ENGINEERING PRACTICES IN PALESTINE

Integrated Online Courseware for Computer Science Courses

Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal

Software Engineering Best Practices. Christian Hartshorne Field Engineer Daniel Thomas Internal Sales Engineer

An Easier Way for Cross-Platform Data Acquisition Application Development

Software Development Kit

On Preparing Students for Distributed Software Development with a Synchronous, Collaborative Development Platform

MOOCviz 2.0: A Collaborative MOOC Analytics Visualization Platform

Computer Science Course Descriptions Page 1

A web conferencing solution to meet the needs of work based learners

Adding Panoramas to Google Maps Using Ajax

IBM Operational Decision Manager Version 8 Release 5. Getting Started with Business Rules

A Case Study on Model-Driven and Conventional Software Development: The Palladio Editor

ASCETiC Whitepaper. Motivation. ASCETiC Toolbox Business Goals. Approach

Guidelines for Minimum Standards for Learning Management System (LMS) Unit Design

Leading Adobe Connect meetings

Running head: CONCEPTUALIZING INTELLIGENT AGENTS FOR TEACHING AND LEARNING. Conceptualizing Intelligent Agents For Teaching and Learning

<Insert Picture Here> Application Testing Suite Overview

IBM DB2 XML support. How to Configure the IBM DB2 Support in oxygen

Our mission is to develop and to offer innovative customer interaction.

Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB

Rapid Software Development

Software Development In the Cloud Cloud management and ALM

CS 253: Intro to Systems Programming

SCADE System Technical Data Sheet. System Requirements Analysis. Technical Data Sheet SCADE System

Becoming an Online Learner

Avaya Interaction Center

Going Interactive: Combining Ad-Hoc and Regression Testing

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

How leading creative organizations are deploying next generation workflow technology to address current challenges

Concern Highlight: A Tool for Concern Exploration and Visualization

Addressing Mobile Load Testing Challenges. A Neotys White Paper

Thirteen Best Practices for Live Online Training

WHITEPAPER. Managing Design Changes in Enterprise SBM Installations

Main Author: Contributing Authors:

Project-Based Cartographic Learning in an Advanced Technology Classroom. Brian P. Bailey

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Medical Device Design: Shorten Prototype and Deployment Time with NI Tools. NI Technical Symposium 2008

10/17/2014 3:42 PM. BBA Management Information Systems FY14. Closing the Loop: Previous FY Assessment Summary

ProjExec Project Management for IBM Collaborative Platforms. Simple and effective project execution with collaboration for all project needs

USEFULNESS OF LEARNING OBJECTS IN COMPUTER SCIENCE LEARNING

Carnegie Mellon University Master of Science in Information Technology Software Engineering (MSIT-SE) MSIT Project (17-677) Approval Form

YouTrack MPS case study

Intellect Platform - The Workflow Engine Basic HelpDesk Troubleticket System - A102

Netbeans 6.0. José Maria Silveira Neto. Sun Campus Ambassador

Module 12. Software Project Monitoring and Control. Version 2 CSE IIT, Kharagpur

Best Practices with MyMathLab/ Faculty Instruction Manual

Online Learning in Engineering Graphics Courses: Research, Tools, and Best Practices

International Journal of Advanced Engineering Research and Science (IJAERS) Vol-2, Issue-11, Nov- 2015] ISSN:

SaaS Analytics. Analyzing usage data to improve software. Bart Schaap Tim Castelein February 10, 2014

Student Attendance Through Mobile Devices

/99/$ IEEE

Revel8or: Model Driven Capacity Planning Tool Suite

Trivera Technologies LLC

Support and Process for Developing Online and Blended Courses

Software Development Environment. Installation Guide

WebRatio 5: An Eclipse-based CASE tool for engineering Web applications

Lab Management, Device Provisioning and Test Automation Software

Beyond BOM 101: Next Generation Bill of Materials Management whitepaper

IBM Rational ClearCase, Version 8.0

E-commerce: Competing the Advantages of a Mobile Enterprise

Student s Guide to Blackboard

Enjoy greater flexibility and effortless collaboration with wireless shared access.

Why Johnny Can't Encrypt: A Usability Study of PGP

Google Cloud Storage Experience Usability Study Plan

Transcription:

Gild: An Integrated Learning and Development plug-in for Eclipse Teaching students how to program can be a challenging task. Unfortunately, there is a lack of tools that provide pedagogical support for learning and teaching programming. Fully featured integrated development environments (IDEs) overwhelm novice programmers and do not have all of features needed to support teaching. The programming pedagogical tools that do exist (such as BlueJ and DrJava) tend to offer a minimal or reduced feature set and thus are limited in how long they remain useful to the programmers. They also lack features that are commonly available in collaborative desktop environments, such as instant messaging, simultaneous document browsing/editing, web forums etc. Such features are often used in other learning disciplines to enhance learning. Currently teachers usually make use of several tools when creating materials for a programming course. They may use an IDE to prepare program samples, a presentation tool to present materials in-class, a drawing tool to create pictures, a web-publishing tool to post course materials and email to communicate with their students. This leads to a scattering of course materials and related information that is difficult to update and share. Moreover, the current approach of using email for providing programming help outside class time is very tedious and quickly breaks down for example, students often ask questions about code that the instructor can t see. It is also fairly well accepted that students will learn programming concepts more quickly if they read, write and test lots of example programs. Unfortunately instructors rarely have enough resources to mark numerous programming exercises. Automatic marking techniques are commonly deployed but they are typically custom solutions that are difficult to reuse or extend. Good teaching practices also recommend providing in-class interactive exercises but with traditional pen and paper mediums it is impossible to give feedback to every student solution in large classes. We believe there is a need for a collaborative integrated learning and development environment that will expand in usefulness as the programmer s ability and need for training increases. We therefore propose a community-wide project to develop an integrated learning environment to help novice through intermediate programmers learn Java. The Gild (Groupware enabled Integrated Learning and Development) environment will build on the existing IDE for Eclipse and its associated plug-ins, as well as borrow concepts from web-based learning tools and collaborative desktop technologies to enhance learning in both colocated and distributed settings. This project will have benefits for teachers, students, researchers and developers in the eclipse community. In order to introduce some of the many concepts such an environment would involve, we provide a scenario that describes how this tool could be of benefit to an instructor and her students in a first year course. Scenario Renee is teaching a first year class about data structures in Java. During a laboratory class where students have access to computers, she introduces the basic ideas of stacks, lists, queues, and arrays on the chalkboard. She then switches to her computer and shows the students some pictures of the static structure of her collections framework (eg, UML style diagrams or other visualizations) which have been automatically generated from her code. Then she guides the students through two different implementations for a queue (array and linked-list). The students see her code on the overhead screen in addition to being able to view it on their own screens; they can make notes in their own copy of the checked out code while following along. Renee leads the class in writing some test cases for an abstract queue interface. Her student Ian suggests attempting to dequeue when the queue is empty. Renee says "good idea, Ian", and assigns control to Ian's computer. Ian

types in his test case, which also now appears on everyone else's screen as he's typing it. Similarly, other suggestions are made and soon the students have a good test suite for queues. They run the suite against two implementations that Renee provided. In each case they find a bug (intentionally planted) and then proceed to investigate the code and how to fix it. The first student assignment is to write a test suite for some provided stack implementations. The students "check-out" the code to test for their assignment. Ian starts on his assignment early, and has a question about some of the code. He expresses this question by attaching a "question marker" to the line that confuses him. All of his classmates see the question marker, and may answer if they are able. The students and the instructor can discuss his question by means of an instant messaging facility in the environment. Once the question is answered to Ian's satisfaction, the icon will change state to indicate that the question has been answered --- but it will still be available for other students to see and browse. Renee also has a master list of all of the questions that have been asked (and answered). Ian's question is particularly relevant, and so Renee makes a number of other annotations in this code with links to other resources to answer the question properly. Ian finishes his assignment, and submits it by "checking it in". An automated script executes his solution and provides a report. When Renee marks his assignment, she reads the report and adds comments to his code and checks it back in so that Ian can retrieve it. Note that all of the student and instructor interactions with the course material have been through one tool. Pedagogical objectives and proposed technical solutions A learning environment for programming needs to be designed with sound pedagogical objectives in mind. We discuss some of these objectives here and provide some intuition about possible technical solutions. Novice programmers should read, write and test lots of code The GILD environment would provide access to relevant program examples as selected by the instructor. Students will be able to check in/out code using the existing version control systems in Eclipse. A facility for automatically marking exercises should be available (assuming the students have been given most of the code or the API to follow). Over time, a library of code examples, course notes and tutorials, can be created by leveraging and extending the features of the help system in Eclipse. Present syntactically and semantically correct code to students The eager parsing technique used by the Eclipse IDE will help the instructor and students to quickly correct syntactic mistakes this is not possible when code examples are prepared or presented using non-development tools. Moreover, when mistakes are made (either by the students or instructors) meaningful compiler messages will help students learn from their mistakes. Ideally the instructor would be able to tailor these messages to emphasize topics of relevance. Assign Interactive Exercises in the classroom In a wired classroom or lab, the instructor can write code that can be documented or edited by the students in real time. Students can submit answers that can be marked automatically and direct questions to the class for discussion as they arise. Provide support for Contextual Help and Just-in-time Training The students should be able to interact with the instructors both in real-time and asynchronously by asking questions and receiving replies that are positioned within the context of their code. The extensible markers in Eclipse

can be leveraged to provide support for this kind of student help. When the students and instructor are not co-located but are working synchronously, collaborative support features such as simultaneous code editing and instant messaging will move the interactions between the student and instructor out of the email world and back into the development world where these interactions should take place (see www.groove.net for an example of such a general purpose collaborative environment). As the instructor receives questions about tricky parts of the assignment, the teacher can insert links to related code examples and other hints that will provide just in time training for the more complex exercises. Furthermore, pair-programming techniques have been used successfully in many introductory programming courses. Simultaneous code editing combined with instant messaging will enable students and the instructor to collaboratively author code and improve their learning experiences. Reduce the number of tools that instructors have to use The need for other tools would be reduced by providing more presentation features (such as larger fonts and the ability to hide code) and website publishing features in the learning and development environment. Provide a customizable environment for learning and teaching The instructor and the students should be able to configure the environment so that it is suitable for the level of the students. More skilled students should be able to access the more advanced features in Eclipse (such as refactoring) if they so desire. Eclipse s perspectives and views can be used to provide different user interface configurations to suit diverse student needs. Research Questions There are many research questions in this proposal that warrant investigation. The benefits of visualization and collaborative technologies to support learning are not well understood. There is also the question of how the collaboration features we suggested would be of benefit to teams of expert programmers as email communication is often overused in these contexts also. Milestones and Deliverables The concept discussed in this proposal clearly goes beyond the ability of a single research group -- we therefore propose advertising this project to other groups through workshops and other public venues. During the first year our efforts will be spent on two aspects: 1) requirements gathering to learn more about the tool needs for novice programmers and instructors and 2) prototyping some of the functionality suggested above within Eclipse including instant messaging, development and presentation of course notes using the extensible help system, integration of scripts to enable automatic marking of small exercises and extending Eclipse markers for educational purposes. Wherever possible, we will build on existing work and invite other groups working on Eclipse to participate in this project. Participants and Budget The participants involved in this project will be Drs. Margaret-Anne Storey and Daniela Damian from the University of Victoria. Their PhD student, Mary Sanseverino, will work on this project. Mary s interests are in educational technologies. Dr. Storey has considerable experience evaluating tools to help programmers understand programs, and in evaluating web-based learning tools. Dr. Damian has vast experience in collaborative software. Derek Rayside from MIT will also participate in this project. The budget we are requesting will be used as follows: Student support (one student at the PhD level) - 14K; one Coop student (to assist in requirements gathering and a user study) - 7K; Travel - 4K; Computer and equipment for usability testing and requirements gathering - 4K; Sundry - 1K. Total 30K.

== New Page == Community Benefits The project we have proposed could be of benefit to instructors of programming courses, students learning how to program and learning how to use a development environment, and to researchers investigating the use of collaborative technologies in learning situations. We also believe that results gathered from our user studies to evaluate the interface and tailored compiler support will be of benefit for all users of the Java IDE in Eclipse. This is a project that could potentially build on many of the Eclipse plug-ins development: from version control systems, refactoring capabilities, visualization tools, team support, and the Eclipse help system among others. To involve a wider community in this project we will make the code we write be open source and advertise our work and recruit participation through several venues as follows: - A website to describe this project where we will document our ongoing results and add links to other participants. (Note Dr. Storey used websites for community wide projects for evaluating reverse engineering tools very successfully in the past see http://chisel.cs.uvic.ca//collab/). - ICSE 2003 workshop on adoption centric software engineering: as a coorganizer of this event, we will advertise this project and encourage involvement in this project - CASCON 2003 workshop: we will propose a workshop at CASCON next October and actively recruit people in advance of the workshop to be involved in this project. We will encourage instructors at our university and other universities to use our prototype and to report on their findings. We will also recruit tool developers to participate to the much-needed technology required for this project. During the workshop we will discuss how their work has been of use in this learning environment and make a call for further participation.

My CV: mention project with IBM, other work done evaluating web-based learning tools. Mention experiences organizing events such as vissoft and collab tool demos.