• 検索結果がありません。

どんな発表? 他のシステム内の学習履歴 ( 評点 + フィードバック ) 他の LMS Excel 成績表 やりたいこと Moodle オフライン課題や Gradebook に自動的に集約 やりたくないこと Moodle プラグイン開発 Moodle ソース改変 Moodle Mood

N/A
N/A
Protected

Academic year: 2022

シェア "どんな発表? 他のシステム内の学習履歴 ( 評点 + フィードバック ) 他の LMS Excel 成績表 やりたいこと Moodle オフライン課題や Gradebook に自動的に集約 やりたくないこと Moodle プラグイン開発 Moodle ソース改変 Moodle Mood"

Copied!
33
0
0

読み込み中.... (全文を見る)

全文

(1)

ID388  (Booklet  p.27)  

Moodle  Web  Service   を用いた   バルク評定インポート  

Bulk  Grade  Import    

with  Moodle  Web  Service

樋口三郎 ( 龍谷大学理工学部 )  

Saburo  Higuchi  (Ryukoku  University)  

hHp://hig3.net

(2)

どんな発表 ?

•   他のシステム内の学習履歴 ( 評点 + フィードバック )  

–  他の LMS   –  Excel   成績表  

•   やりたいこと  

–  Moodle   オフライン課題や Gradebook   に自動的に集約  

•  やりたくないこと  

–  Moodle   プラグイン開発  

–  Moodle   ソース改変  

•   Moodle  2.8.3+  

•   Moodle  Web  Service   とは  

–  HTTP   で Moodle に機能実行を指令 ,   データ転送する機能  

(3)

評定インポートとは

(4)

LT293(at 東京家政大 2013) ユーザ視点から見た

種々の評定インポート方法 Grade Import Techniques

for Moodle 2.4

樋口三郎 ( 龍谷大学 ) http://hig3.net Saburo Higuchi (Ryukoku University)

龍谷大学

(5)

比較

CSV XML Grade Publishing

LTI v1 Web Service

基本的 柔軟

対話的

非対話的 自動化可能 とりあえず 動く

標準化 標準化

なんでもで きる ( はず )

自動化不可 識別子固定 危険

受験のた びに 1 名 ずつ

まだ実装が ない

認証 Moodle User IP + key as OAuth OAuth

(6)

どんな報告者 ?

•   龍谷大学 理工学部 数理情報学科  ( 教員 )  

–  全学の仕様策定・運用側ではない  

•   Moodle 歴  

–  全学サーバの教員ユーザ  2006-­‐(1.x-­‐)  

–  自前サーバ (2.7) の管理者 + 教員ユーザ  2012-­‐  

–  学内的 LMS 普及活動  2008,2013,…  

–  Mahara  ,   他 Web アプリ併用  

•   こんな科目  

–  計算科学☆演習 II,   確率統計☆演習 I,  (1 年生向け計算機科学 導入科目 ),(3 年生向けキャリア開発科目 ),(3,4 年生向け卒業研 究 ),( インターンシップ科目 ),TA 向け ,   学科学生向け  

•   龍谷大学全学 = 情報メディアセンターの LMS    

Moodle  →  Moodle  2.7LTS  +  Manaba  course  (2015)  

(7)

•  Introduc^on  

•  Demonstra^on  

•  Moodle  Web  Servicre   とは  

•  実装  

•  比較と考察

(8)

Demo

Web  Service   Client

プラウザ

•  サイト管理者が Web  Service   有効化  

•  コース教員が token 生成

•  Moodle の `token’ を預ける

•  目的に応じてプログラム   HTTP

hHps://gist.github.com/hig3/

(9)

クライアントから  /   バッチ処理も可能

•  管理者が Web  Service   有効化  

•  評定を管理できるコースの教員

wget,  curl   を用いた script

(10)

Moodle Web Serviceとは

(11)

Moodle  Web  Service  in  5  minutes

•  ( 要サイト管理者権限 )  1 個の Moodle サーバで  

•  Web  Service 機能 ( 総称 ) を有効化  

•  複数の Web  Service  ( 可算名詞 ) を定義  

–  Moodle  Mobile  Web  Service  (Built-­‐in)   –  External  Service  1  (Custom)  

–  External  Service  2  (Custom)  

–  …

(12)

Web  Service  (External)

•  1 個の Web  Service   は ,   次で定義される  

–  Web  Service   が使用できる Web  Service   関数群 = 機能  

•  必要な  capability   群が定まる  

–  Web  Service   を使用できるユーザ群  

•  全員の使用を許す選択肢もあり  

•  Userid   による制限  

•  ユーザが持つべき  capability   による制限  

•  Capabiilty:  Moodle   において ,   ユーザが特定の機能を実行

できる権限

(13)

Moodle  Web  Service   関数

•  hHps://tracker.moodle.org/browse/

MDL-­‐29934  

•  Administra^on  >  Site  administra^on  >  Plugins  

>  Web  Services  >  API  Documenta^on  

(14)
(15)

core_calendar_create_calendar_events     core_calendar_delete_calendar_events     core_calendar_get_calendar_events     core_cohort_add_cohort_members     core_cohort_create_cohorts     core_cohort_delete_cohort_members     core_cohort_delete_cohorts     core_cohort_get_cohort_members     core_cohort_get_cohorts     core_cohort_update_cohorts     core_course_create_categories     core_course_create_courses     core_course_delete_categories     core_course_delete_courses     core_course_delete_modules     core_course_duplicate_course     core_course_get_categories     core_course_get_contents     core_course_get_courses     core_course_import_course     core_course_update_categories     core_course_update_courses    

core_enrol_get_course_enrolment_methods     core_enrol_get_enrolled_users    

core_enrol_get_enrolled_users_with_capability     core_enrol_get_users_courses    

core_files_get_files     core_files_upload     core_get_component_strings     core_get_string    

core_get_strings     core_grade_get_defini^ons     core_grades_get_grades     core_grades_update_grades     core_grading_get_defini^ons    

core_grading_get_gradingform_instances     core_grading_save_defini^ons     core_group_add_group_members     core_group_assign_grouping     core_group_create_groupings     core_group_create_groups     core_group_delete_group_members     core_group_delete_groupings     core_group_delete_groups     core_group_get_course_groupings     core_group_get_course_groups     core_group_get_group_members     core_group_get_groupings     core_group_get_groups     core_group_unassign_grouping     core_group_update_groupings   core_message_block_contacts     core_message_create_contacts     core_message_delete_contacts    

core_notes_create_notes     core_notes_delete_notes     core_notes_get_notes     core_notes_update_notes     core_role_assign_roles     core_role_unassign_roles     core_user_add_user_device     core_user_create_users     core_user_delete_users    

core_user_get_course_user_profiles     core_user_get_users    

core_user_get_users_by_field     core_user_get_users_by_id     core_user_update_users     core_webservice_get_site_info     enrol_manual_enrol_users     enrol_self_get_instance_info    

message_airno^fier_are_no^fica^on_preferences_configured     message_airno^fier_is_system_configured    

mod_assign_get_assignments     mod_assign_get_grades     mod_assign_get_submissions     mod_assign_get_user_flags     mod_assign_get_user_mappings     mod_assign_lock_submissions     mod_assign_reveal_iden^^es    

mod_assign_revert_submissions_to_drah     mod_assign_save_grade    

mod_assign_save_grades     mod_assign_save_submission     mod_assign_save_user_extensions     mod_assign_set_user_flags     mod_assign_submit_for_grading     mod_assign_unlock_submissions     mod_forum_get_forum_discussion_posts     mod_forum_get_forum_discussions     mod_forum_get_forum_discussions_paginated     mod_forum_get_forums_by_courses     moodle_course_create_courses     moodle_course_get_courses     moodle_enrol_get_enrolled_users     moodle_enrol_get_users_courses     moodle_enrol_manual_enrol_users     moodle_file_get_files    

moodle_file_upload    

moodle_group_add_groupmembers     moodle_group_create_groups     moodle_group_delete_groupmembers     moodle_group_delete_groups     moodle_group_get_course_groups     moodle_group_get_groupmembers     moodle_group_get_groups    

moodle_message_send_instantmessages     moodle_notes_create_notes    

(16)

評定関係の Moodle  Web  Service   関数

•   Gradebook   操作  ( すべての Ac^vity,  Item を Grade 可能 )  

–  core_grades_get_grades    

–  core_grades_update_grades  (Assignment   の中では  Final   Grade   だけ変更されたように見える .  Feedback   付加不能 )  

•  Assignment   評定操作  

–  mod_assign_get_grades    

–  mod_assign_save_grade  (GUI と同等の Grading が可能 )   –  mod_assign_save_grades  (GUI と同等の Grading が可能 )  

•   他の core  module の評定の関数はない  

•  自作 module なら任意の Web  service 関数を実装可能

(17)

Web  Service   を使用するユーザ

•   Web  service   経由で指令を出す  capability  

–  webservice/rest:use  

•  Web  service   で評定を実行する  capability  

–  評点を操作する関数を使うには 教員  role   くらい必要  

•   評定インポートの場合 ,   次のいずれかが適切 ?  

–  「 WS ユーザ」 role   を作り ,   コース教員に付与する   –  教員 role を修正  

•  Role:   管理者 ,   教員 ,   編集権限のない教員 ,   学生 ,  …

(18)

実装

(19)

Moodle 側設定手順   ( 要サイト管理者権限 )

•  hHps://docs.moodle.org/28/en/

Using_web_services  

–  Web  Service 機能を有効化   –  Web  Service を定義  

–  教員ユーザに必要な  capability   を与える  

–  教員ユーザにセキュリティキー (token) を与える

(20)
(21)

Security  key  or  token による認証

•   (Web  Service,   ユーザ )   の有効な組を指定す るパスワードのようなもの  

•  生成  

–  サイト管理者が生成  

–  capability  moodle/webservice:createtoken   を有す るユーザ自身が生成  

•  IP,   期間による制限  

•  REST の場合 ,   これを URL パラメタとして渡す

(22)

Web  Service  Client   実装

•  core_grade_xxx_grades   の実装例  

–  hHps://gist.github.com/jleyva/9687810  by  Juan   Leyva  

•  Web  Service   一般の実装例  

–  hHps://github.com/moodlehq/sample-­‐ws-­‐clients   –  (Java,  Perl,  JavaScript,  PHP)  ×  (REST,  SOAP,  XML-­‐

RPC)  

(23)

Web  Service  Client   実装方針

•  WSC   独自に教員ユーザを

認証  

•  教員ユーザと ,  Web  Service   token  ( 秘匿 ) を紐付け  

•  WSC 学生ユーザは Moodle の userid,  email,  fistname,   lastname   などで一意対応  

•  評定項目は ,  … 一意に識別 できればいい  

•  適切な capability があれば ,   活動を作って評定を記入 ,   も可能  

•  Mod_assgin_save_grades  

–  Assignmen^d=2  

 

userid grade feedback

3 80 Well  done

4 99 Excellent

17 20 Resubmission  required

Userid\cmid 1 2 3

3 80 4 12

4 99 5 11

•  Core_grade_update_grades  

 

(24)

POST  URL

hHp://moodleserver.org/webservice/rest/server.php  

?wstoken=xxxxxxxxxxxxxxxxxxxxxxxxxxx  

&wsfunc^on=mod_assign_save_grades  

&moodlewsrespormat=json  

 

(25)

POST  Data  (in  JSON)

{'assignmen^d'  :1,  //   課題 id  

 'applytoall'  :1,  //   グループ提出課題の扱い

'grades'  :{  {'userid'  :1,  //   変更したい学生のみ      'grade':  99,  //   評点  

   'aHemptnumber'  :  -­‐1,      'addaHempt'  :  1,  

   'workflowstate'  :  'released',  

   'plugindata':{'assignfeedbackcomments_editor':  

           {'text':'Feedback  Text',  //   フィードバック                  'format':1},  

                   'files_filemanager':0                      }  

   },  

   {'userid':2,  ....},…}  

}

(26)

比較と考察

(27)

Web  Service  ( 対手動インポート )

•  課題 (assign)  

–  オフライン評定ワークシート  

–  mod_assign_save_grades  Web  Service   関数  

•  評定 (Gradebook)  

–  CSV  Import   –  XML  Import  

–  core_grade_save_grades  Web  Service   関数  

•  Web  Service   を使うと完全な自動化が可能  

(28)

Web  Service  ( 対  Moodle   カスタマイズ )

•  長所  

–  既存の Web アプリの機能追加として実装容易  

–  Moodle   側ではサイト管理者に一度だけ機能有

効化してもらえばよい  

–  Moodle   側のカスタマイズ不要 .   バージョンアップ

の際に API が保たれる可能性が高い  

•  短所  

–  Web  Service   関数として提供される機能はごく一

部  

(29)

比較

課題オフラ イン評定

CSV  Import XML  Grade  

Publishing LTI  /  LIS Web  Service

基本的 柔軟 対話的      

容易    

基本的   柔軟   対話的  

非対話的   自動化可能   とりあえず 動く  

標準化 標準化   クライアント 側の自由度 高い  

バルクでな .  1 .   自動化 活動ず

不可 .

自動化不可 識別子固定   危険  

バルクで ない .   受験 のたびに 1 名 /1 活動 ずつ

実装・文書化 進行中

認証 認可

Moodle   User   認証

Moodle  

User 認証

IP  +  key  as   URL  query   parameter

OAuth IP  +  Key  as  

URL  query  

parameter

(30)

野望 1: 携帯出席データの集約

Web  Service   Client

•  全学 Moodle  

•  サイト管理者に  Web  Service   を有効 化してもらう必要  

•  コース教員が token 生成する必要 •  携帯出席サーバ  

HTTP cron

(31)

野望 2: クリッカー投票結果の   リフレクション

Web  Service   Client

•  サイト管理者が Web  Service   有効化  

•  コース教員が token 生成

•  変換サーバ   HTTP

Upload   Excel  

Worksheets

(32)

評定インポートとは

(33)

拝啓 サイト管理者様

•  有効化してあげてください  

•  enablewebservices  

•  capability   与えてあげてください  

•  moodle/webservice:userest  

•  moodle/webservice:createtoken  

参照

関連したドキュメント

上げ 5 が、他のものと大きく異なっていた。前 時代的ともいえる、国際ゴシック様式に戻るか

「課題を解決し,目標達成のために自分たちで考

J-STAGE は、日本の学協会が発行する論文集やジャー ナルなどの国内外への情報発信のサポートを目的とした 事業で、平成

わかりやすい解説により、今言われているデジタル化の変革と

建物敷地や身近な緑化の義務化 歩きやすい歩道の確保や 整ったまちなみの形成 水辺やまとまった緑など

認知症の周辺症状の状況に合わせた臨機応変な活動や個々のご利用者の「でき ること」

 自然科学の場合、実験や観測などによって「防御帯」の

大村 その場合に、なぜ成り立たなくなったのか ということ、つまりあの図式でいうと基本的には S1 という 場