Using Virtual Programming Lab for Web

Download Report

Transcript Using Virtual Programming Lab for Web

OVERVIEW OF THE TALK
In this talk, I will
1. Discuss why teaching programming is important but a
challenging task in distance education
2. What the existing solutions are
3. what our solution is
4. How to use our A-VPL in Web-based distance education
OUTLINE
1.
Challenges in teaching computer programming in distance education
2.
Existing solutions
3.
Design goals of our solution
4.
VPL - Virtual Programming Lab
5.
Using VPL in programming courses
6.
Discussion and further direction
IMPORTANCE OF PROGRAMMING COURSES
Programming skills are essential for students in computing and related areas
1.
Help understand computers and computing
2.
Key survival skills for people in the IT industry
3.
Prerequisite of many senior computing courses
4.
A skill that is well sought and can make one a billionaire.
That’s why programming courses are in the core of almost all computing program
curricula
WHAT ARE CHALLENGES IN TEACHING/LEARNING
PROGRAMMING IN DE?
Learn to program is not an easy thing for beginners
Find an error in a coding can be very challenging for beginners
In-person face-to-face tutoring is important for students
In DE in-person f2f tutoring is not usually available
Especially in asynchronous teaching/learning mode
EXISTING SOLUTIONS
Virtual Computing lab developed and deployed at NCSU (http://vcl.ncsu.edu/)
web-based Virtual programming laboratory using Java and JavaScript, by Dincer and
Fox at Syracuse University: no collaboration or communication
WebVPL, by Cao, Chan, Cao, and Yeung: no web-based editing, no collaboration or
communication
EXISTING SOLUTIONS (CONT.)
A Virtual Programming Lab plug-in for the Moodle, released at University of Las
Palmas de Gran Canaria (Spain, http://vpl.dis.ulpgc.es/): it does not support
interactive file sharing or discussion between students
DESIGN GOALS OF OUR SOLUTION (A-VPL)
1.
Web based
2.
Multi-language support: HTML, JavaScript, C++, and Java
3.
File management: program source code sharing
4.
Class management: tutors and students in classes
5.
Project management
6.
Real-time tutoring/coaching and peer-support, most importantly
THE DESIGN OF A-VPL
It has two modes
1.
Programming mode used as a virtual programming lab
2.
Administrative mode used to manage accounts and classes
THE DESIGN OF A-VPL
- PROGRAMMING MODE
It has four major visual components:
1.
A virtual classroom showing the lab
2.
A list of class participants
3.
A chat area for class participants to communicate
4.
A list of projects and files created by the student or assigned for the class
by the tutor
Of course, there are menu items used to control
ARCHITECTURE OF A-VPL
Three layers:
1.
Layer 1: Web server
2.
Layer 2: Software agents: lab admin, messaging admin, project admin, class
admin, user admin
3.
Layer 3: Databases: labs, projects, classes, students, tutors, messages
A-VPL: A SAMPLE LAB SESSION
A-VPL: A SAMPLE ADMIN SESSION
USING A-VPL IN WBDE
1.
User to request an account
2.
Admin approve the request, and may assign to a class with a tutor
3.
The student can choose a language to program
4.
The student can create a project to work on, or may be already assigned a
project by the tutor
USING A-VPL IN WBDE (CONT.)
Files are created or uploaded for each project, and student can program in the editing
area, and run to test
If there is problem, the student can call (in the messaging area) for help
Others in the lab can then respond to the call. If needed, the student can share the code
with the helper so they can be on the same page, and both know what the other is
talking about
DISCUSSIONS AND CONCLUSIONS
A-VPL is only a virtual programming lab, it doesn’t facilitate grading, and learning
management in general
Put chat and messaging system with the VPL so people can talk in the context is a great
feature
Chat system can be improved by utilizing HTTP push technology instead of polling, to avoid
delays
Make A-VPL a plug-in for existing LMS such as Moodle will be the next step in the research