ステップバイステップで学ぶ修学カルテ作成(中編)

この記事では WebClass の学習記録ビューアプラグインである修学カルテで使うカルテの作り方を説明します。

修学カルテは、大学を通しての学修について、教員のレビューを受けながら、学生が定期的に目標の設定と達成の振り返りを行うためのツールです。

学習記録ビューアマニュアル 修学カルテ

この「ステップバイステップで学ぶ修学カルテ作成」は前編、中編、後編の3つに分かれています。

中編〜後編にかけて、修学カルテで使うカルテを作っていきます。

カルテとは、学生それぞれの学びの記録ができる場所です。修学カルテでは、XML と呼ばれる形式のファイルを作成することで、オリジナルのカルテを作ることができます。今回は XML ファイルを手順を追って作成していきます。

今回作成するカルテは、最終的に以下のようになります。1年次から4年次までの振り返りができるようなカルテです。学年ごとにルーブリック形式で振り返り項目があります。学生の振り返りに対して、担当教員がコメントを残せるようにしています。また、ボランティアなどの課外活動をまとめるような画面も用意しています。

スクリーンショット 2021-12-16 10.59.32.png

スクリーンショット 2021-12-16 10.59.56.png

では、早速始めていきましょう!

目次

  1. カルテの構成を理解しよう
  2. XML について
  3. まっさらなカルテを用意しよう
  4. プロフィールの項目を作ろう
  5. カードの項目を作ろう 〜 static_card編 〜

1. カルテの構成を理解しよう

修学カルテで使われているカルテはいくつかのブロックで構成されています。

  • プロフィール
    • 学生の基本情報を表示します
  • サマリー
    • カードごとの入力状況等を表示します
    • タブの名前として、「Summary」と表示されます
  • カード
    • カルテごとに定義した入力項目欄で構成されます
    • カードの単位で、表示・非表示や編集の可・不可を設定することができます
    • カードは複数用意することができます
  • 入力項目欄
    • カードごとに定義した入力項目が表示されます
    • 学生や、担当教員は入力項目欄からデータを入力します

スクリーンショット 2021-11-19 19.11.49.png

スクリーンショット 2021-11-19 19.07.34.png

これらの領域を XML を使って作っていきます。

2. XML について

修学カルテのカルテは XML という種類のファイルを用いています。XML を用いることで、カルテのプロフィール欄を変更したり、好きな入力項目を設定できます。

XML は以下の3つでできています。

  • 要素

要素は何を配置するかを定めます。修学カルテでは要素として使える名前はあらかじめ決まっており、こちらで公開されています。要素の名前で"タグ"と呼ばれるものを作って記載する必要があります。タグはのように""(開始タグ)で始まり、""(閉じタグ)で終わるものを指します。

  • 属性

属性は要素に情報を付け加えるために使用します。属性によっては、属性値として値を取ることがあります。属性は開始タグの中に記載します。

  • 内容

内容には画面に表示させたい文字を入力することができます。また、要素によっては内容に文字列ではなく他の要素を必要とするものもあります。内容は開始タグと閉じタグの間に記載します。

これらを以下のように配置します。

<要素名 属性名="属性値">内容</要素名>

また、要素の中に要素を含めることで、データとその構造を表現することができます。例えば、学生の情報は以下のようなXMLで表現できます(ここで使用しているタグは仮のもので、修学カルテで使用することはできません)。

<student>
    <name>山田 太郎</name>
  <faculty>経済学部</faculty>
  <status>卒業</status>
</student>

3. まっさらなカルテを用意しよう

XML について理解したところで、早速カルテを見ていきます。

まっさらなカルテの XML を用意しました。carte_example.xml.zip をダウンロードしてください。carete_example.xml.zip の中に carte_example.xml が入っています。

carte_example.xml

または、テキストエディタを開いて、コードを貼り付けて、ファイル名を「carte_examle.xml」にして保存してください。

<doc title="修学カルテチュートリアル" id="carte_example">
  <doc_template>
  </doc_template>
  <field_templates>
  </field_templates>
</doc>

コードの説明をします。

  • <doc>

全体を束ねるための要素です。この中にカルテの構成情報を書いていきます。

  • <doc> : title 属性

カルテに名前をつけます。今回は"修学カルテチュートリアル"というカルテ名になります。

  • <doc> : id 属性

カルテに固有の id をつけます。修学カルテでは、この id を用いて XML ファイルの識別を行います。この id は他カルテと重複しない値を設定してください。

  • <doc_template>

プロフィール項目を設定したり、カードの数を指定します。現在はまだ何も記載していないため、プロフィールとカード情報のみが表示されます。

  • <field_templates>

入力項目欄に入力項目を設定します。現在は何も記載していないため、入力項目欄には何も表示されません。

このまっさらなカルテを一度修学カルテに設定してみます。設定方法は前編を参考にしてください。

カルテを設定して、任意のユーザのカルテを見ると以下のような画面が表示されます。

スクリーンショット 2021-11-26 19.08.04.png

これでまっさらなカルテを設定できました。これからこのカルテを変更していきます。

4. プロフィールの項目を作ろう

プロフィールには学生の基本情報が表示されます。この欄に表示する情報を選択したり、新しく入力項目を追加することができます。プロフィール項目を変更するときには、 profile 要素を doc_template に追加する必要があります。追加すると以下のようになります。

<doc id="carte_example" title="修学カルテチュートリアル">
  <doc_template>
    <profile>

    </profile>
  </doc_template>
  <field_templates>
  </field_templates>
</doc>

doc_template の内容に profile 要素を追加できました。これだけではまだプロフィールの項目は追加されません。プロフィールの項目を追加するにはこの profile 要素の中に param という要素を追加する必要があります。

param という要素はプロフィール項目の種類や名前を決めることができます。例えば以下のような param 要素を設定することができます。

例: <param name="email" label="eメール" />

この param 要素について説明します。

  • <param>

プロフィールに項目を追加するときに使用します。

  • <param> : name 属性

param 要素にどんな情報を持たせるかを指定します。今回の例では、email の情報を持たせています。

  • <param> : label 属性

プロフィール項目に表示させるときに、どういう名前で表示するかを指定します。

今回の param 要素を見ると、閉じタグがないことがわかります。開始タグの後ろの ">" の前に "/" をいれることで、閉じタグを省略することができます。もし、要素に内容が必要なときには、この書き方では追加できないので、注意してください。
追加した XML ファイルが以下のファイルとなります。

<doc id="carte_example" title="修学カルテチュートリアル">
  <doc_template>
    <profile>
      <param name="email" label="eメール" />
    </profile>
  </doc_template>
  <field_templates>
  </field_templates>
</doc>

ここまでの変更を保存して、修学カルテに反映させてみます。「XML を変更する」をクリックします。

スクリーンショット 2021-11-26 19.23.24.png

すると、以下のようなポップアップが表示されます。
ここで「carte_example.xml」を選択して「更新する」をクリックします。

スクリーンショット 2021-12-02 12.45.48.png

更新ができたら、「修学カルテチュートリアル」のカルテをみてみましょう。

スクリーンショット 2021-12-02 13.02.49.png

すると「eメール」という項目が追加されたのがわかります。これでプロフィールの項目が追加できました。

実際にカルテを使用する際に用いる項目を追加してみます。今回は以下を追加します。

  • 写真
  • 学年
  • 学部
  • 学科
  • 自由入力欄
  • 添付ファイル

これらを追加するには、以下のように記載します。

<doc id="carte_example" title="修学カルテチュートリアル">
  <doc_template>
    <profile>
      <param name="email" label="eメール" />
      <param name="profile.photo" label="写真" />
      <param name="profile.grade" label="学年" list-column="true" />
      <param name="profile.faclt" label="学部" list-column="true" />
      <param name="profile.dept" label="学科" list-column="true" />
      <param name="custom.comment" label="自由入力" type="text"  edit-auth="self" />
      <param name="custom.attach" label="添付ファイル" type="file" edit-auth="self" />
    </profile>
  </doc_template>
  <field_templates>
  </field_templates>
</doc>

name 属性で新たに profile と custom という新しい属性値が出てきました。それぞれについて説明します。

  • profile は WebClassシステム共通で使われる情報を使うときに利用します。WebClass で登録されている情報がそのまま表示されます。
  • custom はカルテ用に自由に設定できます。ここに入力するユーザは XML で指定することができます。

profile については、データの参照方法が決まっています。例えば、例のように学年を用いる場合には、"profile.grade" という name 属性値を与える必要があります。どういった情報を利用できるかは修学カルテマニュアルを参照してください。

新しく出てきた属性について説明します。

  • <param> : list-column 属性

カルテのユーザ一覧画面で項目を表示するかどうかを指定します。"true" と設定することで、一覧に表示されるようになります。

  • <param> : type 属性

入力するデータがテキストかファイルかを選択できます。テキストの時は "text"、ファイルの時は "file" と設定します。

  • <param> : edit-auth 属性

編集ができるユーザを設定できます。設定できるユーザは以下の通りです。

"self": 学生本人が編集できます
"adviser": アドバイザーが編集できます
"self,adviser": 学生本人とアドバイザーが編集できます。 

「アドバイザー」というのは、修学カルテの権限設定にて、「担当ユーザーにアドバイスする」という権限が付与されているロールが与えられているユーザのことになります。

修学カルテでは、「学生」や「担当教員」といった役職を「ロール」という単位で扱います。ロールに権限を付与することで、アカウントの役割を設定していきます。

このファイルを実際に修学カルテに登録します。すると、一覧画面が以下のように変更されます。

スクリーンショット 2021-12-03 17.45.30.png

先ほど "list-column" に設定した"学年"、"学部"、"学科" が一覧で表示されるようになりました。

また、ユーザ画面を開くと、以下のようになっています。

スクリーンショット 2021-12-03 17.47.05.png

先ほど追加した項目が追加させているのがわかります。”自由入力”と"添付ファイル"は学生自身が変更を加えることができるようになっています。学生アカウントで確認すると[プロフィール編集]のボタンがあり、プロフィールを実際に変更することができます。

スクリーンショット 2021-12-03 17.48.29.png

[プロフィール編集]のボタンをクリックすると、編集画面が表示されます。先ほど"edit-auth" で "self" と入力した箇所が変更できるにようになっているのがわかります。

スクリーンショット 2021-12-03 17.50.26.png

これでプロフィール項目については完了です。

5.カードの項目を作ろう 〜 static_card編 〜

次にカードの項目を作っていきます。カードは、学生が授業記録や、実習記録を残すときに使います。

まずは簡単なカードを一つ追加してみます。

<doc id="carte_example" title="修学カルテチュートリアル">
  <doc_template>
    <profile>
      <param name="email" label="eメール" />
      <param name="profile.photo" label="写真" />
      <param name="profile.grade" label="学年" list-column="true" />
      <param name="profile.faclt" label="学部" list-column="true" />
      <param name="profile.dept" label="学科" list-column="true" />
      <param name="custom.comment" label="自由入力" type="text"  edit-auth="self"   list-column="true" />
      <param name="custom.attach" label="添付ファイル" type="file" edit-auth="self" />
    </profile>

    <cards>
      <static_card id="card_test" title="カードのテスト">
        <field id="card_filed_test" ref="comment" />
      </static_card>
    </cards>

  </doc_template>
  <field_templates>
    <field_template id="comment" title="コメント" type="text" edit-auth="self,adviser" />
  </field_templates>
</doc>

ここで追加されたのは <cards> と <cards> の中身です。それぞれについて説明します。

  • <cards>

カードを追加するときには、<doc_template> に新たに <cards> という要素を追加します。ここにカードの内容などを追加していきます。

  • <static_card>

カードの中身について記載します。カードは <static_card> と <appendable_card> の2種類があります。今回は を使います。

  • <static_card> : id 属性

カードに識別の id を与えます。これは他のカードと重複しないように設定してください。

  • <static_card> : title 属性

カードにタイトルをつけます。今回追加するのは「カードのテスト」という名前のカードです。

例: <static_card id="card_test" title="カードのテスト">
  • <field>

(もしくは)にどんな入力項目を追加するか記載します。今回は <static_card> の中に field 要素を追加します。

  • <field> : id 属性

入力項目に識別の id を与えます。これは他の入力項目と重複しないように設定してください。

  • <field> : ref 属性

field 要素では、どのような入力項目を使用するかを後で説明する field_template からしているする必要があります。この ref 属性では、どの field_template を参照するかを指定します。

例: <field id="card_filed_test" ref="comment" />
  • <field_template>

どんな入力項目にするかのテンプレートを作ります。filed_template 要素は のなかに追加します。今回の例では、何かしらのコメントを入れられるような入力項目になっています。

  • <filed_template> : id 属性

field_template を識別するために使用します。field 要素の ref 属性ではここで設定した id を参照しています。

  • <filed_template> : title 属性

入力項目に名前をつけています

  • <filed_template> : type 属性

入力形式を設定しています。種類として、"text" や "file" などがあります。

  • <filed_template> : edit-auth 属性

入力が可能なユーザを設定しています。

例: <field_template id="comment" title="コメント" type="text" edit-auth="self,adviser" />

この変更を一度修学カルテに反映させて、どう変わるのかを確認します。すると、カードが加わったことで、カードのタブが増えたことがわかります。

[カードのテスト]をクリックすると以下のような画面が出てきます。

スクリーンショット 2021-12-09 10.28.51.png

先ほど追加した field_template で設定したコメントの欄があるのが確認できます。[回答]をクリックすると、テキストを入力する欄が表示されます。

スクリーンショット 2021-12-09 10.28.51.png

今回は編集できる権限を持っているのが edit_auth より ”self,adviser" なので、学生本人か「担当ユーザーにアドバイスする」権限を持つユーザが編集できます。

以上がカードを追加する一連の流れになります。これから、より実践的な例を使って、カードを作ってみます。以下がコードになります。

<doc id="carte_example" title="修学カルテチュートリアル">
  <doc_template>
    <profile>
      <param name="email" label="eメール" />
      <param name="profile.photo" label="写真" />
      <param name="profile.grade" label="学年" list-column="true" />
      <param name="profile.faclt" label="学部" list-column="true" />
      <param name="profile.dept" label="学科" list-column="true" />
      <param name="custom.comment" label="自由入力" type="text"  edit-auth="self"   list-column="true" />
      <param name="custom.attach" label="添付ファイル" type="file" edit-auth="self" />
    </profile>

    <cards>
      <static_card id="grade1" title="1年次" edit-protect-target="self">
        <field ref="recognize_issue" id="recognize_issue" />
        <field ref="communicate" id="communicate" />
        <field ref="english" id="english" />

        <field ref="reflection" id="reflection" />
        <field ref="attach" id="attach" />
        <field ref="adviser_comment" id="adviser_comment" />
      </static_card>
      <static_card id="grade2" title="2年次" edit-protect-target="self">
        <field ref="recognize_issue" id="recognize_issue" />
        <field ref="communicate" id="communicate" />
        <field ref="english" id="english" />

        <field ref="reflection" id="reflection" />
        <field ref="attach" id="attach" />
        <field ref="adviser_comment" id="adviser_comment" />
      </static_card>
      <static_card id="grade3" title="3年次" edit-protect-target="self">
        <field ref="recognize_issue" id="recognize_issue" />
        <field ref="communicate" id="communicate" />
        <field ref="english" id="english" />

        <field ref="reflection" id="reflection" />
        <field ref="attach" id="attach" />
        <field ref="adviser_comment" id="adviser_comment" />
      </static_card>
      <static_card id="grade4" title="4年次" edit-protect-target="self">
        <field ref="recognize_issue" id="recognize_issue" />
        <field ref="communicate" id="communicate" />
        <field ref="english" id="english" />

        <field ref="reflection" id="reflection" />
        <field ref="attach" id="attach" />
        <field ref="adviser_comment" id="adviser_comment" />
      </static_card>
    </cards>

  </doc_template>
  <field_templates>
    <field_template edit-auth="adviser" id="adviser_comment" title="教職課程担当教員のコメント" type="text" />
    <field_template edit-auth="self" id="reflection" title="今年次の履修のまとめ" type="text" require="true" />
    <field_template edit-auth="self"  id="attach" title="他大学での履修のまとめ(転・編入生のみ)" type="file" />

    <field_template edit-auth="self" id="recognize_issue" title="課題探求" type="rubric" require="true">
      <rubric>
        <rubric_header>
          <level value="1">全くできていない</level>
          <level value="2">あまりできていない</level>
          <level value="3">まあできている</level>
          <level value="4">よくできている</level>
          <level value="5">とてもよくできている</level>
        </rubric_header>
        <dimension id="recognize" title="【課題認識と探究心】" description="自己の課題を認識し、その解決にむけて、学び続ける姿勢を持っていますか。">
          <option level="1"/>
          <option level="2"/>
          <option level="3"/>
          <option level="4"/>
          <option level="5"/>
        </dimension>
      </rubric>
    </field_template>

    <field_template edit-auth="self" id="communicate" title="コミュニケーション" type="rubric" require="true">
      <rubric>
        <rubric_header>
          <level value="5"/>
          <level value="4"/>
          <level value="3"/>
          <level value="2"/>
          <level value="1"/>
        </rubric_header>
        <dimension id="theme" title="【専門的なテーマの学習】" description="専門的な課題に対してどのくらい学んでいますか。">
          <option level="5">様々な角度から十分に学習を行なっている</option>
          <option level="4">十分に行っている</option>
          <option level="3">適度に行っている</option>
          <option level="2">行っているが、不十分である</option>
          <option level="1">行っていない。</option>
        </dimension>
        <dimension id="discussion" title="【グループでの討論、自分の主張について】" description="相手に対して、わかりやすいような説明ができていますか。">
          <option level="5">適切で創造的な手順・手段を用いて分かりやすく説明し、相手を十分に納得させることができる</option>
          <option level="4">適切な手順・手段を用いて分かりやすく説明し、相手を納得させることができる</option>
          <option level="3">切な手順・手段を用いて分かりやすく説明できる</option>
          <option level="2">切な手順・手段を用いて説明しようとしているが、不十分である</option>
          <option level="1">適切な手順・手段を用いて分かりやすく説明していない</option>
        </dimension>
                <dimension id="respect" title="【他者の意見の尊重について】" description="相手の意見をどのくらい理解できていますか。">
          <option level="5">相手の意見を十分に理解した上で、さまざまな視点から考えることができる</option>
          <option level="4">相手の意見を深いところまで十分に理解できる</option>
          <option level="3">相手の意見を正しく理解することができる</option>
          <option level="2">相手の意見を理解することができる</option>
          <option level="1">相手の意見を理解できていない</option>
        </dimension>
      </rubric>
    </field_template>

        <field_template edit-auth="self" id="english" title="英語力" type="rubric" require="true">
      <rubric>
        <rubric_header>
          <level value="5"/>
          <level value="4"/>
          <level value="3"/>
          <level value="2"/>
          <level value="1"/>
        </rubric_header>
        <dimension id="theme" title="【発音】" description="英語のネイティブな発音ができていますか。">
          <option level="5"/>
          <option level="4"/>
          <option level="3"/>
          <option level="2"/>
          <option level="1"/>
        </dimension>
        <dimension id="discussion" title="【文章力】" description="文法を意識し、相手に伝わるような文章を書くことができていますか。">
          <option level="5"/>
          <option level="4"/>
          <option level="3"/>
          <option level="2"/>
          <option level="1"/>
        </dimension>
        <dimension id="respect" title="【会話】" description="英語を用いて、相手に正しく情報を伝えられていますか。">
          <option level="5"/>
          <option level="4"/>
          <option level="3"/>
          <option level="2"/>
          <option level="1"/>
        </dimension>
      </rubric>
    </field_template>

  </field_templates>
</doc>

それぞれ年度ごとに振り返りができるように1年時から4年時までのカードを追加しています。年度の終わりにそれぞれのカードで復習をしてもらうような形式です。

コード量が一気に増えましたが、基本的な流れは先ほどと一緒です。ここで新たに追加された要素・属性について説明します。

  • <field_template> : require 属性

require 属性は必須項目にするかどうかを設定します。

例: <field_template edit-auth="self" id="english" title="英語力" type="rubric" require="true">
  • <rubric>

rubric 要素は入力項目にルーブリックを用いるときに使用します。

  • <rubric_header>

ルーブリックを使用するときに、表のヘッダに何を表示するかを指定します。

  • <level>

ルーブリックのヘッダの項目数を設定したり、ヘッダのセルに項目の内容を入れます。

  • <level> : value 属性

後に説明する option 要素で、どのヘッダに紐づくのかを指定するために必要な値になります。

  • <dimension>

ルーブリックの行に関する内容を記載するときに使用します。

  • <dimension> : id 属性

修学カルテでは、ルーブリックの情報を id 属性を用いて保存しています。この id 属性では、ルーブリックの行に関する情報を保存する時に使用します。この属性値は重複しない値を設定してください。

  • <dimension> : title 属性

ルーブリックの各行に対して、どういった項目なのかを設定できます。

  • <dimension> : description 属性

ルーブリックの各行に対して、どういった項目なのかの付属情報を設定できます。

  • <option>

ルーブリックのカラムの内容を設定します。

  • <option> : level 属性

ルーブリックのヘッダに登録した value 属性をみて、どの列に対応するのかを明記するための属性です。

例: 
<rubric>
  <rubric_header>
    <level value="3"/>
    <level value="2"/>
    <level value="1"/>
  </rubric_header>
  <dimension id="theme" title="【発音】" description="英語のネイティブな発音ができていますか。">
    <option level="3"/>
    <option level="2"/>
    <option level="1"/>
  </dimension>
</rubric>
  • <static_card> : edit-protect-target 属性

修学カルテでは、編集できる期間を設定できます。その編集期間を適用する対象を指定できます。今回は編集期間外では学生のみ変更できず、担当教員は編集期間外でも変更できます。

例: <static_card id="grade4" title="4年次" edit-protect-target="self">

この作成したカルテを実際に修学カルテに登録してみます。すると、以下のようなカードが新しく追加されているのがわかります。

スクリーンショット 2021-12-16 10.40.25.png

これでカードの追加ができるようになりました!カードの入力項目についてはルーブリック以外にもチェックボックスや、ファイルの登録など種類があります。もっと詳しく知りたい方は、カルテ XML 仕様をご覧ください

まとめ

中編は以上になります。次回の後編では、引き続きカルテを作成していきます。

また、他の機能に興味を持たれた方は、是非カルテXML仕様を読んでみてください。

ステップバイステップで学ぶ修学カルテ作成(前編)

この記事では、WebClass の学習記録ビューアプラグインである修学カルテの設定や、使い方を順序立てて説明していきます。

修学カルテは、大学を通しての学修について、教員のレビューを受けながら、学生が定期的に目標の設定と達成の振り返りを行うためのツールです。

学習記録ビューアマニュアル 修学カルテ

この「ステップバイステップで学ぶ修学カルテ作成」は前編、中編後編の3つに分かれています。

前編では、修学カルテを使うための設定まで行います。

では、早速始めていきましょう!

目次

  1. システム管理者でログインする
  2. 修学カルテの組織を作る
  3. 組織にロールを登録する
  4. 組織に管理者を登録する
  5. 組織にプラグインを追加する
  6. ロールに権限を設定する
  7. 組織に担当教員と生徒を登録する
  8. 修学カルテにカルテを登録する

1.システム管理者でログインする

まずはログインをします。
この時は WebClass のシステム管理者権限を持つユーザでログインします。

image1.png

すると以下のような管理者画面が出てきます。
管理者画面の左側にある「学習記録ビューア」から「管理」をクリックします。

image2.png

下図の「学習記録ビューア 組織一覧」が出たら OK です。

image3.png

2.修学カルテの組織を作る

次に修学カルテの組織を作っていきます。

まずは「学習記録ビューア 組織一覧」の左上に「Root」という組織があるので、クリックします。

image4.png

すると上記のような画面が出てきます。「Root」は最も上位の組織になります。ここに下位組織を追加していきます。

組織の構成は今回は以下のように設計しました。

修学カルテサンプル組織
    | — 物理学科
    └ — 情報学科

修学カルテサンプル組織は、修学カルテを扱う大枠の組織となります。そこに今回は2つの組織を追加します。

まずは修学カルテを使うための大枠となる組織「修学カルテサンプル組織」を作ります。

image5.png

上の図のように、「下位組織」の下の [追加] ボタンから [新規作成] をクリックします。

image6.png

すると新規作成のポップアップが表示されます。

「組織 ID」 は、毎年行われる臨床実習などの組織に固有の ID にすることができます(clinicmaster2020, clinicmaster2021 ... など)。「組織 ID」を設定しておくことで、組織管理がしやすくなります。

今回は組織IDは空のままにしておきます。こうするとこの組織にはランダムなIDが割り振られます。

「組織名」に組織の名前を入れていきましょう。ここではまず「修学カルテサンプル組織」と入力します。

その後に、[追加する] ボタンを押します。

image7.png

以上のように表示されれば成功です!

「Root」の下に「修学カルテサンプル組織」ができていることが分かります。

残りの「物理学科」と「情報学科」も同様に作っていきます。

「修学カルテサンプル組織」をクリックします。

すると以下の画面が出てきます。

この画面で、先ほど同様に「下位組織」の [追加] から「物理学科」と「情報学科」を追加します。作り方は「修学カルテサンプル組織」と同じです。

image8.png

以下のように設定できれば完了です!

image9.png

3.組織にロールを登録する

組織が作成できたら、次にロールを追加します。

修学カルテでは、「学生」や「担当教員」といった役職を「ロール」という単位で扱います。ロールに権限を付与することで、アカウントの役割を設定していきます。

まずは、「修学カルテサンプル組織」を開いているか確認してください。

確認したら、タブの「ロール」をクリックします。

image10.png

すると以下のような画面が開きます。

image11.png

すでに User というロールが登録されていることが分かります。

今回はロールを3つ用意します。役割は以下の通りです。

学生: 学生アカウント用のロールです。カルテを記録していきます。
担当教員: 教員アカウント用のロールです。学生のカルテを確認し、コメントします。
管理者: カルテの設定を行い、運用全体を指揮します。

今回は User というロールは使いません。

「学生」、「担当教員」、「管理者」のロールを追加します。

[追加] ボタンを押して、新しくロールを追加します。

image12.png

追加ボタンをクリックすると、ポップアップが表示されるので、ロール名を入力して[新規登録する]をクリックします。

image13.png

上記の方法と同じ要領で 「担当教員」 と 「管理者」 を登録して、以下のような画面になれば完了です!

image14.png

4.組織に管理者を登録する

次に、作成した「修学カルテサンプル組織」に管理者を登録します。

管理者は修学カルテで使うカルテを登録することができるアカウントになります。
カルテを登録できるようにするためには権限が必要なのですが、権限については「6.ロールに権限を設定する」で説明します。

まずはタブから「メンバー」をクリックして、メンバー表示画面に移動します。

その後、[追加] ボタンを押して、メンバーを追加します。

image15.png

[追加] ボタンを押すと、「組織メンバー追加」画面が出てきます。

画面上部の検索バーにユーザ ID を入れることで検索ができます。

検索バー右下のドロップダウンをクリックして選択することで「氏名」での検索もできます。

検索には任意の文字に置き換える特殊な文字を使用することができます。

この特殊文字は検索時に便利な機能です。ここで使える特殊文字は以下の2つです。

? ... 任意の1文字に置き換える
* ... 任意の長さの文字列に置き換える

例えば「user?」と入力し検索すると、user1, user2, userA などがヒットします。user10 はヒットしません。

「user*」と入力し検索すると、user1, user2, userA, user10, user100 などがヒットします。

image16.png

今回は管理者の登録なので、システム管理者や、カルテを管理する方を登録します。

検索結果が一人であれば、[検索結果をすべて追加] ボタンを押して追加します。

また、チェックボックスにチェックを入れることで、[選択したユーザを追加] で任意のユーザを追加することもできます。

image17.png

[検索結果をすべて追加] ボタンか [選択したユーザを追加] ボタンを押すと、以下のようなポップアップが表示されます。ここでは、管理者として登録するため、[管理者] を押します。

image18.png

メンバー確認画面に移動して、メンバーに「システム管理者」が「管理者」で追加されていれば完了です!

image19.png

5.組織にプラグインを追加する

次に「修学カルテサンプル組織」に修学カルテ用の機能拡張用のソフトウェア(これをプラグインと言います)を登録します。

タブの「プラグイン」をクリックします。

image20.png

「プラグイン」をクリックすると、以下のようなプラグイン管理画面が表示されます。

ここで、[追加] ボタンをクリックして、修学カルテを追加します。

image21.png

[追加] ボタンを押すと、以下のような「プラグインの追加」ポップアップが表示されます。

ここで、修学カルテにチェックをつけて、[追加する] ボタンをクリックします。

image22.png

プラグインの管理画面に戻り、「修学カルテ」が追加されていれば完了です!

image23.png

6.ロールに権限を設定する

修学カルテを追加したら、ロールに権限を設定します。

学習記録ビューアでは、プラグインごとにどのロールにどんな権限を与えるかを選択することができます。

「設定」タブから「設定」をクリックして、「権限設定」画面を開きます。

image24.png

「権限設定」画面では、ロールごとに権限を選択して与えることができます。

今回は、学生・担当教員・管理者の3つのロールなので、それぞれで権限を設定します。
権限の割り振りは今回は以下のようにします。

学生は、自分のカルテを持っています。
担当教員は、担当の学生のカルテに変更を加えたり、メッセージを送ることができます。
管理者は、学生のカルテを変更でき、どんなカルテを使えるようにするかの設定もできます。

上記のように権限を割り振るために、以下のようにチェックを入れます。

「User」は今回は使わないため、何もチェックしないでください。

image25.png

ここまでチェックを入れたら、以下のように「子孫組織の権限設定も再起的に更新する」にチェックを入れます。
ここにチェックを入れることで、「修学カルテサンプル組織」だけでなく、その下位組織となる子孫組織の「物理学科」と「情報学科」にも同様に設定が反映されます。

ここまでしたら、[権限設定を保存する]をクリックします。

image26.png

すると、以下のようなポップアップがでます。

今回は権限を子孫組織にも再起的に更新するようにしたため、子孫組織の数によっては時間がかかる場合があります。今回は3件のみのため、時間はかかりません。[権限設定を更新する]をクリックして、設定を反映させます。

image27.png

これで設定は完了です。試しに「物理学科」の「権限設定」を開くと、今回設定した権限が同じように反映されていることが分かります。

image28.png

7.組織に担当教員と生徒を登録する

次からは担当教員と生徒をそれぞれの組織に登録していきます。

ここから先は担当教員と学生の WebClass アカウントが必要になります。まだ登録をしていない方は「システム管理者メニュー」からユーザを登録しておきましょう。

今回は「物理学科」に学生と担当教員を登録します。
まずは担当教員と学生を登録したい組織を開き、「メンバー」タブを開きます。
そして、管理者を登録した時と同様の手順で登録していきます。
方法を忘れてしまった場合は、「4.組織に管理者を登録する」を見ながら進めてください。
今回は以下のように登録します。

image29.png

user1 ~ user5 を学生として登録し、
teacher1 を担当教員として登録しました。

user1 ~ user5 と teacher1 は任意の学生と担当教員を用いても構いません。

上記のように担当教員と学生を登録したら完了です!

8.修学カルテにカルテを登録する

最後の設定です!最後に修学カルテで使うカルテを登録します。

カルテとは、学生それぞれの学びの記録ができる場所です。
修学カルテでは、組織ごとに目的に合ったカルテを設定することができます。
また、カルテは管理者自身で自由に作成することもできます。
カルテの作り方に関しては、「ステップバイステップで学ぶ修学カルテ作成(後編)」で解説しているので、興味のある方はぜひ読んでみてください!

では、早速登録していきます。

今ログインしているアカウントを「管理者」ロールに設定している場合は、画面右上の「前の画面に戻る」をクリックします。

image30.png

「システム管理者メニュー」に戻ると、最初にはなかった「学習と振り返りの記録」というメニューが左側に追加されているのが分かります。「学習と振り返りの記録」をクリックすると「修学カルテ(管理)」というタブがドロップダウンで出てくるので、クリックします。

「管理者」ロールに、システム管理者ではない別のアカウントを設定した場合は、一度「管理者」ロールのアカウントでログインをし直してください。すると、WebClass トップ画面の左側に「修学カルテ(管理)」というリンクが表示されるので、クリックします。

「修学カルテ(管理)」をクリックすると、修学カルテの画面が表示されます。今はまだカルテを登録していないので、カルテの中身などは表示されません。修学カルテを使うためには、まず「設定」から使うカルテを登録する必要があります。

「設定」タブをクリックします。

image31.png

すると以下のような画面が出てきます。ここの[参照] ボタンで、登録したいカルテを選択します。

image32.png

カルテは、XML ファイルという、Web ページの作成をするためのコンピュータ言語で作られたファイルで用意する必要があります。

今回はテンプレートを用意したので、こちらを使用します。

physics_example.xml

登録するときには ID の設定が必要です。判別がしやすい ID を設定してください。
注意書きにもありますが、 ID として使える文字は、半角英数字と"-"と"_"のみです。また、先頭の文字をアルファベットにしてください。今回は 「physics_carte」とします。そして、[新規登録]ボタンをクリックします。

image33.png

登録が完了すると、以下のような画面になります。

image34.png

最後に、組織にカルテを登録します。この登録作業により、修学カルテプラグインへのカルテ登録ができました。それだけでは、まだ担当教員や学生が使うことはできません。「情報学科」や、「物理学科」にカルテを登録する必要があります。
「カルテ」タブをクリックして、最初の画面に戻ります。

image35.png

今回は「物理学科」にカルテを登録するので、「物理学科」を選択し、「カルテを登録する」をクリックします。

image36.png

「カルテを登録する」をクリックすると、カルテを選択する画面が表示されます。検索バーを用いてカルテの検索もできますが、今回は登録しているカルテが先ほどのカルテのみとなるので、「physics_carte」のチェックボックスをクリックして、[選択したカルテを登録する]を押します。

image37.png

[選択したカルテを登録する] をクリックすると、以下のような画面が表示されます。

これで、設定は完了です!ユーザ名やユーザ ID をクリックすることで、ユーザごとのカルテを見ることができます。

image38.png

まとめ

長かったですが、これで修学カルテにカルテを登録することができました!
前編では設定だけでしたが、中編後編では実際に XML ファイルを作って、オリジナルのカルテを作ってみます!興味のある方はぜひ読んでみてください!

PDFの証明書生成

先週に ディジタルバッジの規格や今のサービスを調べた記事 を書きました。

ディジタルバッジではなくとも、一定の条件を満たした人にその証明を発行する機会はあると思います。ここでは、PDFの証明書を生成する WebClass の機能を紹介します。

使い方

WebClass では一部の学校で、施設利用の研修を終えたときの修了証のような修了証発行する機能を使っていただいています。修了証は PDF ファイルで出力します。次の画像のように、フォーマットが決まっていて、日付や終了した人の名前などが埋め込まれます。ネットワークを使うためのセキュリティ講習など、主に事務的な用途で使っていただいています。

この証明書は、PDF出力設定をした資料教材を開いたときに生成されるようになっています。

証明書のデザインは以下のようにHTMLで記述し、置き換える文字のところにマークを仕込んでいます。ですので、HTML+CSS でやりくりできる範囲でデザインやタイトル文字などは自由に変えることができます。画像も使えます。

  <div class="cert_title">{CERT_TITLE}</div>

  <div class="given_to">
    <div class="given_to_layout">
      <div class="given_to_title">
        <div class="name">{USER_NAME}</div>
        <div class="userid">{USER_ID_LABEL}:{USER_ID}</div>
      </div>
      <div class="honor_title">{HONORIFIC_TITLE}</div>
    </div>
  </div>

  <div class="subject">
    <div class="text">{SUBJECT}</div>
        <table class="detail">
          <tr>
            <td>コース名</td>
            <td>{COURSE_NAME}</td>
          </tr>
          <tr>
            <td>教材名</td>
            <td>{CONTENTS_NAME}</td>
          </tr>
        </table>
  </div>

  <div class="signature">
    <div class="date">{FIRST_EXEC_DATE.JPYMD}</div>
    <div class="given_by">{GIVEN_BY}</div>
  </div>

この証明書の発行条件は、ユニット教材の「順番に進める」設定と、テスト教材の合格点設定を組み合わせています。このユニット教材に合格点設定付きのテストの後で証明書発行の資料教材を並べると、テストに合格したときに証明書発行の資料にたどり着けるというものです。

PDFの生成

内部では、HTML+CSS のWebページソースを生成して、ヘッドレスブラウザに読み込ませてPDFに変換させています。

ヘッドレスブラウザとは、画面表示なしで動くブラウザです。コマンドラインツールから操作でき、その最中にはブラウザがどんな表示をしようとしているか表示することはできませんが、あたかも普通のブラウザで操作したかのように振る舞ってくれます。JS の処理なども対応しており、そうして表示シミュレーションした結果をスクリーンショットして保存したり、PDF に印刷させたりできます。

以前は wkhtmltopdf, PhantomJS などの専用ヘッドレスブラウザを使うことも多かったですが、いまでは Firefox も Chrome もヘッドレスモードをサポートしています。Chrome などをヘッドレスモードで使うことが増えており、wkhtmltopdf などは開発が下火になっているようです。wkhtmltopdf の歴史と現在の状況

Chrome のヘッドレスモードでの使い方はこちらに解説があります。

Linux サーバ上でヘッドレスブラウザを使ってPDFをレンダリングするため、フォントについてはサーバ上にインストールされているフォントに成約されます。

PDF 以外の証明書、認定の仕方

WebClass のユニットとテストの合格点の機能を使って、テストをPassしたら何か証明書を作るという処理を実現しています。その仕組はそのまま使って、証明書のデザインを調整できるようにしているのが PDF 証明書の発行機能です。

PDF ではなく、ディジタルバッジを発行する処理に置き換えることもできます。ですがディジタルバッジでは以下の課題があります。

  • 今実現していた実装は、OpenBadge のバージョンが古い
  • コース内で柔軟にバッジ発行するには、条件の設定の仕方が限られる

WebClass はできる限りテストの結果や掲示板の書き込みなども CSV でダウンロードして、先生が手元で自由に処理できるようにしています。そうして授業の内容や目的に応じて学生の活動をできる限り多角的に評価できるようにと考えていますが、集計も、結果を学生にどうフィードバックするか手作業になります。

このあたりをうまく仕組み化できたら面白いかもしれないと考えています。

類似レポート検知機能のスコアについて

WebClassでは、レポートの剽窃検知機能として、「類似レポート検知」という機能が用意されています。この機能は、提出されたレポート同士を比較して、それらの類似度をスコアとして表示することができます。

こちらのスコア算出の挙動について不可解な点があると指摘されておりましたので、今回いくつかの観点からスコアの変動について調査しました。

調査方法

  • 同じ文章にスペース・改行を入れた場合と入れない場合を比較
  • 10文字~12,000文字程度の文章をWikipediaから切り抜いて比較に使用
    • 全く違う文章・全く同じ文章それぞれで比較
    • 英語文・日本語文それぞれで比較
    • 同じ文章の繰り返しが含まれる・含まれない文章で比較(引用の多いレポートを想定)

調査結果

  1. スペース・改行はスコアに影響する。
    • 同じ文章でもスペースが抜けるだけで5~10程度スコアが低くなる
  2. テキストの長さによりスコアが変動する。(図1,2)
    • 基本はテキストが長くなるにつれスコアが下がる傾向
    • 極端にテキストが短い場合に、極端にスコアが高く
  3. 全体的に日本語文のほうが、スコアがはっきりする。
    • 違う文章のスコアが低い(図1)
    • 同じ文章のスコアが高い(図2)
  4. 同じ文章を繰り返し使うとスコアが高くなる。(図2 緑線)
    • 重複によるスコアが積み重なる?


      図1: 全く違う文章の比較


      図2: 全く同じ文章の比較

まとめ

今回の調査から、スペースや改行・文の長さ・英語文日本語文などの違いでスコアに5~10程度の変動があることが分かりました。そのため、これらの挙動を把握した上で、あるいはある程度の誤差をご承知の上ご使用されることをおすすめします。また、100文字程度以下の短い文章では異常なスコアが出ることから、この機能に使うレポートは100文字以上になっているものを対象にすることをおすすめします。(レポート課題作成時に「100文字以上」の文字数制限を付けることも可能です。)

今回の結果から、図3の「スコアの目安(旧)」にある「強い剽窃の疑いがあります」のレベルに達するのが、繰り返しが含まれるい場合や極端に文章が短い場合のみであることがかったので、このスコア区分をv11.9.0で図4のように修正しました。スコアが70程度あれば、かなり強い剽窃である可能性があるということをご留意してお使いいただければと思います。


    図3: スコアの目安(旧)


    図4: スコアの目安(新)

撮影した講義動画をWebClassで公開する方法

本日リリースしたWebClass v11.8.2で、以下の変更があります。

HLS_OPTIONが有効の環境で、資料やテストの取り込みファイルとしてMOV(H.264)形式の動画ファイルをアップロードした際に、ストリーミング配信(HLS)するようにしました。

この変更によって、iPhoneやiPadで撮影した撮影した動画をそのままWebClassに載せてストリーミング配信することができるようになります。そこでこの記事では、具体的な動画の公開手順を解説します。

ただし、以下で詳細を説明しますが、動画のサイズには注意が必要です。制限があるため、自身の環境で動画配信を実現できるかよく確認してください。

前提

注意点

一度にアップロードできる動画サイズには制限があり、上限は学校によって異なります。試しに手元のiPadで撮影した1分の動画は15MB程になりました。15分で225MB、30分で450MB程になる計算です。適時分割しないとアップロードできないかもしれません。

また、サーバーの容量に限りがあるため、大量の動画を一気にアップロードすると問題になることがあります。

動画公開手順

ここでは、iPadで動画を撮影し、そのままWebClassにアップロードすることにします。Androidでも基本的な操作は同様です。

1. 動画を撮る

iPadで講義を撮影します。

授業動画

  • iPadやiPhoneを縦向きにした状態で動画を撮ってWebClassにアップロードすると、90度傾いた状態で配信されてしまう問題があることが分かっています。横向きで動画を撮影してください。

2. WebClassにログインする

iPadのブラウザSafariを開き、自校のWebClassのページを開きます。

3. 自分のコースを開く

参加しているコースから、動画を公開したいコースを選んで開きます。

参加しているコース一覧

4. 動画資料を作成する

[教材を作成する]ボタンを押します。

教材作成ボタン

教材の種別を選択する画面が表示されます。「資料」を選びます。

資料のタイトルを入力します。

[資料作成: ページ編集]ボタンを押します。

資料の内容を編集する画面が表示されます。
下のイメージのように、画面右上あたりのエリアをスクロールして、「取り込みファイル」の欄を探します。[ファイルを選択]ボタンを押します。

撮影済みの動画を選ぶために、「フォトライブラリ」を選びます。

「ビデオ」を選びます。

保存されている動画から、公開したい動画を選んだ後、「完了」を押します。

「使用」を押します。

[変更を保存して終了]ボタンを押します。

動画資料が作成できました。

5. 動作確認する

ちゃんと再生できるか確認してみましょう。作成した動画資料を選びます。

画面右に動画が表示されます。矢印を押して動画が再生されればOKです。

その他、操作等で分からないことがあれば、先生向け資料を公開していますのでご利用ください。