Tìm hiểu Learning Object và Việt Hóa công cụ Reload Editor trong thiết kế bài giảng MỤc lụC



tải về 0.64 Mb.
trang6/8
Chuyển đổi dữ liệu23.08.2016
Kích0.64 Mb.
#26852
1   2   3   4   5   6   7   8

5.1.1 Tại sao cần cơ chế Packaging:


    • Khả năng thao tác giữa các thành phần và tính tái dụng là cần thiết để cập nhật, sửa chữa và tạo mới learning objects.

    • Tính tái dụng thể hiện ở chỗ người phát triển có thể tìm kiếm các nguyên liệu có sẵn từ nhiều nguồn khác nhau và gom chúng lại với nhau vào một khóa học, bài học mới.


Hình 5.1 Tính tái dụng - Reusing Existing Training




    • Có nhiều hệ thống quản lí học (learning management system-LMS) khác nhau. Để một LMS có thể lưu trữ và tái sử dụng các learning objects trên một LMS khác thì các learning objects phải được đóng gói theo một chuẩn nhất định.




    • Công nghệ chuẩn hóa hiện nay có sự khác nhau giữa nhóm chuẩn hóa và nhóm đặc tả. Nhóm đặc tả cung cấp các yêu cầu để tạo chuẩn mới cho nhóm chuẩn hóa dựa trên đặc tả mà chúng tạo ra. Nhóm chuẩn hóa có IEEE – là chuẩn chính thức đề cập đến learning object, nhóm đặc tả có IMS Global Learning và AICC.

    • Một đặc tả trở thành chuẩn thực tế là SCORM (Sharared Content Object Reference Model) của dự án ADL. Nó hợp nhất một số đặc tả để chắc chắn rằng các LMS có thể trao đổi learning objects với nhau.


5.1.2 Cơ chế đóng gói:


    • Packaging là cơ chế tập hợp và tổ chức tất cả các tập tin có liên quan lại với nhau để tạo nên một bài giảng hoặc một khóa học. Các tập tin này có nội dung và được lưu trữ theo nhiều định dạng khác nhau như pdf, doc, flash, video...Nội dung được đóng gói lại gọi là Content Package.




    • Packaging định nghĩa cách mà các kiểu nội dung học khác nhau (actual content, media, Assessment, Collarboration, và các tập tin khác) có thể được trao đổi giữa các hệ thống - LMS khác nhau theo cách đã được chuẩn hóa.




    • Việc đóng gói nội dung được thực hiện bằng cách sử dụng một tập tin XML Manifest. Để đóng gói và trình diễn một gói nội dung – Content Package, ReloadEditor sử dụng một công nghệ thuộc nhóm đặc tả là IMS Content Package và một công nghệ thuộc nhóm chuẩn hóa là SCORM Content Package.Chúng ta sẽ tìm hiểu rõ hơn về IMS Content Package và SCORM Content Package o phần sau



      5.2 Cơ Chế Preview

    • Chức năng Preview được thực hiện dựa trên các tập tin html và javascript.

    • Framework thực hiện chức năng Preview

Hình 5.2 Sơ đồ lớp chức năng Preview



  • Khi RELOAD EDITOR được kích hoạt để khởi chạy – phương thức main () của lớp EditorFrame để tạo ra EditorFrame. Trong quá trình tạo ra EditorFrame sẽ thực hiện phương thức checkSupportFolder ().

  • Phương thức này sẽ đảm bảo cho các file hỗ trợ làm việc

  • Khởi tạo CopyTask trong đó truyền tham số là đường dẫn file nguồn, và thư mục đích.

  • Gọi phương thức execute () của CopyTask để giải nén file jar vào thư mục đích.

    • Kết quả của quá trình này sẽ tạo thư mục reload-editor trong user-home. Reload-editor chứa 2 thư mục là helpers và preview.

Hình 5.3 Cấu trúc thư mục Reload-Editor trong user-home



    • Thư mục helpers chứa các thư mục trong đó chứa các tập tin profile, schemahelper, vocab đối với từng loại content package(cp), metadata(md), SCORM(scorm), Simple Sequence(ss).

    • Thư mục preview chứa một tập tin ReloadContentPreview.htm và một thư mục ReloadContentPreviewFiles.




    • Khi chức năng Preview được kích hoạt. Hệ thống sẽ thực hiện phân tích tập tin imsmanifest.xml và ghi thành tập tin CPOrgs.js đặt trong thư mục user-home cùng các tập tin .js khác.



Qui trình trên được thực hiện cụ thể như sau:

    • Khi người dùng kích hoạt nút Preview, phương thức menuActionPerformed () trong lớp ProxyViewCPHandler được thực hiện.

  • Phương thức này sẽ khởi tạo CP_Viewer cho ContentPackage (là đối tượng imsmanifest.xml)

  • Sau đó thực hiện phương thức launch () của CP_Viewer. Cụ thể:

    • Phân tích nội dung của ContentPackage hay imsmanifest.xml thành chuỗi thông qua phương thức parse ().

    • Ghi nội dung chuỗi vừa đọc được vào file CPOrgs.js trong thư mục user-home/reload-editor/preview/ReloadContentPreviewFiles đã được khởi tạo ở trên bằng cách thực hiện phương thức writeItemsToFile (String javascriptString, File navigationFile). Trong đó javascriptString là chuỗi vừa phân tích được

    • NavigationFile là file CPOrgs.js được xác định thông qua phương thức getNavigationFile(). Thư mục chứa nó được xác định thông qua phương thức getFileProperty("preview.dir") của lớp EditorProperties.

    • Thực hiện phương thức launchFile(File previewFile) của lớp NativeLauncher. Trong đó tham số previewFile xác định file ReloadContentPreview.htm trong thư mục home/reload-editor/preview.




    • Kết quả sau khi ghi file CPOrgs.js như sau:


Hình 5.4 Ghi nhận kết quả sau khi ghi file CPOrgs.js




    • Nội dung của file CPOrgs.js gồm các thông tin về tên Package, thông tin của organization gồm: organizationName, organizationIdentifier và thông tin của các item của organization. Thông tin của mỗi item gồm: itemTitle, itemIdentifier, itemParent, itemHyper và thuộc tính nếu có.

    • Thông tin cụ thể của từng nội dung:

  • organizationName: tên của organization được thể hiện khi trình bày.

  • organizationIdentifier: định danh duy nhất của một organization.

  • itemTitle: Tiêu đề của item được thể hiện khi trình bày.

  • itemIdentifier: định danh duy nhất của một item

  • itemParent: giá trị mặc định là “menu”. Được dùng như một giá trị để xây dựng menu hiển thị cho organization.

  • itemHyper: đường dẫn chỉ đến nguồn tài nguyên mà item sử dụng

    • Tác dụng cụ thể của itemParent được thể hiện như sau:

  • Dùng trong ReloadContentPreview.htm : khởi tạo menu hiển thị rỗng

frameborder="no" border="0" scrolling="no" resize>



  • Dùng trong code.htm và trong mtmcode.js để cập nhật thông tin hiển thị cho menu

      Trong code.htm

function reloadTree(index, shouldReload){

try{


menu = null;

orgToPlay = index;

tempMenuText = CPAPI.orgArray(orgToPlay).organizationName;

MTMenuText = tempMenuText.replace('\\\'', '\'') ;

CPAPI.setCurrentOrg(orgToPlay);

MTMFirstRun = true;

menu = new MTMenu();

redraw(menu);

MTMStartMenu(true);

// launch first item...

NavigateItems(CPAPI.orgArray(orgToPlay)._currentItem); }

catch(ex){

…..

}

}



Code.htm sử dụng mtmcode.js để định nghĩa một số thao tác đối với menu

Ghi chú: Giá trị “menu” này phải thống nhất ở các file trên. Nếu thay đổi giá trị này ở một trong các file trên thì không thể hiển thị nội dung của Package được.

Ví dụ nội dung của một CPOrgs.js cụ thể:

CPAPI.packageName = "all";

CPAPI.orgArray(0).organizationName = "Content";

CPAPI.orgArray(0).organizationIdentifier = "{FD2AA266-FA11-46C0-B04F-12F79CFC034D}";

CPAPI.orgArray(0).itemArray(0).itemTitle = "Internet Explorer Slide Show";

CPAPI.orgArray(0).itemArray(0).itemIdentifier = "ITEM-{F2264885-10DD-4D88-8F03-53A47FDC2CEE}";

CPAPI.orgArray(0).itemArray(0).itemParent = "menu";

CPAPI.orgArray(0).itemArray(0).itemHyper = "file:///D:/Luan%20van%20TN/Dowload/reload/all/ie.html";

CPAPI.orgArray(0).itemArray(1).itemTitle = "Real Player Slide Show";

CPAPI.orgArray(0).itemArray(1).itemIdentifier = "ITEM-{4558433C-2A44-4C25-BE95-CE5BAF5ED885}";

CPAPI.orgArray(0).itemArray(1).itemParent = "menu";

CPAPI.orgArray(0).itemArray(1).itemHyper = "file:///D:/Luan%20van%20TN/Dowload/reload/all/rp.smil";

CPAPI.orgArray(0).itemArray(2).itemTitle = "QuickTime Slide Show";

CPAPI.orgArray(0).itemArray(2).itemIdentifier = "ITEM-{F35A85B5-8975-4389-8EBD-34017D7DB66E}";

CPAPI.orgArray(0).itemArray(2).itemParent = "menu";

CPAPI.orgArray(0).itemArray(2).itemHyper = "file:///D:/Luan%20van%20TN/Dowload/reload/all/qt.smil";

CPAPI.orgArray(0).itemArray(3).itemTitle = "Full Size Print Version";

CPAPI.orgArray(0).itemArray(3).itemIdentifier = "ITEM-{F98A681F-8374-49FF-A118-32D058C3383F}";

CPAPI.orgArray(0).itemArray(3).itemParent = "menu";

CPAPI.orgArray(0).itemArray(3).itemHyper = "file:///D:/Luan%20van%20TN/Dowload/reload/all/full.html";

CPAPI.orgArray(0).itemArray(4).itemTitle = "3 Per Page Print Version";

CPAPI.orgArray(0).itemArray(4).itemIdentifier = "ITEM-{17F025CC-7270-4BDA-B09E-AABDBFF5D13E}";

CPAPI.orgArray(0).itemArray(4).itemParent = "menu";

CPAPI.orgArray(0).itemArray(4).itemHyper = "file:///D:/Luan%20van%20TN/Dowload/reload/all/printable.html";

CPAPI.orgArray(0).itemArray(5).itemTitle = "Mp3 Audio Version";

CPAPI.orgArray(0).itemArray(5).itemIdentifier = "ITEM-{B6BDCB3B-24CB-400B-8C78-8EA91A73DAB7}";

CPAPI.orgArray(0).itemArray(5).itemParent = "menu";

CPAPI.orgArray(0).itemArray(5).itemHyper = "file:///D:/Luan%20van%20TN/Dowload/reload/all/all.mp3";

CPAPI.orgArray(0).itemArray(6).itemTitle = "All Links Used";

CPAPI.orgArray(0).itemArray(6).itemIdentifier = "ITEM-{2077DEF5-D320-4C5B-82D1-B26AD95A28DD}";

CPAPI.orgArray(0).itemArray(6).itemParent = "menu";

CPAPI.orgArray(0).itemArray(6).itemHyper = "file:///D:/Luan%20van%20TN/Dowload/reload/all/links.html";

Sau khi thực hiện ghi thư mục CPOrgs.js và thực hiện phương thức launch(), nó sẽ gọi phương thức launchURL(String url). Phương thức này sẽ xác định hệ điều hành đang chạy và thực hiện câu lệnh tương ứng để chạy file ReloadContentPreview.htm với tham số url xác định đường dẫn đến file

ReloadContentPreview.htm

public static void launchURL(String url) {

// Find the OS

int OS = GeneralUtils.getOS();

switch(OS) {

case GeneralUtils.WINDOWS_XP:

case GeneralUtils.WINDOWS_2000:

case GeneralUtils.WINDOWS_NT:

try {


Process process = Runtime.getRuntime().exec(new String[] { "cmd.exe", "/c", "start", "\"\"", '"' + url + '"' });

process.waitFor();

process.exitValue();

}

catch(Exception ex) { System.out.println(Messages.getString("uk.ac.reload.dweezil.util.NativeLauncher.0"));



}

break;


case GeneralUtils.WINDOWS_9x:

try {


Process process = Runtime.getRuntime().exec("start " + '"' + url + '"'); process.waitFor();

process.exitValue();

}

catch(Exception ex) { System.out.println(Messages.getString("uk.ac.reload.dweezil.util.NativeLauncher.0"));



}

break;
case GeneralUtils.MACINTOSH:

try {

// Let MRJ do all the work for us.



Class targetClass = Class.forName("com.apple.mrj.MRJFileUtils");

Method openURL = targetClass.getDeclaredMethod("openURL", new Class[] {String.class});

openURL.invoke(null, new Object[] {url});

}

catch(Exception ex) {



System.out.println(Messages.getString("uk.ac.reload.dweezil.util.NativeLauncher.1"));

}

break;



case GeneralUtils.UNIX:

try {


Process process = Runtime.getRuntime().exec("mozilla " + url);

process.waitFor();

process.exitValue();

}

catch(Exception ex) { System.out.println(Messages.getString("uk.ac.reload.dweezil.util.NativeLauncher.2"));



}

break;


default:

MyOptionPane.showMessageDialog(null, Messages.getString("uk.ac.reload.dweezil.util.NativeLauncher.3"), Messages.getString("uk.ac.reload.dweezil.util.NativeLauncher.4"),

JOptionPane.INFORMATION_MESSAGE);

}

}



File ReloadContentPreview.htm sẽ thực hiện load các trang htm khác trong thư mục ReloadContentPreviewFiles bằng cách chạy đoạn mã javascript, sử dụng các frame để chỉ đến các file htm. Một số trang trong các trang htm này trong quá trình được load sẽ thực hiện các đoạn mã javascript.Mỗi trang htm đóng một trò nhẩt định trong việc hiển thị. Vai trò của các file htm và các file javascript cụ thể như sau:
File CP_Frame.htm:

Điều khiển toàn bộ việc hiển thị cả hai cửa sổ bên trái và bên phải.

Khi được load sẽ gọi code frame thực hiện function StartUp (). Trước đó nó thực hiện các function ở 2 file CPModel.js và CPOrgs.js
CPModel.js

Định nghĩa một đối tượng là packageModel gọi là CPAPI để mô tả và xây dựng cấu trúc cho IMS Content Pakage tổng quát. Đồng thời định nghĩa các hành như get, upadate, change trên các đối tượng của Package như item, organization.



CPOrgs.js

Định nghĩa cấu trúc của một Content Package cụ thể bao gồm việc định nghĩa các Organization và các Item

Định nghĩa Organization bao gồm Name, Identifier và các item bên trong

Định nghĩa Item bao gồm các thành phần cơ bản như itemTitle, itemIdentifier, itemParent, itemHyper. Trong đó itemHyper sẽ chỉ đường dẫn đến file nguồn cần hiển thị

Đồng thời thực hiện việc updade các hành vi thực hiện của các nút prev, next, show/hide cửa sổ bên trái.

File code.htm:

Chứa đoạn javascript StartUp() thực hiện load và hiển thị cây menu ở cửa sổ bên trái dựa trên cấu trúc của Content Package đã được xây dựng khi thực hiện các file CPModel.js và CPOrgs.js

Trước khi hiển thị nó sẽ thực các function trong file mtmcode.js

File mtmcode.js sẽ xây dựng các đối tượng cần thiết phục vụ cho việc hiển thị ở cả 2 khung cửa sổ như thanh menu, menu item, các icon, browser hiển thị, các stylesheet…


File menu_empty.htm:

Giúp hiển thị thanh menu chứa các organization và các item ở cửa sổ bên trái.

Tên của frame này phải khớp với thành phần itemParent của các item được mô tả trong CPOrgs.js

ReloadContentPreView.htm


CPOrgs.js

CPAPI.orgArray(0).itemArray(0).itemParent = "menu";

Thanh menu này được tạo ra và sử dụng trong khi chạy mã javascript ở các file code.htm, mtmcode.js
File search.htm:

Thành phần hỗ trợ cho việc tìm kiếm thông tin mà người dùng cần.



File CPStart.htm:

Hỗ trợ cho việc hiển thị các thành phần ở khung cửa số bên phải tương ứng với đối tượng được chọn bên khung cửa sổ bên trái.



      5.3 Phương pháp chuẩn hóa:

Phương pháp để chuẩn hóa là thông qua kĩ thuật của XML Namespace. Tất cả các đặc tả của IMS (IMS Specification) đều có không gian tên của nó.

    • Việc phân biệt chuẩn IMS và chuẩn SCORM là dựa trên không gian tên – là nơi chứa các phần tử mà schema định nghĩa.

    • Namespace và Schema tham chiếu trong một số đặc tả của IMS:




Đặc tả

Namespace

Tên file

Content Package

http://www.imsglobal.org/xsd/imscp_v1p1

imscp_v1p1.xsd

Meta-Data

http://www.imsglobal.org/xsd/imsmd_v1p2

imsmd_v1p2.xsd

Learning Design

http://www.imsglobal.org/xsd/imsld_v1p0

imsld_v1p0.xsd

Bảng 5.1 Namespace và Schema tham chiếu trong một số đặc tả của IMS
Ví dụ file Manifest định nghĩa Content Package của đặc tả IMS



<manifest identifier="MANIFEST1" xmlns="http://www.imsproject.org/xsd/ims_cp_rootv1p1" xmlns:imsmd="http://www.imsproject.org/xsd/ims_md_rootv1p1" xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance" xsi:schemaLocation="http://www.imsproject.org/xsd/ims_cp_rootv1p1

http://www.imsproject.org/xsd/ims_cp_rootv1p1.xsd http://www.imsproject.org/xsd/ims_md_rootv1p1 http://www.imsproject.org/xsd/ims_md_rootv1p1.xsd">


























      Chuẩn SCORM được phát triển dựa trên chuẩn IMS, do đó ngoài không gian tên của IMS, file manifest được xây dựng theo chuẩn SCORM còn chứa không gian tên của ADL SCORM http://www.adlnet.org/xsd/adlcp_rootv1p2. Tất cả đều được định nghĩa trong file schema.


Ví dụ file imsmanifest.xml định nghĩa theo chuẩn SCORM:

<?xml version="1.0" encoding="UTF-8"?>

<!--Spawned from SMIRK http://smirk.herts.ac.uk-->

<manifest xmlns="http://www.imsproject.org/xsd/imscp_rootv1p1p2" xmlns:imsmd="http://www.imsglobal.org/xsd/imsmd_rootv1p2p1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:adlcp="http://www.adlnet.org/xsd/adlcp_rootv1p2" identifier="MANIFEST-{3720BA04-3FBE-4DE6-860D-19C9AF4F0309}">















      5.4 Chuẩn IMS và SCORM

Каталог: data
data -> HƯỚng dẫn càI ĐẶt và SỬ DỤng phần mềm tạo bài giảng e-learning
data -> CỘng hòa xã HỘi chủ nghĩa việt nam độc lập Tự do Hạnh phúc
data -> Qcvn 81: 2014/bgtvt
data -> Trung taâm tin hoïC Ñhsp ñEÀ thi hoïc phaàn access
data -> PHỤ LỤC 2 TỔng hợp danh mục tài liệu tham khảO
data -> Công ty cổ phần Xây dựng Điện vneco3
data -> Nghiên cứu một số đặc điểm
data -> NHỮng đÓng góp mới của luậN Án tiến sĩ CẤP ĐẠi học huế Họ và tên ncs : Nguyễn Văn Tuấn
data -> Mẫu 01/hc-sn-dn (Ban hành kèm theo Thông tư số 83/2007/tt-btc ngày 16/7/2007 của Bộ Tài chính) TỜ khai hiện trạng sử DỤng nhà, ĐẤt thuộc sở HỮu nhà NƯỚc và ĐỀ xuất phưƠng án xử LÝ

tải về 0.64 Mb.

Chia sẻ với bạn bè của bạn:
1   2   3   4   5   6   7   8




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương