LoginSignup
5
7

More than 1 year has passed since last update.

任意の言語のプログラミング演習をウェブブラウザで実施できるLMSの紹介

Last updated at Posted at 2021-06-11

はじめに

以前,プログラミング演習を実施できるウェブシステムの紹介記事を書きました.
このたび,より高機能化・高速化・安定化した新システムを開発したので,紹介させていただきます.

解説ページはこちらにあります: https://kjmtks.github.io/hugin-page/
解説ページに,限定された権限しかありませんが,デモサイトを用意しております1ので是非お試しください.
また,ご自身の環境にシステムを簡易的にインストールする方法を説明した3分程度の動画もあります: YouTube
Azure の無料枠で試すこともできます.

主な機能

任意の言語のプログラミング演習をウェブブラウザで実施

本システムはサーバーに chroot 監獄を作成し,隔離された環境で,かつ,指定したリソース制約下で任意のプログラムを実行できる機能を持っています.
これにより,任意のプログラミング言語を対象としたプログラミング演習をウェブで実施することができます.画像やグラフの出力にも対応しています.
この機能を応用して,例えばウェブでLaTeXのタイプセットを行うことも可能です.

任意のプログラム実行環境の構築

プログラムを実行する隔離された環境は,任意に作成することができます.
また,事前に用意されたインストールコマンドを使用して,特定の処理系が実行できる環境を簡易に作成することができます.

ヴィジュアルプログラミングに対応

Blocklyを用いたヴィジュアルプログラミングに対応しています.
ブロックの追加にも対応しています.

自由記述形,ファイル提出,フォーム入力の課題の出題

プログラミング演習以外の課題,すなわち,自由記述形課題,ファイル提出課題,フォーム入力課題の出題にも対応しており,LMSとして十分な機能を備えています.
なお,これらの課題およびプログラミング演習を1つ以上組み合わせてひとつの課題として出題することができます.

Markdwon (or HTML) + Scriban によるコンテンツ記述

講義コンテンツはすべてテキストで記述します.
Markdwon (or HTML)と,LiquidライクなテンプレートエンジンであるScribanによる記述に対応しています.

Gitとの連携

このシステム自体がGitのリモートリポジトリとなっており,Gitのコマンドでコンテンツ等の入手,更新を行うことができます.
システムからもコンテンツの簡易的な編集が可能です.

単体テストによる課題の自動チェック

プログラミング演習に対して単体テストを用意しておけば,受講生はこれを利用して自分の組んだプログラムのチェックを自動で行うことができます.
これは,受講生の試行錯誤を推進するための機能です.

提出課題への手動フィードバック,最終成績のCSV出力

受講生は演習・課題を講師宛に提出することができます.講師はこれに対して採点をしたり,フィードバックコメントを送信することができます.また,再提出を求めることもできます.
また,受講生全員の採点結果をCSV形式で出力することができます.

受講生の学習行動の可視化,オンライン状態の監視,全行動の記録

受講生のすべての行動・オンライン状態は記録され,リアルタイムに確認することができます.
授業の進行を調整することに活用できるほか,学習が遅れている受講生の発見等に役立ちます.

LDAP認証の利用(LDAPを使用しない認証との併用も可)

認証にLDAPを使用することができます.また,LDAPを使用しない認証も可能で,両認証を併用することもできます.

マウス or スタイラスペンによるページへの書き込み

簡易的ですが,ペイントツールを使用することができます.
ページそのものに自由に書き込みができるのが特徴で,ページをスクロールしても適切な位置が保たれます.

講義コンテンツ,プログラム実行環境,課題のひな形をウェブからインポート

講義コンテンツや,プログラム実行環境のインストールコマンド,課題のひな形などを簡単に入手する機能があります.
いまはまだ少ないですが,これから充実させていく予定です.

これにより,他の人が作成した良質なコンテンツを入手して講義をしたり,自習をすることができます.


  1. 再起動を頻繁に行っておりますので,つながらないこともあります. 

5
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
7