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.