Skip to content

WillBoosterLab/exercode-example-course

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Exercode 教材リポジトリ例

教材の作り方

コース(Course)

リポジトリ内にcourse.yamlという名のファイルを作成してください。 リポジトリ内であれば任意のディレクトリに配置できます。

course.yamlを置いたディレクトリの名前がそのコースの ID(コース ID)になります。 コース ID は半角小文字アルファベット、数字、アンダースコア、ハイフンからなる、Exercode 全体で一意の文字列です。

course.yamlファイルの内容の例:

# コースのパラメータ
name: コース名
description: コースの説明
author: 作成者名
isDiffHintDisabled: true
lectures:
  # 各レクチャー (Lecture) のパラメータ
  - id: 'addition'
    name: レッスン名
    description: レッスンの説明

コースのパラメータ

パラメータ名 説明
name 文字列 名称
description 文字列 説明
author 文字列 作成者名
lessons 配列 レッスンの配列
isMotivationFeatureEnabled 真偽 モチベーション機能を有効にする
コース・マテリアル共通の設定パラメータ(後述)

レクチャー(Lecture)

course.yamlと同じディレクトリに、前述したレクチャーのパラメータのidと一致する名前のディレクトリを作成してください。 ID は半角小文字アルファベット、数字、アンダースコア、ハイフンからなる、コース内で一意の文字列です。

レクチャーのパラメータ

上述のcourse.yamllectures項目の中に以下のパラメータを記載します。

パラメータ名 説明
id 文字列 ID、コース内で一意かつ別途作成したディレクトリ名(後述)と一致していること
name 文字列 名称
description 文字列 説明

マテリアル(Material)

レクチャーのディレクトリ内に[マテリアルIDサフィックス].mdという名のファイルを作成してください。 マテリアル ID サフィックスは半角小文字アルファベット、数字、アンダースコア、ハイフンからなる、レクチャー内で一意の文字列です。 Front Matterにそのマテリアルのパラメータを記述してください。

(なお、[コースID].[レクチャーID].[マテリアルIDサフィックス] という文字列がマテリアル ID です。 コース ID が一意で、かつ、レクチャーフォルダ内に同名のファイルを作れないため、マテリアル ID は自然と一意になります。)

[マテリアルIDサフィックス].mdファイルの内容の例:

---
# マテリアルのパラメータ
name: マテリアル1
---

## 見出し

本文です。

- [問題](problems/__example_imported_a_plus_b)

マテリアルのパラメータ

パラメータ名 説明
name 文字列 名称
isExamination 真偽 試験モードを有効にする。有効にすると、選択肢問題の再提出が有効になり、ヒント機能、コード実行機能、コピー&ペーストなどが無効になる。
コース・マテリアル共通の設定パラメータ(後述)

選択肢・穴埋め問題

マテリアルファイルの中で選択肢・穴埋め問題を作成することができます。 詳細は マテリアルファイルの例 をご覧ください。

コース・マテリアル共通の設定パラメータ

これらのパラメータをコースとマテリアルの両方に設定すると、マテリアルの設定が優先されます。 真偽値のパラメータの初期値はすべてfalseです。

パラメータ名 説明
availableLanguageIds 配列 利用可能なプログラミング言語
areTestCasesHidden 真偽 コーディング問題のテストケースを非表示にする
isProblemGradingResultHidden 真偽 コーディング問題の採点結果を非表示にする
isAutoFormatDisabled 真偽 自動フォーマットを無効にする
isCopyAndPasteDisabled 真偽 コードエディタでのコピー&ペーストを無効にする
isDebugHintDisabled 真偽 デバッグヒント(不正解の理由の説明)の表示を無効にする
isFixHintDisabled 真偽 修正ヒント(修正方法の説明)の表示を無効にする
isDiffHintDisabled 真偽 差分ヒント(修正済みの正解コード)の表示を無効にする
debugHintWaitingSeconds 整数 問題を開いてからデバッグヒント(不正解の理由の説明)が利用可能になるまでの待機時間(秒)
fixHintWaitingSeconds 整数 問題を開いてから修正ヒント(修正方法の説明)が利用可能になるまでの待機時間(秒)
diffHintWaitingSeconds 整数 問題を開いてから差分ヒント(修正済みの正解コード)が利用可能になるまでの待機時間(秒)
submissionOpenedAt 文字列 提出開始日時(ISO 日付文字列、例: 2025-04-28T13:10:00+09:00
submissionSoftClosedAt 文字列 提出ソフト締切日時(ISO 日付文字列、例: 2025-04-28T13:10:00+09:00)。この日時を過ぎても提出は可能ですが、遅延提出として扱われます。
submissionHardClosedAt 文字列 提出ハード締切日時(ISO 日付文字列、例: 2025-04-28T13:10:00+09:00)。この日時を過ぎると提出ができなくなります。
isAutoTranslationDisabled 真偽 自動翻訳を無効にする
isModelAnswerShownAfterDeadline 真偽 締切後にコーディング問題の模範解答を表示する。
isVotable 真偽 投票機能(提出後に他の学生のソースコードを閲覧する機能)が有効か否か

ISO 日付文字列を記載する際は、 2025-04-28T13:10:00+09:00 のようにタイムゾーン情報(+09:00)を末尾に追記することを強く推奨します。

コーディング問題

リポジトリ内に[問題ID].problem.mdという名のファイルを作成してください。 問題 ID は半角小文字アルファベット、数字、アンダースコア、ハイフンからなる、Exercode 全体で一意の文字列です。 リポジトリ内であれば任意のディレクトリに配置できます。

コーディング問題の Markdown ファイルには YAML 形式のフロントマターを記述する必要があります。 フロントマターでは後述するパラメータを設定できます。

[問題ID].problem.mdファイルの内容の例:

---
name: A + B
timeLimitMs: 2000
---

整数$A,B$が与えられます。
$A+B$の計算結果を出力してください。

(後略)

コーディング問題のパラメータ

パラメータ名 必須 初期値 説明
name 文字列 名称
generalJudgeEnvironmentConfigOverrides オブジェクトの配列 ジェネラルジャッジの設定の上書き
timeLimitMs 整数 2000 実行時間制限(ミリ秒、0 以上)
memoryLimitByte 整数 256 × 1024 × 1024 メモリ制限(バイト、0 以上)
requiredRegExpsInCode 文字列の配列 [] ソースコードで必須の正規表現
forbiddenRegExpsInCode 文字列の配列 [] ソースコードで禁止の正規表現
forbiddenTextsInCode 文字列の配列 [] ソースコードで禁止の文字列
canCreateFiles 真偽 ファイル作成を許すか否か
isAttachedFileRequired 真偽 添付ファイルが必須か否か
isGui 真偽 GUI プログラム専用の自動採点をするか否か。自動判定されるが、このオプションで指定もできる。
isManualScoringRequired 真偽 手動採点が必要か否か。手動採点が必要な問題ではヒント機能は利用できない。
isVotable 真偽 投票機能(提出後に他の学生のソースコードを閲覧する機能)が有効か否か
isEditorDisabled 真偽 エディタを無効にする。エディタが無効な場合、ソースコードをアップロードする必要がある。
requiredEnvironmentVariables 文字列の配列 [] 必須の環境変数
requiredOutputFilePaths 文字列の配列 [] ユーザプログラムが出力しなければならないファイルのパス
requiredSubmissionFilePaths 文字列の配列 [] 提出が必須のファイル

正規表現を表すパラメータの文字列は、JavaScript のnew RegExp(pattern)コンストラクタのpatternとして入力されます。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Contributors 5