Implement Virtual Programming Lab with Cloud Computing for Web-Based Distance Education

Implement Virtual Programming Lab with Cloud Computing for Web-Based Distance Education

Harris Wang (Athabasca University, Canada) and Dusty Philips (Freelance Software Developer, Canada)
DOI: 10.4018/978-1-4666-0957-0.ch007
OnDemand PDF Download:
$30.00
List Price: $37.50

Abstract

In Web-based distance education, the authors’ experience has shown that some courses are more challenging than others for both students and instructors when offered at a distance. Among those challenges, providing students with access to laboratories is a big one for some science and engineering courses. Over the years, researchers and practitioners have devised and tried different ideas to solve this problem, and virtual labs are the newest and most promising solution. In computer science, such virtual labs are often called virtual computing labs or virtual programming labs. In this chapter, the authors discuss cloud computing based solutions to the development of virtual computing and programming labs. In particular, they present the design and implementation of A-VPL, a virtual programming lab designed and implemented at Athabasca University. The chapter discusses the technologies used in detail, and the unique features they have.
Chapter Preview
Top

Introduction

Today’s Web-based distance education allows learners to study from anywhere at any time. However, it does have certain challenges to both students and instructors. The challenges can be different in different courses. In teaching computer programming courses, one of the challenges is to provide students with access to computer labs and timely support from tutors and fellow students. Essentially, it is not difficult for students to establish a required programming environment on their personal desktop or laptop computers, but the big challenge for students in computer programming courses delivered at a distance is the lack of guidance and assistance when their programs run into problems. This is especially true for introductory programming courses.

Over the years, many efforts have been made to solve the problem. These efforts can be put into three categories. One is to provide online Integrated Development Environment, so called online IDEs; the second is to develop computing virtual labs for general purposes, while the third is to develop virtual programming labs for specific programming languages. In the rest of this introduction, we will provide an overview of the results from these efforts.

Online IDEs

There are several online IDEs we would like to mention, and the first is IDEOne (http://www.cdolivet.com/index.php?page=editArea) for syntax highlighting.

It should be mentioned that IDEOne has been integrated into Moodle (https://code.google.com/p/sunner-projects/wiki/OnlineJudgeInstallation if interested in further details on this.

The second online IDE we would like to mention is CodeRun (http://coderun.com/ide/). CodeRun provides a full IDE with file management, project management, code completion, and compilation. It supports code sharing and collaboration, along with numerous languages. However, it does not support interactive chat or any instructor/student separation.

Compared to CodeRun, which supports a number of programming languages, PHPanywhere (http://phpanywhere.net) is a web based PHP editor which only supports PHP code. It does feature most common IDE functionalities, though.

Mozilla Skywriter (http://ace.ajax.org/), is a fully customizable web-based program editor that supports cloud coding and compiling. It supports collaborative editing, extensions, syntax highlighting, testing, and more. It is the most complete cloud-based IDE currently available.

Kodingen (http://kodingen.com) provides an online environment that integrates with editors like Bespin. It provides the backend, cloud storage or hosting, databases, and other features, and plugs into the online editors to do the work. It doesn't strictly support collaboration, but multiple users can access individual files and edit them.

EmbIDE (http://www.embide.com/) is an embeddable IDE (currently still in beta version). It supports version control, user management, syntax and error highlighting, collaboration, chat, and deployment. It is designed for distributed teams of coders, but with no support for student-student or student-instructor interactions.

Complete Chapter List

Search this Book:
Reset