プログラミングコード盗用プラグイン
内容
前書き
このプラグインは、2つの有名なソースコード盗用検出器MOSSとJPlagをMoodleに統合して、同じコース内の学生のプログラミング課題の類似性を比較します。これらのディテクタをMoodleにシームレスに統合することで、これらのディテクタにフィードするための課題を手動で準備し、レポートをインタラクティブなインターフェースで表示し、さらに重要なことに学生にフィードバックを提供し、盗作。
注意してください: - それは(MOSSとJPlagが行うように)同じコース内の学生間の類似点のみをスキャンします - それは学術用途のみのためです(MOSSとJPlagの用語と条件を参照してください)
JPlagとMOSSアカウントの登録
このプラグインは、類似性のスキャンを実行するためにバックグラウンドでJPlagとMOSSエンジンに依存しています。
JPlagアカウントを作成する : JPlagのサーバーバージョンはもうサポートされていません - アカウントを持っていればそれを使うことができます。それ以外の場合はGithubからJPlagをダウンロードし( https://github.com/jplag/jplag/releases )、ローカルで実行する必要があります。
MOSSアカウントを作成する:moss@moss.stanford.eduに2行のメッセージを送る
registeruser メールユーザー名@ドメイン
どのusername @ domainがあなたのEメールアドレスです。あなたはMOSSを使うためのperlスクリプトを含む返事を受け取るでしょう。詳細についてはhttps://theory.stanford.edu/~aiken/moss/をご覧ください。
サーバーにコードを追加する
プラグインのコードを含むzipファイルを解凍し、それをディレクトリ<moodle_dir> / plagiarism /に置きます。 「プログラミング」というディレクトリ名はそのまま残します。正しいディレクトリ構造は次のようになります。
<moodle_root> ... 盗作 プログラミング コースセッティング デシベル jplag ラング ...
サーバー構成
プラグインはMoodleが実行されているすべてのプラットフォームで実行されるべきで、インストールプロセスはスムーズに行われるはずです。以下を確認してください(これは適切なMoodleインストールのすべての条件です):
+ Apacheが実行されているプロセスに、新しいディレクトリ(<moodle_dir> / plagiarism / programming / *)内のすべてのファイルを読み取るための十分な権限があることを確認してください。
+ cronサービスがスクリプト<moodle_dir> /admin/cron.phpを定期的に呼び出すように正しく設定されていることを確認してください。 cronサービスをインストールするためのガイドはMoodleウェブサイトhttps://docs.moodle.org/20/en/Cron_with_UNIXにあります 。このcronサービスは、すべての学生のコードのJPlagおよびMOSSサービスへの送信をスケジュールするために必要です。
プラグインのインストール
インストールは他の標準的なMoodleプラグインと似ています。管理者としてMoodleにログインして通知ページにアクセスしてください([サイト管理]→[通知]にアクセスするか、http:// <moodle_url> /admin/index.phpにアクセスしてください)。Moodleのプラグインインストールページにプログラミング盗作プラグインが表示されます。リストにあります。アップグレードボタンをクリックしてプラグインをMoodleにインストールしてください。インストールは成功するはずです。
プラグイン設定
まず、あなたのMoodleで盗作プラグインを有効にする必要があります( Managing_plagiarism_preventionを参照)。
サイト管理者→プラグイン→盗作防止→プログラミングの課題の順に進み、Moodleインストール全体のプラグインを設定します。以下のオプションが提供されています:ソースコードの盗用検出チェックボックスを使用:すべての課題に対してプラグインを有効または無効にします。Moodle全体に対してこのプラグインを有効にします。このプラグインをコースレベルで有効にします。指定されたコースを割り当てるだけで、コードの類似性を照合するための設定ブロックが表示されます。このオプションを選択すると、ダイアログボックスが表示され、ユーザーはどのコースを有効にするかを選択できます。 JPlagユーザー名:JPlagアカウントのユーザー名(最初に登録されたもの)JPlagパスワード:JPlagアカウントのパスワードMOSSユーザーID:MOSSの登録時にユーザーに電子メールで送信されたもの。そのEメールでユーザーIDを見つけるのが難しいと感じた場合。下のテキストボックスにEメール全体をコピーするだけです(ユーザーIDを見つけるかEメールをコピーする必要があります。両方を行う必要はありません)。
課題設定
プラグインがMoodle全体またはコースに対して有効化されると(前のセクションを参照)、課題の作成または編集時に課題設定ページの下部近くに次のブロックが表示されます。このブロックには以下のパラメータがあります。類似性チェック:チェックすると、現在の課題に対してプラグインを有効にします。プログラミング言語:この課題に使用するプログラミング言語を選択します。現在のところ、課題ごとに1つのプログラミング言語しかサポートされていません。提出日:すべての提出物の類似性がスキャンされた日付。複数の日付を指定できます。 「ドラフト提出」を許可するには、期日前にいくつかの日付を選択して、学生がレポートを見て期限前に課題を変更できるようにします。複数のスキャンが実行された場合は、レポート全体の履歴を確認できます。あるいは、いつでも手動でスキャンを開始することができます(手動スキャンのセクションを参照)。検出ツール:使用する検出ツールを選択します。少なくとも1つの工具を選択する必要があります。類似性レポートの公開:チェックすると、学生は類似性レポートを自分の仕事と他の人と比較して見ることができます(以下のパートdを参照)。通知を表示する:チェックすると、課題ページでこの課題の盗用がチェックされることを学生に通知します。通知テキスト:このボックスは表示通知がチェックされているときに有効になり、学生へのメッセージの指定を有効にします
「類似性レポートの公開」と「通知の表示」がチェックされていない場合、学生は背後にある類似性チェックに気付きません。
手動スキャン
課題をスキャンする日付をスケジュールする以外に、課題ページでいつでもボタンをクリックしてスキャンプロセスを手動でトリガーできます。これにより、提出の遅れや予期せぬ変更があった場合でも柔軟に対応できます。さまざまなスケジュールスキャンと手動スキャンが保存され、レポートで履歴を振り返ることができます。
レポートを表示する
課題ページでは、教師は課題が作成された後(期限が切れる前であっても)いつでもスキャンを開始するために「再スキャン」ボタンをクリックすることができます。
スキャン処理が完了すると、レポートページへのリンクが表示されます。リンクをクリックすると、レポートが表示されます。レポートは、すべてのペアの類似率分布のグラフと、類似のペアを降順に並べた表で構成されています。レポートを表示するには、以下のようないくつかのオプションがあります。類似度フィルタ:指定された値を超える類似度を持つペアのみを表示します。各学生のコードの長さは大きく異なる可能性があるので、2つのコード間の類似部分の割合は異なります。平均類似度は、2つの間の平均レートをペアのレートとして使用し、最大類似度は、2つの間の最大レートをペアのレートとして使用します。たとえば、学生Aが学生Bと同様のコードを50%持ち、学生Bが学生Aと同様のコードを30%持っている場合(BのコードはAのコードより長いため)、平均類似率は40%、最大類似率は50です。 %検出器:MOSSとJPlagのどちらかを選択(両方の検出器でスキャンを実行する場合)表示グループ化学生:最初のセルに1人の学生がいる学生間の類似性を含む各行の表順序付き表:降順類似度のペアの単純リスト履歴:スキャンが複数回実行された場合、以前のスキャンの結果を振り返ることができます。
チャートのバーをクリックすると、類似度がその範囲に属するペアも表示されます。ボックスは、時系列の逆順にスキャンをリストしています。パーセンテージ値をクリックすると、比較ビューが表示されます。このビューには、学生の作業の類似点が表示されます。セルの右下にある矢印をクリックすると、そのペアの類似性履歴のチャートが表示されます(そしてそのチャートのバーをクリックすると、スキャン時のペア間の比較が表示されます)。
二人の学生の仕事の比較
比較ビューでは、2人の学生の類似性と、1人の学生の類似部分と他の学生全員の類似性を比較できます。彼らはお互いにあまりにも多くの類似点があると思うなら講師はペアをマークすることができます。
「他の学生と<someone>の類似性を表示する」チェックボックスをクリックすると、講師はクラスの全員とその学生の類似部分を見ることができます(ペアになっているだけではありません)。