國
立
交
通
大
學
網路工程研究所
碩
士
論
文
在 Moodle 學習管理平台上
基於 Web services 的資訊交換服務與課程代理機制
Data exchange service and cross-institutional course content sharing
environment for Moodle
研 究 生:洪銘鴻
指導教授:袁賢銘 教授
中 華 民 國 九 十 九 年 六 月
在 Moodle 學習管理平台上基於 Web services 的資訊交換與課程代理機制
Data exchange service and cross-institutional course content sharing environment
for Moodle
研 究 生:洪銘鴻 Student:Ming-Hung Hung
指導教授:袁賢銘 Advisor:Shyan-Ming Yuan
國 立 交 通 大 學
網路 工 程 研 究 所
碩 士 論 文
A ThesisSubmitted to Institute of Network Engineering College of Computer Science
National Chiao Tung University in partial Fulfillment of the Requirements
for the Degree of Master
in
Computer Science June 2010
Hsinchu, Taiwan, Republic of China
I
在 Moodle 學習管理平台上基於 Web Services 的資料交換與課程代理機制
學生:洪銘鴻 指導教授:袁賢銘
國立交通大學網路工程研究所
摘要
Moodle - 一個開源碼的學習管理平台是現在最為廣泛被使用的平台之一,在其上使用 者可以客制化需求功能與模組做教學使用。因為此特性,當與其他 Moodle 站台或是校務資 訊系統這類平台整合時,開發人員必須配合不同版本或是客製化的服務做開發。我們希望 開發人員能更方便地與 Moodle 互動,因此在基於 Moodle 2.0 中的網路服務架構上發展了 一套課程資訊交換服務。另一方面,若是能讓不同地方的老師透過交換教材來提升教學品 質,能讓合作式教學更具意義。我們並利用前述的服務開發了一個 OpenMoodle 模組,這 個模組讓教學人員能建立資源分享的環境,來自不同地方的教學人員可以交換彼此的課程 資料和進行合作式教學,同時也讓教學人員在交流資源之餘,也能自行掌握學生的學習狀 況。學生也可以因此得到更多元的資訊。II
Data exchange service and cross-institutional course content sharing
environment for Moodle
Student: Ming-Hung Hung Advisor: Shyan-Ming Yuan
Institute of Network Engineering
National Chiao Tung University
Abstract
Moodle open source LMS is one of the most popular learning management systems currently. Developers can customize functionality and modules for educating purpose. When integrating with other systems, developers have to deal with the barriers that come from Moodle servers with different version or administrative affairs systems. To solve these problems, a set of Course Communication services are built. With these services, developers can more easily build connection among Moodle servers and other systems. And furthermore, it will be valuable for allowing teachers who are at different places to exchange teaching materials. Therefore, we provide a Moodle module: OpenMoodle. With this module, instructors can establish a resource exchanging environment. Teachers can exchange course materials and teach collaboratively with other educators, meanwhile, control student’s learning status by holding course materials locally. Students can acquire more diverse resources.
III
Acknowledgements
首先最要感謝的是袁賢銘老師兩年來的指導,自由開明的風格讓我受益良多,也讓我 們有許多發揮的空間,接觸各方面不同的領域。另外,非常感謝擔任我的口試委員的蔡清 欉教授、林獻堂教授、陳建伯教授,於百忙之中抽空蒞臨指導我的論文,給予我許多有用的 批評與建議。另外要特別感謝林獻堂教授與林家鋒學長,在執行論文計畫的這段期間持續的與 我開會討論,給予我適當的意見。 同時,謝謝實驗室的永威學長、家鋒學長、國亨學長,研究的過程中有許多不懂的地方, 是你們幫我解惑。以及所有實驗室碩班同學們: 昱凱、阿貴,大眼,Fang,和學弟妹們在研究 的過程中所給予諸多的指教及鼓勵,並一起為實驗室製造歡樂的氣氛。 最後,感謝要我父母親,有你們的支持與信任我才能專心致力於學習。謹以此文獻給 我摰愛的家人。IV
Table of Contents
摘要
………...I
Abstract………...……….II
Acknowledgements...III
Table of Contents...IV
List of Figures...VI
List of Tables...VII
List of Codes...VIII
1 Introduction ... ...1
1.1 Motivation... 1 1.2 Objectives... ...31.3 Outline of the Thesis...3
2 Backgrounds...4
2.1 Moodle LMS...4
2.2 Web Services... ...7
2.3 Moodle Standard Web Services...8
2.4 Related Works...10
2.4.1 OpenCourseWare... ....10
2.4.2 Community Hub... ...11
3 System Design and Implementation...13
3.1 OpenMoodle……... ...13
3.1.1 Overviews...13
3.1.2 Configuration...14
3.1.3 OpenMoodle Module...15
3.2 Course Communication services for Moodle……….……….….. 18
3.2.1 Overview ...18
3.2.2 Implementation... 19
3.3 Implementation Tools...22
4 System Demonstrations...23
4.1 System Flow Scenarios...23
V
4.2.1 OpenServer List... .24
4.2.2 Local Curriculum Export...25
4.2.3 Importable Curriculum Admin...26
4.3 Usage Pattern... ...28
4.3.1 Collaborative Teaching pattern...28
4.3.2 One-way Supply pattern... ...30
5 Evaluations and Experiment... 32
5.1 Comparison...32
5.2 Experiment...34
6 Future Works and Conclusion ...35
6.1 Conclusion ... ...35
6.2 Future Works ... ...36
References... ...37
Appendix A: Essential capabilities for OpenMoodle………39
Appendix B: Course communication services for Moodle………40
VI
List of Figures
Figure 2-1 the usage of adopting Moodle for higher education in Taiwan………..…..4
Figure 2-2 the general web service architecture………..……….. ………7
Figure 2-3 the Moodle Standard Web Services Layer ....……….……...8
Figure 2-4 Screenshot of a computer science and programming course in OCW……...10
Figure 2-5 download course as template from a hub server………...………...12
Figure 3-1 the overview of Moodle sites using OpenMoodle module……….….….13
Figure 3-2 the component of OpenMoodle……….………...15
Figure 3-3 The Course Communication services for Moodle……….…..18
Figure 4-1 System Flow Diagram………...23
Figure 4-2 Screenshot of OpenServer List interface…………...………24
Figure 4-3 Selecting and publishing Moodle modules………...25
Figure 4-4 Screenshot of Importable Curriculum Admin interface………..26
Figure 4-5 Importing Moodle resources from Da-Hua Institute of Technology………..…27
Figure 4-6 the flow chart of collaborative teaching pattern………...…………..29
VII
List of Tables
Table 2-1 Evaluation of LMS’s adaptation………5
Table 2-2 Comparison of Ten LMSs………..6
Table 3-1 Options of Synchronization………..16
Table 3-2 the property of web service function………...19
Table 3-3 Available Component for CCM………22
Table 3-4 Implementation Tools for OpenMoodle and CCM………...22
VIII
List of Codes
Listing 3-1 example of declaring a web service function………20 Listing 3-2 example of defining a web service description……….21
1
1 Introduction
1.1 Motivation
Nowadays the internet is becoming more indispensible to human being. Myriads of actions including teaching behavior can be performed over Internet. Educational model has gradually been transferred to online learning. Instructors can carry on teaching through Learning Management System (LMS) such as Moodle, Blackboard, and ATutor.
Moodle is a free open-source LMS and widely adopted around the world. It provides many resource and activity modules and mass of pedagogical activities can be performed on it. However it’s not efficient for educators to integrate with other systems, e.g. student information system, another Moodle site, or other LMS. They have to customize each different kind data exchange services for different systems. Extending Moodle LMS to web services architecture can decrease the programming hardship and cost, lower maintenance costs, speed the time-to-market [22]. Providing a set of data exchange services will be valuable for Moodle.
In addition, multiple teachers may want to teach collaboratively via LMS but they are coming from different institutes. Mining Education Australia (MEA) is a consortium of three mining schools in Australia [21]. They group the staffs into each relevant course development teams and want to provide cross-institutional teaching. So they adopt one central LMS for cross-institutional enrollments and all students will attend the same course. However, this approach makes teachers lose control of autonomy and cannot hold some activities privately. Teachers may want to hold teaching materials and students’ learning activities in local platform, meanwhile, obtain the benefit of collaborative teaching. Collaborative teaching can be also called
2
team teaching, is a pedagogy that offers several significant advantages for teachers including increased the opportunity for on-going conversation about teaching, and experience in learning how to improve technology capacity for teaching and practice [1]. Betty Robinson and Robert M. [2] indicated collaborative teaching can inspire educators to discover, share, and verify fresh ideas for constructing course sessions, and creating more effective assignment. Therefore, it will be valuable for teachers to cooperate with each other by sharing their respective teaching materials.
There are some tools such as MIT OpenCourseWare (OCW) and Community-hub in Moodle have been proposed to allow teachers sharing their own teaching materials for users. The concept of OCW is that users can freely download MIT’s course content. If one institution also wants to adopt the concept, they can employ content management system like eduCommons1 to build their own OCW for the purpose of sharing knowledge. There are many universities around the world also join this idea, provide some of their content, and formed an alliance: OpenCourseWare Consortium2. But they can only provide materials, no teaching activities and collaborative teaching mechanism. Besides, they do not provide a convenient mechanism of exchanging data except downloading manually. Community-hub is the new forthcoming releasing feature of Moodle. It also allows Moodle servers exchanging information. But that only help to open the new curriculum by loading the other users’ template, as well as there is no continued cooperative teaching mechanism.
Educators should have the ability to easily set up a resource sharing environment. They can teach collaboratively or utilize others’ resources to build a new course. Notification sent to
1
http://cosl.usu.edu/projects/educommons/index.html
2
3
subscribers once there are new materials created. Teachers are given greater autonomy in their own sites and they can easily manage and choose adequate resources for students.
1.2 Objectives
In order to address the issues of collaborative teaching and sharing knowledge between teachers who are in different institutes, we want to provide educators with an environment to share information. Meanwhile, this environment can also provide many tools related to pedagogy. Hence, we choose an open source LMS: Moodle as the base platform and implement our ideas, rather than re-design a new LMS. Therefore, a Moodle plug-in: OpenMoodle module is proposed. Through this module, teachers are able to exchange teaching materials and activities, assist in preparing the new course content, teach collaboratively and hold data privately, and help to improve the quality of course.
Next, the Course Communication services for Moodle (CCM) are proposed. We are going to package Moodle’s functionalities based on the web services architecture which is built in upcoming released Moodle package 2.0. Developers can adopt uniform rules for development and integration.
1.3 Outline of the thesis
In chapter 2, we discuss the background of Moodle LMS, web services, and related works. In chapter 3, we show a diagram of system overview and describe implementation details of some important components in OpenMoodle and CCM. Next, in chapter 4 presents the results of OpenMoodle and operations. The evaluation is in chapter 5 containing the comparison and an experiment for OpenMoodle module. Finally, the conclusion and future works for our proposed module are presented in chapter 6.
4
2 Backgrounds
2.1 Moodle LMS
E-learning is a way of promoting teaching and learning through computer and network in which the learning content is available online. Learning Management System (LMS) is one kind of approach to e-learning and it is becoming a significant part of the manner for delivering online and flexible e-learning to enhance study. Nowadays, there are over 250 e-learning systems that cover commercial and open source software (OSS) project [4]. In OSS category, one of the famous products is Modular Object-Oriented Dynamic Learning Environment which is abbreviated as Moodle [3].
Moodle is proposed based on social constructionist pedagogy which is learner-oriented philosophy. It developed since 1999 and has been widely adopted over 200 countries, and has 49000 registered sites, and the number of courses is around 3,500,000. Most significantly, there are about 35,000,000 users joined the Moodle community [3] where educators can mutually exchange teaching experiences and developers can improve from feedback.
Figure 2-1 the usage of adopting Moodle for higher education in Taiwan 0 1 2 3 4 5 6 7 5 4 3 5 sites courses <100 100~500 500~1000 1000~4000
5
In our country, Moodle is popularly adopted as well especially in academic domain. Figure 2-1 shows the current usage of concerning higher education in Taiwan. Tunghai University [5], Ming Chuan University [6], and National ChiNan University [7] are the representatives. Tunghai’s site holds over 35,000 users and 6,500 courses per year. Ming-Chuan’s site has established over 90% of teaching materials. ChiNan’s site has been integrated with the administrative affairs system. And National Cheng Kung University [8] had moved from BlackBoard to Moodle last year as well.
Graf and List [12] consider that adoption is pretty crucial for an e-learning system because of when designing a course via e-learning platforms should match students’ need and desire as closely as possible, and adapt during course progression. They choose qualitative weight and sum (QWS) approach to analyze nine open source platforms and determine their ranking. The comparison is focused on four phase: adaptability, personalization, extensibility, and adaptivity capabilities. Table 2-1 shows that Moodle outperform all the other platforms and it can be view as the best one in adaptation aspect.
Table 2-1 Evaluation of LMS’s adaptation
Adaptability Personalization Extensibility Adaptivity Ranking
Maximum values * # * * ATutor | # # | 3 Dokeos | 0 * + 2 dotLRN + + * 0 2 ILIAS + # * 0 2 LON-CAPA + # # | 2 Moodle # + * | 1 OpenISS # # # 0 2 Sakai 0 0 * 0 3 Spaghettilearning + # + 0 3
QWS Levels: E = essential, * = extremely valuable, # = very valuable, + = valuable, | = marginally valuable, 0 = not valuable
6
Ajlan and Hussein[4] make comparisons among Moodle 1.8 , five commercial products that include Desire2Learn 8.1, KEWL, Blackboard Learning System (V.7), ANGEL Learning Management Suit (7.1) and eCollege, and four OSS that include Claroline 1.6, Dokeos 2.1.1, OLAT, and Sakai 2.3.1 to test and verify in three phases of their features and capabilities: Learner Tools, Support Tools, and Technical Tools. According to the result showed in Table 2-2, Moodle is one of the most excellent LMSs that meets 38 of 40 features and only misses two.
Table 2-2 Comparison of Ten LMSs
No 1 2 3 4 5 6 7 8 9 10 Product De sire 2Le arn KEW L AN GEL eC oll ege B lac kboa rd Moodl e C lar oli ne Doke os OLA T S aka i
Total Features: 40 (Learner / Support / Technical Tools)
Available 37 35 37 33 35 38 32 33 35 38
Missing 3 5 3 7 5 2 8 7 5 2 The overall excellences of Moodle are itemized as below [4][12][16]. I. It is open source software.
II. It can be introduced into nearly all servers which support PHP and run on any systems such as Linux, UNIX, Windows, MAC OS.
III. It supports over 85 kinds of language.
IV. Teachers can evaluate students’ learning situation by employing its teaching resource and activity evaluation function.
V. Students can increase their self-esteem and relationship between a teacher and students within Moodle.
VI. Moodle has excellent documentations and user-friendly interfaces for educators to easily install, customize, and upgrade to the latest version.
7
VII. Moodle is outstanding in the general and in the specific adaption aspects. It means Moodle can be easily extended to adaptive one.
2.2 Web Services
The proposed CCM is a kind of web services which redirect to Moodle’s internal functionalities. So we introduce the basic concept of web services briefly.
Web services are application components that use XML-based protocols including Simple Object Access Protocol (SOAP) and Web Service Description Language (WSDL) over Hypertext Transfer Protocol (HTTP) to perform remote functions or execute business processes [17][18]. Besides, services are published and discovered using Universal Description Discovery and Integration (UDDI). Figure 2-2 shows the common web service architecture.
Web services are rapidly emerging as a well-accepted standard for sharing data and functionality among loosely-coupled, heterogeneous systems [20]. Web services can provide developers an effective abstraction mechanism for application on the Internet, independently of programming environment, execution platform and communication protocol [19]. Web services can be viewed as the approach to Service-Oriented Architecture (SOA). Adopting the concept of SOA into LMS can provide LMS with the ability to deliver internal functions as services as well
8
as the ability to integrate external applications as services [23].
2.3 Moodle Standard Web Services
Moodle standard web services is introduced in Moodle roadmap 2.0. It’s a module that aims to support multiple web services protocols. The CCM that we developed are based on it. Figure 2-3 shows the composition of the standard web services layer. Next, we are going to introduce each layer separately.
2.3.1 External Service Interface
Moodle core functions can be accessed from remote servers running somewhere on network. Moodle supports many kinds of protocols like SOAP, REST, XML-RPC, and AMF. This layer is responsible for dealing with tokens, emulating user session, parameter processing.
2.3.2 Public PHP API
As the name implies, this layer is the collection of web service functions that open up the avenue to low-level core function. All the core functions that can be accessed by the way of web services should be wrapped in web service description format. The available web service functions are declared at first, and then the corresponding external function is defined which are both located at each module folder. In fact, these web service functions are view as the
External Server Interface
Public PHP API
Low-level Internal API
9
redirection to the external function. The client doesn’t discern anything about the external function.
2.3.3 Low-level Internal API
The low-level internal API is also called as core function. It’s the foundation of the external function. The core functions will execute the request from external function and return the result. Developer can utilize existing core functions or rewrite them on their own. The core functions have no permission to access any global Moodle variables. It just does basic parameter validation, no access control
10
2.4 Related Works
In this section, we introduce two projects similar with our OpenMoodle module. The first one is OpenCourseWare proposed by MIT. The other one is Community-hub which is built in the forthcoming Moodle package 2.0. Both of these applications have their own characteristics, but also lack of some part.
2.4.1 OpenCourseWare
OpenCourseWare (OCW) project is announced by Massachusetts Institute of Technology (MIT). It’s designed for putting all MIT course content online and freely available for everyone in the worldin April, 2001[9].They provide lecture notes, exams, and video of course, and there is no registration required [13]. The OCW adopt Creative Common licenses: attribution,
noncommercial, and share alike which allow instructors to confidently use and incorporate their
course [14].
11
Though OCW is one of the most well-know Open Coursware (OC) platform in the world
[14] and there are one million visits per month, it has some limitations as well. They only offer course materials but no teaching activities. It cannot reflect complete content of the course. Besides, OCW cannot grant degrees or credit. For students and self-learners, the content of course is provided unilaterally by MIT’s faulty, and it lacks diversity. Although there is an OpenCourseWare Consortium consisted of several institutes, users need to filter these sites and find proper content by themselves. In addition, they need to spend $10,000 to $15,000 USD on each published course. In 2006, they tried to lower the cost of creating course content in OCW by integrating with the LMSs provided by faculties for their students. However, there were some problems when integrating practically. Because making materials transforming automatically from existing LMS to OCW might put an unacceptable burden on faculties [10]. It means that even if educators want to adopt the concept of OCW, they have to spend extra cost on the integration of existing course site.
2.4.2 Community Hub
With regard to Moodle, there’s no capability of sharing course materials between sites built
in currently released packages (till v1.9). In the developing roadmap (v2.0), they add a new
feature named Community Hub that provides facilities for Moodle users to interflow with the
other educators [15].
Allowing teachers to easily get course templates from other Moodle site so that they can
share and learn from fine course patterns is one characteristic of the community hub. Sites can
publish some courses and store the downloadable course zip files at a Moodle hub server. Moodle
users can connect to a hub server search for specific courses and select one. Original server will
12
templates, we cannot keep updating the latest content continuously. It only supports exchanging
data in the beginning. Though course publisher can select which of course resources to publish,
publisher is unable to trace usage of published materials.
In community hub, there is another functionality that allows users to enroll in external
courses. In spite of teachers can to let the students study on various subject at remote server to
experience different perspective, they are unable to grasp student’s study situation.
13
3 System Design and Implementation
3.1 OpenMoodle
3.1.1 Overview
The first part we proposed in this thesis is named “OpenMoodle” module. The OpenMoodle module is mainly designed for sharing course content and collaborative teaching. It allows teachers to cooperate with other like-minded instructors. Figure 3-1 depicts the overview of Moodle sites using OpenMoodle module. The educators who are at friendly Moodle site can export their course contents. The instructors who are at ordinary Moodle site can import the course materials that come from other friendly Moodle sites to create a new course or to enrich
14
the content of existing course. The learners can gain more plenteous and integrated resources than traditional way.
3.1.2 Configuration
Before proceeding to exchange content, users need to do some pre-tasks manually including setup the automatic mechanism and access capabilities for OpenMoodle module.
Cron
OpenMoodle module allows teachers to exchange teaching materials between sites. For some cases, users may want the data synchronization done automatically. In OpenMoodle module, automation is initiated by data exporting-side site. As long as Moodle administrator has set up the cron , the automatic update mechanism can be put into the Moodle’s regularly
scheduled progress. In modole, cron progress runs periodically to assist Moodle’s module to execute task. Since OpenMoodle module has installed, it will check the status of exported module per twelve hours and sync automatically if there is any update.
Capabilities for OpenMoodle’s user
Interactions between users and Moodle are controlled by capabilities. User should assign the appropriate capabilities for the web service account. They can inherit the standard role: teacher which has the most common permission, or create a new role and assign the essential capabilities which are exhibited in Appendix A. Besides, teacher specifies what kind of protocol he wants to provide for communicating and assign the capabilities to the role.
15
3.1.3 OpenMoodle Module
OpenMoodle is a block based module in Moodle. When using OpenMoodle, users must communicate voluntarily with each other by word-of-mouth. We utilize the course communication services that we developed in next section to support OpenMoodle. It consists of three major components: OpenServer List, Importable Curriculum Admin, and Local Curriculum
Export. Figure 3-2 shows the component of OpenMoodle module.
OpenServer List
Before starting exchanging materials of course with other educators, the instructor who is native to local server should configure external servers first. OpenServer List component provides Moodle administrator an interface to enter the web service login account of both local and curriculum exporting-side sites, and to manage the list of Moodle sites which are willing to export their teaching materials.
These accounts are stored at first and used during the period of exchanging data The curriculum importing-side site needs to get metadata information (e.g. available exported
16
courses list, available exported course content in a course) before importing course materials. Once a site has imported courses successfully, the curriculum exporting-side site has to record the login information of curriculum importing-side site so that if there is any change occurs, the curriculum exporting-side site will be able to notify these curriculum importing-side sites.
Importable Curriculum Admin
The Importable Curriculum Admin component is used to manage and import external course content. The available exported curriculums will be listing here. By entering individual course, the resources and activities which are ready to export are shown. The instructor can choose what he wants among these exported Moodle course materials like url, page, lesson, resource…etc. After finishing selecting and clicking the “Import” button, the content of remote course will be delivered to local server right away. Local server will use these data to enrich an existing curriculum or establish a new curriculum.
In addition to import the resource and activity, instructor can set the synchronous option to make system enforce corresponding action when exporting-side site updated the content of curriculum. Three types of synchronous options are defined in the Importable Curriculum Admin component. They are “None”, “Only-inform”, “Auto-sync” synchronous options classified in Table 3-1.
Table 3-1 Options of Synchronization
Option Corresponding Action
None Do nothing
Only-inform Notify instructor of the update message. Do not sync curriculum data automatically.
17
The “None” option represents that system does nothing when there is any up-to-date material being published. In this case, instructor can utilize the curriculum data from other educators as sample course without keeping following latest exported resources. If instructor prefers that the curriculum content entirely come from another teacher, he can adopt the “Auto-sync” option. The imported curriculum data will be sync no matter what things change at exporting-side site. The last option is “Only-inform”. Curriculum importing-side site only receive update message. The instructor can filter out that content and then import profitable and suitable materials.
Local Curriculum Export
The instructor is able to share resource with other like-minded educators through this component. The system will record the permissible resources and activities list. External educators at other site can view and import the exported curriculum materials as long as they have entered the login information of corresponding exporting-side server.
In order to do so, we should provide an account for other educators to access our curriculum materials. This account is “Web services authentication”-based in Moodle and assigned the corresponding capabilities which are checked during the procedure of course content sharing.
Besides exporting data to outside server, the instructor can improve his teaching materials according to other user’s feedback. We record some statistics which are related to what kinds of materials are selected by other educator’s. We list the information about sites which had imported curriculum materials. Moreover, we also record usage of each exported module.
18
3.2 Course Communication services for Moodle
3.2.1 Overview
The Course Communication services for Moodle (CCM) are a set of web services that provide external developers the avenues to Moodle’s core functions. As mentioning in previous section, we need to encapsulate the Moodle core function to support CCM. Fig 3-2 shows the structure of the CCM.
There are two categories such as Moodle Built-in services, and Customized services in CCM. First of all, there are handful of services are already built-in at standard Moodle development version 2.0. These services are supported from the core development group and tend to global Moodle data usage. In addition to the standard built-in services, we refer to ten courses running in last two years. And considering the popularity and practicability of Moodle's resources and activities which are used in these courses, we choose four kinds of resources and five kinds of activities as our implementation goal in Customized services. There are four resources and two activities modules which are totally accomplished by ourself. The rest of three activities module
19
come from third parity but are fixed by us. We find these available services from DFWikiLABs3. DFWikiLABs is an open-source developing group in Spain. These services they implemented are quite good but don’t work correctly. So we fixed some bug and make them suitable for the latest Moodle web service specification.
3.2.2 Implementation
In this section, we explain how we built a web service function for Moodle. In Moodle, components are packaged in separate folder. We can develop the web service functions for each module. When creating a web service function, three things have to be identified and explained in the following:
Declare the web service function –
When creating a web service function, developers have to declare it first into a service php file which is located at db folder of each component. Table 3-2 enumerates the properties have to be identified. Listing 3-1 shows the example of declaring a web service function.
Table 3-2 the property of web service function
Property Description
web service function name It’s arbitrary and served by the web service server. It just a
redirection to external function.
class name class holding the external function
method name the external function name
classpath file holding the class/external function
description human readable description for the web service function
type access type
20
Moodle_mod_choice_create_choices' => array( 'classname' => 'Moodle_mod_choice_external', 'methodname' => 'create_choices',
'classpath' => 'mod/choice/externallib.php', 'description' => 'Create choices',
'type' => 'write', )
Listing 3-1 example of declaring a web service function
Define the web service description –Since some web service protocol need the wsdl file to identify the function parameters and return value, Moodle request developers to define the description. The description does not apply to the web service function but the external function which is explained later. Because the web service function is just a kind of redirection to external function. These descriptions are defined in an externallib php file which is located at each component folder as well. For each external function, two related functions are defined. Listing 3-2 shows the example of defining a web service description.
parameter function: A function containing every parameter description of the external function called parameter function. It will return a parameter object which is initialized with an associative way that contains parameter elements. It is called in external function to validate the parameter.
return value function: It returns the result object of external function. Moodle web service server parse the result of external function and return the required fields which are specified in this return value function. .
21 public static function create_choices_parameters() {
return new external_function_parameters(
array( 'choices' => new external_multiple_structure( new external_single_structure(
array(
'course' => new external_value(PARAM_INT, 'Course Id'), 'name' => new external_value(PARAM_NOTAGS, ' '), 'intro' => new external_value(PARAM_CLEANHTML, ''), 'introformat' => new external_value(PARAM_INT, ''), …
) );
}
public static function create_choices_returns() { return new external_multiple_structure(
new external_single_structure( array(
'id' => new external_value(PARAM_INT, 'Choice id'), )
) );
Listing 3-2 example of defining a web service description
Define the external function
The external function is the spirit of web service function. The web service server will serve the request from client and redirect it to external function. In external function, programmer implements the actual operation including validating the parameters, doing security check, calling the core functions which are privately in Moodle, and returning the result if needed.
We implement several web service functions which are exhibited in Appendix B to support CCM. Table 4-3 only lists the available components for Moodle.
22
Table 3-3 Available Component for CCM.
Category
Component
Customized Services (Support by us) Resource Url Page Label Choice Assignment
Customized Services Forum
(from third parity but fixed by us) Lesson Glossary
Moodle built-in Course User Group Enroll File
3.3 Implementation Tools
In this program, we use a number of open source tools and libraries for developing the OpenMoodle and CCM as shown below.
Table 3-4 Implementation Tools for OpenMoodle and CCM
Name Usage Version License
Moodle package Core 2.0 dev GPLv2
PHP Programming 5.2.8 PHP License
Apache HTTP Server Web server 2.2.8 Apache License 2.0
MySQL Database 5.0.25 GNU GPL
DhtmlxTabbar4 Navigation UI 2.5 GNU GPL
REST, SOAP Web service protocol
23
4 System Demonstration
4.1 System Flow Scenarios
Figure 4-1 System Flow Diagram
The scenario of the common system flow diagram is shown in Figure 4-1. In this diagram, according to the communication protocol between course owner and course explorer, initially, the course owner (1) publishes some teaching materials which are opened for public using. When a course explorer finds the course he wanted, he may (2) ask for the help. After approving the request, the course owner (3) returns the response to the explorer. Course explorer can (4) enter the related required information that is including the course owner site’s login account and the local site’s login account. Once everything is prepared, the course explorer is allowed to (6)
24
import the essence which is (5) extracted from published teaching materials. (7) The imported data will be synced based on course explorer’s setting and course owner will get the feedback and exported module’s statistics.
4.2 OpenMoodle interface
4.2.1 OpenServer List
Figure 4-2 shows the screenshot of OpenServer List interface. Teachers can configure the login info at (1). System will check and validate the external server status and the accounts are activated or not. New server is added only when all the information are correct. Teachers can supervise the status of these servers as well. Existing server list is maintained at (2).
25
4.2.2 Local Curriculum Export
In Local Curriculum Export component, the available course modules are grouped and displayed according to different categories at (1) in Figure 4-3. The teachers can choose some materials and publish them at (2). In addition, who had utilized individual course and the popularity of each module are provided as reference at (3).
26
4.2.3 Importable Curriculum Admin
The servers which are willing to export teaching materials are listed at separated blocks (1). Teachers can choose which course they want and set up the corresponding sync option at (2). The course updating messages are display at (3). The meanings of status symbols are explained at (4). Figure 4-4 shows the Screenshot of Importable Curriculum Admin interface.
As user enters a course link at (2), a page containing available Moodle modules within a course is shown. Figure 4-5 shows an example of demonstrating importing Moodle resources from external server. Teachers can choose modules what they are desirous and choose the course destination, and then click “Import” button. Data will be imported from external server right away.
27
28
4.3 Usage Patterns
Educators can develop different approaches to pedagogism via the OpenMoodle module. We provide two usage patterns: teach collaboratively pattern and one-way supply pattern.
Collaborative teaching pattern
As name implied, teachers can cooperate with another one to share teaching materials. For example, there are two teachers, Alice and Bob. They teach on the same subject but they are coming from different schools. They want to give a course together. It means that they are in charge of separate scope and separately hold course data at their separate platform. Figure 4-6 shows the flow chart of collaborative teaching pattern. They can use the following steps:
1. At first, they negotiate the common consensus of teaching scope. 2. Respectively send the login account and Moodle address to each other. 3. Respectively enter the login account and specify the external server address. 4. Respectively designate specific materials for receiving party and publish them. 5. Respectively choose the published materials and import from another person.
6. Respectively set up the “auto-sync” option. Data will be synced automatically if there is any resource updated.
7. System will filter out the redundant resources. Each of them can hold own teaching materials and get the benefit from another one.
29
Bob
Alice
Data is imported from each other Send server address
and login account Email or phone Negotiate the teaching scope Negotiate the teaching scope Enter Bob’s account & address
Designate the materials and publish them
Designate the materials and publish them
Choose the materials and press import button
Choose the materials and press import button
Enter Alice’s account & address
Set up the “auto-sync” option.
Set up the “auto-sync” option.
Start collaborative teaching and holding data locally
Start collaborative teaching and hosting data locally
30
One-way supply pattern
Teachers can delegate other external teachers to supply their local course content as well. For instance, an inexperienced teacher, Chris has to teach a unfamiliar course and is looking for help. He encounters an experienced guy Douglas had taught on the same subject for a while. Douglas can assist Chris via the following steps. Figure 4-7 shows the flow of collaborative teaching pattern.
1. Douglas designates the materials and publishes them.
2. Douglas sends his Moodle SERVER address and login info to Chris.
3. Chris enters the login info so he can view the resources published by Douglas. 4. Chris can choose the materials that he want and import them from Douglas’s site. 5. Chris can start teaching with Douglas’s help.
There are also two scenarios depended on setting up different sync option. If Chris chooses the “Non” option, it means that he consider the external content is just a kind of the course template. He can design teaching materials with his style. In the other hand, if he chooses the “auto-sync” or “only-inform” option, it means that he delegate Douglas to supply course materials entirely.
31
Designate the materials and publish them
Send the server address and login account Enter Douglas’s
server address and account
Choose the materials and press import button
Chris
Douglas
Set up the sync option.
Data is imported from Douglas
Start teaching
32
5 Evaluations and Comparison
5.1 Comparison
In this section, we compare OpenMoodle and other course content sharing system and results as shown in Table 5-1. Educators can create course template through our OpenMoodle module and Community Hub. But collaborative teaching with other like-minded teachers is only
Table 5-1 Comparison with OpenCourseWare and Community Hub
OpenMoodle OpenCoureWare (OCW)
Community Hub
Expense Free / charge Free Free / charge
Create course template
Yes Yes Yes
Teach collaboratively Yes No No Update latest content contiguously Automatic / Manual control Manual control No Provide teaching materials
Yes Yes Yes
Provide teaching activities
Yes No Yes
Course content source
Any educator Institute’s faculty Any educator
Keyword Search No Yes Yes
User Feedback Text comment & resources statistic
No Text comment
Integrated with each other
33
allowed in OpenMoodle. Besides, users can keep following the latest content contiguously depend on different usage scenarios. In OCW, users have to do it manually and they do not provide such facility for users in Community Hub.
In here, we take the MIT OCW as sample. Although MIT is one of top universities, OpenCoureWare’s course content is provided unilaterally by MIT’s faculty. They have good quality of course content in OCW’s courses but lack of diversity. Although there is an OpenCourseWare Consortium consisted of several institutes, users need to filter these sites and find proper content by themselves. And these OCW sites are not easily integrated together because of adopting myriads of content management system. In OpenMoodle, any educator, teacher, or lecturer can work together and provide learning content for students. Because of OpenMoodle integrate with Moodle LMS, they can provide not only teaching materials but also teaching activities than OCW. Different with Community Hub just provide text comment feedback, we provide that and individual resource statistic as well. The drawback of OpenMoodle is keyword-search. Educators have to use other way to search other people.
34
5.2 Experiment and result
An experiment to evaluate the OpenMoodle module has been undertaken among two universities. They are Tunghai University in Taichung, and Tahwa Institute of Technology in Hsinchu. We separately built Moodle server embedded with OpenMoodle module and made use of 15 courses within Department of Computer Science, Tunghai, and 12 courses within Department of Computer Science and Information Engineering, Tahwa. These courses are currently running in this semester. And we create a testing site for assembling purpose in National Chiao Tung University. All the integrated 27 courses were imported into testing site. As time goes on, it will follow faculty’s footstep to update the latest content. The teachers at Tunghai and Tahwa may communicate with each other, measure the quality of external materials, and choose the suitable resources for students.
A questionnaire survey in the view of OpenMoodle to IT personnel has been done. We adopt the System Usability Scale (SUS) [24] developed by John Brooke to evaluate the users’ view of system’s usability by providing a single reference score. The SUS is composed of five positive statements and five negative statements. Each of them has five-point scale that range from Strongly Disagree to Strongly Agree. We modified the original instrument in SUS and the questionnaire showed in Appendix C. Twelve IT personnel answered this questionnaire. We can get the score for each statement, however, individual scores for each statement is not meaningful and should not be analyzed or used for other purposes. So we only calculate the sum of scores for ten statements. The mean result was 83/100 with the lowest and highest values being 67.5/100 and 90/100 respectively.
35
6 Conclusion and Future works
6.1 Conclusion
Collaborative teaching is critical pedagogy that is good for both teachers and students. This inspires teachers to discover, share, and experiment with new thought when designing the teaching activities and creating assignments. Besides, it helps students to improve their social and communication abilities, relationship between teacher and students, and increase their learning effect. Although there are numerous learning management systems developed and are wildly adpoted by educators, there was very few LMS integrated with collaborative teaching pedagogy. OpenMoodle module is hence proposed in this paper to cope with this critical issue.
OpenMoodle provides a chance to establish an environment for teachers who are not at the same place to make the interactions and teach collaboratively. Experienced teachers can make a short cut for novice teachers by supplying painstaking efforts. Teacher can collaborate with another one to teach in the same course but hold data separately to control the autonomy. They measure the data of course and choose the most appropriate materials for students. Students gets diversity of knowledge, view, and teaching style as well. Course publishers can benefit from user’s feedback and usage statistics. Furthermore, the OpenMoodle is implemented based on the CCM. Other LMSs can easily integrated with the OpenMoodle.
Moodle is such a successful open-source LMS and is widely adopted around the world. Our CCM based on web services architecture can provide the unified approach to Moodle’s resources and activities. Educators can develop custom-made services and integrate with othe heterogeneous systms more easily.
36
6.2 Future work
There are some improvements for OpenMoodle module. Community-hub is a very important feature in Moodle 2.0 plan. It provides a way to make Moodle servers can be connected together. Because of OpenMoodle does no support search functionality; users have to use email or other way of communication to find other people who are willing to share their knowledge. We can improve the search functionality by integrating community-hub with our OpenMoodle module or developing an index server which allows sites to register on it. The course information may be obtained publicly.
37
Reference
[1] S.J. Jang, “Innovations in science teacher education: Effects of integrating technology and team-teaching strategies”, Computers & Education vol. 51, no. 2, pp. 646–659, September 2008
[2] Betty Robinson and Robert M. Schaible ,”Collaborative Teaching: Reaping the Benefits” College Teaching, vol. 43, no. 2, pp. 57-59, Spring, 1995.
[3] Official Site of Moodle, Retrieved on May 16, 2010 http://Moodle.org
[4] Al-Ajlan, A. and Zedan, H. “Why Moodle”, 12th IEEE International Workshop on Future Trends of Distributed Computing Systems, FTDCS 2008, pp. 58-64.
[5] Official Course Management Site of Tunghai University, Retrieved July 16, 2010, from
https://elearning2.thu.edu.tw/
[6] Official Course Management Site of Ming Chuan University, Retrieved July 16, 2010, from http://Moodle.mcu.edu.tw/
[7] Official Course Management Site of National Chi Nan University, Retrieved July 16, 2010, from http://Moodle.ncnu.edu.tw/
[8] Official Course Management Site National Cheng Kung University, Retrieved July 16, 2010, from http://Moodle.ncku.edu.tw/
[9] Stefan Baldi , Hauke Heier , Anett Mehler-Bicher,” Open courseware and open source software”, Communications of the ACM, vol. 46, mo. 9, September 2003
[10] Abelson, H .,”The creation of Open-CourseWare at MIT”. Journal of Science Education and Technology, Vol. 17, No. 2, pp 164-174, May 2007.
[11] Official Course Management Site of Department of Computer Science and
Information Engineering, Tahwa Institute of Technology, Retrieved July 16, 2010, from
http://ltl.csie.thit.edu.tw/Moodle/
[12] Sabine Graf, Beate List. “An evaluation of open source e-learning platforms stressing adaptation issues”, Advanced Learning Technologies, 5th IEEE International
Conference on, pp.163–165, July 2005, Kaohsiung, Taiwan [13] MIT OpenCourseWare's home page, Retrieved July 16, 2010, from
http://ocw.mit.edu/index.html
[14] Yue, K.-B., Yang, T. A., Ding, W., & Chen, P. (2004). Open courseware and computer science education. Journal of Computing Sciences in Colleges, 20(1), 178–186.
[15] Moodle component: Community Hub, Retrieved July 16, 2010, from
http://docs.Moodle.org/en/Community_hub ,
38
Moodle Platform as a Tool for Enhancing the Teaching and Learning Process”, Computer as a Tool, The International Conference on, pp.2465–2467, Sept. 2007 [17] J. Gortmaker, M. Janssen, and R. Wagenaar, "The advantages of web
serviceorchestration in perspective," in ICEC '04: Proceedings of the 6th international conference on Electronic commerce, (New York, NY, USA), pp. 506{515,ACM Press, 2004.
[18] D. Fensel and C. Bussler. The Web Service Modeling Framework WSMF,Vrije Universiteit Amsterdam, Faculty of Sciences, Division of Mathematic-sand Computer Science, 2002. De Boelelaan 1081a, 1081 HV Amsterdam,The Netherlands.
[19] N. Mendon and J. Silva, "An empirical evaluation of client-side server selection policies for accessing replicated web services," in SAC '05: Proceedings of the 2005 ACM symposium on Applied computing, (New York, NY, USA), pp. 1704{1708, ACM, 2005
[20] U. Srivastava, K. Munagala, J. Widom, and R. Motwani, \Query optimization over web services," in in Proc. of the 32nd international conference on Very large data bases, pp. 355{366, VLDB Endowment, 2006
[21] T. Andrews and C. Daly. “Using Moodle, an open source learning management system, to support a national teaching and learning collaboration”, 19th Annual Conference for the Australasian Association for Engineering Education: To Industry and Beyond, pp.1-6, Dec.2008
[22] A. Al-Ajlan and H. Zedan, The Extension of Web Services Architecture to Meet the Technical Requirements of Virtual Learning Environments (Moodle), in Proc. of
ICCES08-IEEE International Conference on Computer Engineering & Systems, Cairo,
Egypt, pp. 25-27, 2008.
[23] Miguel Á ngel Conde González, Francisco José García Peñalvo, María José Casany Guerrero, Marc Alier Forment, "Adapting LMS Architecture to the SOA: An
Architectural Approach," iciw, pp.322-327, 2009 Fourth International Conference on Internet and Web Applications and Services, 2009
[24] Brooke, J. (1996). "SUS: a "quick and dirty" usability scale". in P. W. Jordan, B. Thomas, B. A. Weerdmeester, & A. L. McClelland. Usability Evaluation in Industry. London: Taylor and Francis.
39
Appendix A: Essential capabilities for OpenMoodle
Capability Description
Moodle/category:manage Manage categories
Moodle/course:create Create courses
Moodle/course:activityvisibility Hide/show activities
Moodle/course:manageactivities Manage activities
Moodle/course:managefiles Manage files
Moodle/course:view View courses
Moodle/course:viewhiddenactivities View hidden activities
Moodle/course:viewhiddencourses View hidden courses
Moodle/course:viewhiddensections View hidden sections
Moodle/restore:uploadfile Upload files to backup areas
webservice/rest:use Use REST protocol
webservice/soap:use Use SOAP protocol
webservice/xmlrpc:use Use XML-RPC protocol
webservice/amf:use Use AMF protocol
Forum Related capability for forum activity.
Choice capabilities group Related capability for choice activity.
Glossary capabilities group Related capability for glossary activity.
40
Appendix B: Course communication services for
Moodle
Component Function name
Resource moodle_mod_resource_create_resource moodle_mod_resource_get_resources moodle_mod_resource_delete_resources Url moodle_mod_url_create_urls moodle_mod_url_get_urls moodle_mod_url_delete_urls moodle_mod_url_update_urls Page moodle_mod_page_create_pages moodle_mod_page_get_pages moodle_mod_page_delete_pages moodle_mod_page_update_pages Label moodle_mod_label_create_labels moodle_mod_label_get_labels moodle_mod_label_delete_labels moodle_mod_label_update_labels Choice moodle_mod_choice_create_choices moodle_mod_choice_get_choices moodle_mod_choice_delete_choices moodle_mod_choice_update_choices Forum moodle_mod_forum_create_forums moodle_mod_forum_get_forums moodle_mod_forum_update_forums moodle_mod_forum_delete_forums moodle_mod_forum_create_discussions moodle_mod_forum_get_discussions moodle_mod_forum_delete_discussions moodle_mod_forum_create_posts moodle_mod_forum_get_posts moodle_mod_forum_update_posts
41
Component Function name
moodle_mod_forum_delete_posts moodle_mod_forum_get_firstpost_from_diss Lesson moodle_mod_lesson_create_lessons moodle_mod_lesson_get_lessons moodle_mod_lesson_update_lessons moodle_mod_lesson_delete_lessons moodle_mod_lesson_get_pages moodle_mod_lesson_delete_pages Glossary moodle_mod_glossary_create_glossaries moodle_mod_glossary_get_glossaries moodle_mod_glossary_update_glossaries moodle_mod_glossary_delete_glossaries moodle_mod_glossary_create_entries moodle_mod_glossary_get_entryids moodle_mod_glossary_update_entries moodle_mod_glossary_delete_entries Assignment moodle_mod_assignment_create_assignments moodle_mod_assignment_delete_assignments
42
Appendix C: System Usability Scale for OpenMoodle
1. I think that I would like to use OpenMoodle frequently.
2. I found OpenMoodle unnecessarily complex.
3. I thought OpenMoodle was easy to use.
4. I think that I would need assistance to be able to use OpenMoodle.
5. I found the various functions in OpenMoodle were well integrated.
6. I thought there was too much inconsistency in OpenMoodle.
7. I would imagine that most people would learn to use OpenMoodle very quickly.
8. I found OpenMoodle very cumbersome/awkward to use.
9. I felt very confident using OpenMoodle.
10. I needed to learn a lot of things before I could get
going with OpenMoodle.
Instructions: For each of the following statements, mark one box that
best describes your reactions to the website todn14series
ay.
Please provide any comments about OpenMoodle
Strongly Disagree
Strongly Agree
This questionnaire is based on the System Usability Scale (SUS), which was developed by John Brooke while working at Digital Equipment Corporation. © Digital Equipment Corporation, 1986.